Отправка данных через два Arduino с независимым питанием

У меня есть несколько плат Arduino, каждый из которых питается от батареи напряжением 12 В через стабилизатор на 5 В. Все ардуино имеют общую основу. Могу ли я просто подключить цифровой выход одного Arduino к цифровому входу другого? Я обеспокоен тем, что (небольшая) разница напряжений между каждым регулятором может вызвать проблемы.

, 👍2

Обсуждение

Можете ли вы рассказать больше? Добавьте дополнительную информацию к вашему вопросу. Сколько кратно? 3 или 3000? Пожалуйста, объясните расстояния и что еще происходит. Используете ли вы SoftwareSerial для связи? Есть ли поблизости мощный мотор или что-то еще? Находится ли цифровой сигнал в проводе рядом с другими проводами с пиками тока? Можно добавить на вход защитный резистор номиналом 1 кОм, а можно попробовать беспроводное соединение или с оптопарой., @Jot

Небольшие различия в питании не будут иметь никакого эффекта. Однако очень большие расстояния могут иметь эффект. На каком расстоянии друг от друга находятся Arduino?, @Majenko

Согласно таблице данных, входное напряжение на входном контакте должно находиться в диапазоне от -0,5 В до VCC + 0,5 В. У вас есть запас 0,5 В. Для дополнительной безопасности вы можете добавить между ними резистор 1–10 кОм., @Gerben


1 ответ


1

Ничего страшного, если расстояние между двумя устройствами не слишком большое (пара метров)

Поскольку допустимые диапазоны логических уровней (напряжения) довольно широки, небольшая разница не повлияет на работу устройств. Arduino использует логику TTL (5 В), поэтому давайте посмотрим на диаграммы уровней:

Уровни TTL

Если вы видите, диапазоны выходного уровня (справа) более строгие, чем на входной стороне (слева), поэтому логическое значение остается действительным даже при небольшом падении напряжения или возникновении шума на проводе.

Убедитесь, что вы не подключите два выхода напрямую, так как это может повредить микроконтроллеры. Подключение двух входов абсолютно безопасно.

ПРАВКА: Если вы хотите покрыть большие расстояния, вам нужно использовать сбалансированную линию, например, дифференциальные входы/выходы, RS-485 или CAN. Это не стандартные функции Arduino, поэтому вам понадобится дополнительная электроника для их использования.

,

Ну, "полностью нормально" - это натяжка. Не все 0 В одинаковы, и если общий 0 В шумный, длинный или несет ток, у вас могут быть ложные сдвиги уровня. Связь RS485 была бы лучше с ее высоким диапазоном CM. Это, вероятно, будет работать, но универсально? Нет, @Naib