Связь мк

Тема в разделе "Проводная и беспроводная связь", создана пользователем grand, 11 дек 2015.

  1. grand

    grand Гик

    Основная задача - это последовательная работа нескольких мк (ардуино уно). То есть, 1ый мк выполнил свои функции, "говорит" 2му мк - выполняй свои, далее 2ой - третьему и т.д.

    Соответственно вопрос - как организовать связь между мк?

    Как вариант - i2c. Первый - мастер отработал - пишет 1му слейву - начинай работу! Но, вопрос, может ли первый слейв передавать команду 2му слейву? Это также по номеру обращаться? ...как и масте со слейвом? Или как может слейв с мастером общаться?
     
  2. ИгорьК

    ИгорьК Гуру

    Полагаю, здесь один МК должен быть мастером. Он опрашивает последовательно исполнителей (ведомых), и когда один выполнил работу, дает команду другому. (Сам он тоже может работу исполнять, себя ему опрашивать не надо)
     
  3. grand

    grand Гик

    а каким образом слейв ответит мастеру? У мастера же нет адреса, как я понимаю...
     
  4. ИгорьК

    ИгорьК Гуру

    Нет у него адреса. Но если бы слэйвы не могли бы с ним связаться - связь была бы односторонняя, так?
    А она - двусторонняя. Значит Вы что-то неправильно понимаете. Или не дочитали.
     
  5. grand

    grand Гик

    Подскажите как слейв мастеру может написать :)
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    Сам - никак, только по команде от мастера.
    - третий, приём!
    - третий на связи. Работа выполнена. Результат 5 и 16. Конец связи.
     
  7. Onkel

    Onkel Гуру

    А что не соединить уарты цугом (если конечно порядок неизменен) Tx1-Rx2, Tx2-Rx3 и т.д.
    как вариант uart с развязками всех Тх диодами, это не комильфо и квадратично сложно, но поскольку у вас одновременная передача разными мк невозможна, то прокатит бесконфликтно.
    Если так "неформально" сделать религия не позволяет, то как посоветовал Tomasina назначить один мастером и i2c или spi.
    Я лично люблю RS485 и все делаю с этим протоколом, так что вам можно и RS485 использовать, опять же исходя из принципиальной НЕОДНОВРЕМЕННОСТИ передачи разными модулями.
     
  8. Coolblaster

    Coolblaster Нерд

    Как нет адреса, какой напишите такой и будет, мастер с слейвом прекрасно дружат, почитайте про протокол i2c и соединение нескольких МК не составит особого труда. Вот тут есть отличные примеры, если понимаете на инглише, можно отправлять информацию любого типа между контроллерами int,float и т.п.
     
    Последнее редактирование: 26 дек 2015