Варианты объединения нескольких МК в одну сеть

Hardwell
Offline
Зарегистрирован: 04.01.2017

Доброго времени суток! Есть несколько Arduino UNO. Одна Ардуинка почти загружена. По распиновке свободными у нее остались ADC-3, ADC-6, ADC-7, RX-1, TX, PD-5 и I2C шина (на ней висит LCD экран, но вроде как через I2C Hub можно одновременно еще добавить несколько МК и также обмениваться данными). Необходимо объединить ее со второй Ардуиной и заставить их обмениваться данными, в случае чего вмешиваться в "рабочие процессы" (к примеру на одной ардуине датчик температуры, а на другой реле и в случае превышения температуры система отключает реле). В Гугле нашел несколько вариантов связи между МК (I2C, UART, RS485). Какой вариант более актуален на моих свободных пинах? Заранее спасибо за помощь!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, UART и RS485 - это, как я понимаю, не разные варианты. а один (в смысле пинов), т.к. RS485 разумно вешать как раз на UART.

Ответ на Ваш вопрос зависит от множетсва факторов, которые Вы не умпомянули, например от расстояния между узлами сети. и много от чего ещё.

В "общем и среднем" я бы смотрел в стророну UART, а при больших расстояниях, навесил бы на него RS485.

sadman41
Offline
Зарегистрирован: 19.10.2016

Кроме свободных пинов нужно иметь свободные ресурсы МК. Обмен по любой коммуникационой шине требует дополнительного кода на реализацию слейва/мастера (в случае с RS485 придется еще решать как выбирать мастера). А код требует RAM и Flash. Если же ваши ардуины уже нафаршированы под завязку, то никакого обмена вам уже не светит и нужно пересматривать/переписывать вашу систему с учетом новых требований.

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

Если в одном корпусе или растояние между блоками небольшое - I2C самое то. Тем более  в вашем случае ноги других интерфейсов заняты. А на большие растояния - городите RS485.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да вот тоже вопрос становится актуальным, в связи с подготовкой на кубок РТК .. созджал тему в проектах.

Logik
Offline
Зарегистрирован: 05.08.2014

Согласен с Штирлиц. Добавлю только что не рассматривайте процес как 1+1=2. Обмен отвлекает довольно много ресурсов и суммарно возможности системы из нескольких МП оказывается сильно ниже суммы возможностей каждого МК в отдельности. Может вам  контроллер помощней просто нужен?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Hardwell пишет:
ADC-3, ADC-6, ADC-7, RX-1, TX, PD-5 и I2C

Освободить SPI, поставить nRF24L01+. И без проводов.