Требуется скетч для пересылки данных по RS485

Тема в разделе "Закажу проект", создана пользователем AZots, 8 окт 2016.

  1. AZots

    AZots Нуб

    Здравствуйте, закажу скетч.
    Идея такая: есть три слэйва Arduino micro pro, каждая получает и обрабатывает значения с датчика (эта часть у меня работает), тип данных double. Есть мастер Arduino mega R3, который должен циклически получать данные со слэйвов для дальнейшего использования.
    Интересует реализация такой передачи по RS485, с использованием SoftwareSerial и модуля MAX485.
    SoftwareSerial - потому что аппаратный TX уже занят датчиком (GY521 с DMP), а одновременно к Mega подключить несколько датчиков GY521 у меня не вышло.
    Кто сможет помочь?
     
  2. Onkel

    Onkel Гуру

    у меги вроде несколько uart
     
  3. ostrov

    ostrov Гуру

    У STM32 тоже 3 аппаратных UART ))
    А вообще, программные UART одновременно не работают, как я выяснил, то есть надо регулярно отключать один и выключать другой при помощи mySerial.begin() и mySerial.end().
     
  4. rkit

    rkit Гуру

    Не понял, зачем GY521 подключать к серийным портам? Он же на i2c работает.
     
    ostrov нравится это.
  5. ostrov

    ostrov Гуру

    Именно, а активный выбирается пином SS или его аналогом. Но поговорить же хочется. ))
     
  6. AZots

    AZots Нуб

    работает одна, но не несколько
     
  7. AZots

    AZots Нуб

    не спорю, но один всего программный UART нужен, для связи RS485 через MAX485
     
  8. AZots

    AZots Нуб

    планируется потом сделать больше 3 слэйвов
     
  9. Onkel

    Onkel Гуру

    так на 485 можно посадить от 16 до сколько-то там (зависит от чипа) модулей, зачем вам еще uart ы?
     
  10. ostrov

    ostrov Гуру

    На 487 до 128 штук. Хватит не?
     
  11. ostrov

    ostrov Гуру

    Объясняю. По i2c устройства работают по очереди. У каждого есть пин SS, который роняется в LOW у опрашиваемого, при том что у остальных удерживается HIGH. Таким образом по одной шине данных, подключенной параллельно ко всем устройствам, можно получать данные независимо. Вот именно этим способом вам предлагают воспользоваться. Или сделать для каждого гироскопа свой драйвер на МК и сливать данные по сети на RS485. Даже не знаю что проще.
     
  12. AZots

    AZots Нуб

    Поясняю. Первый вариант работать упрямо не хочет. Я пробовал переключать SS, пробовал мультиплексор аналоговый и пробовал мультиплексор I2C. Не работает именно с синхронизацией, DMP. А без нее работает но ошибка 1 градус, а не 0,1.
    После этого я решил на каждый гироскоп по arduino pro micro повесить и передавать данные (угол одной оси) на мастера мегу. Не могу настроить передачу пакетов с дата сегментом 8 байт. Поэтому решил найти специалистов получше.
     
  13. AZots

    AZots Нуб

    А так да, в теории выглядело просто. Если кто сможет повесить несколько GY521 на ардуину, с прерываниями, жду предложений
     
  14. ostrov

    ostrov Гуру

    Ну я так же когда то завис с несколькими RFID. После трех штук начались проблемы и пришлось делать каждому контроллер на Atmega8. Нормально работают.
     
  15. AZots

    AZots Нуб

    ну вот, и мне бы их связать..
     
  16. ostrov

    ostrov Гуру

    У Atmeg8 есть UART, и у Attiny2313 есть, надо просто взять и соединить из проводками.
     
  17. AZots

    AZots Нуб

    да я бы и не против, но GY 521 требует 5 проводов, +/- , SDA, SCL и аппаратный Tx, который UART.
     
  18. AZots

    AZots Нуб

    так что, кто сможет помочь? я ж не бесплатно прошу, камрады
     
    Последнее редактирование: 9 окт 2016
  19. ostrov

    ostrov Гуру

    Там 4 провода: VCC, GND, SCL, SDA.
     
  20. AZots

    AZots Нуб

    и INT , который подключается к аппаратном прерыванию