Какова максимальная длина провода для последовательной связи между двумя Arduino?

Я строю проект, в котором два Arduino будут связаны тремя проводами: TX RX для последовательной связи и общий GND. Какова будет максимальная длина проводов здесь, прежде чем связь будет нарушена?

Я использую Arduino Mega R3 с одной стороны и Arduino Mini с другой.

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

, 👍9


2 ответа


4

Вам необходимо указать

  • Порядок дальности, который вас интересует - это порядок метров, десятков метров, километров или межгосударственный ?:-) . ВСЕ это возможно при наличии подходящего компромисса.

  • Как вы собираетесь подключаться к схеме - прямые контакты Arduino, буфер высокого/низкого уровня, дифференциальные драйверы, ...

Если вы используете "однополярный" 5 В/0 В, то, скажем, при 9600 бод вы можете получить много метров с подходящими драйверами. Если вы используете вывод Arduino напрямую, сопротивление и индуктивность провода начнут иметь значение по мере увеличения дальности.

При скорости 300 бод вы можете преодолеть сотни метров с помощью кабелей с витой парой. По мере увеличения дальности действия такие аспекты, как перекрестные помехи от другой цепи и внешний шум, приобретают все большее значение. На больших расстояниях помогает наличие 4 проводов с сигналом + землей, скрученных вместе в каждом случае, НО вполне вероятно, что на интересующих диапазонах 2 провода плюс земля будут работать нормально.

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

,

Расстояние, которое я хотел бы преодолеть, составляет примерно 40-50 метров от нашего дома до ворот снаружи. Мое намерение состояло в том, чтобы подключить соответствующие контакты Arduino напрямую с помощью кабеля, который я нашел в предыдущей установке внутренней связи., @hobie

Некоторая опасность для Arduino с длинными проводами кабеля. Индукция, утечка, электростатический заряд. (Молния и земля поднимаются только из-за сбоя питания, возможно, но ...). Обратные диоды зажима к рельсам питания на всех линиях-хорошая идея. Базовый драйвер-ОЧЕНЬ хорошая идея. Даже IC с шестигранным преобразователем Шмитта xx74xx14 на каждом конце был бы полезен. (где xx - зависит от семьи). Правильные линейные водители еще лучше, но это только начало. ЕСЛИ ваш Arduino ценен, используйте буфер., @Russell McMahon

Спасибо всем за замечания и предложения. Чтобы выяснить, смогу ли я преодолеть заданное расстояние (около 40 м) с помощью простого соединения, я попробовал использовать два Arduino Uno, соответственно настроенных в качестве отправителя и приемника. Платы напрямую подключены через линии TX/RX (контакты 0 и 1) со скоростью 9600 бит в секунду. Отправитель отправляет тестовую строку каждую секунду, пока получатель прослушивает входящие данные. Я использую существующую линию (нет информации о качестве/спецификациях этого кабеля. В любом случае, пара отправитель/получатель, кажется, работает без каких-либо проблем на этом расстоянии и конфигурации., @hobie

Спасибо, у вас есть какое-либо конкретное предложение / ссылка на микросхему или чип драйвера?, @hobie

@hobie На скорости 50 метров и 9600 бод вы, вероятно, сможете достичь хороших результатов (попробуйте и увидите) почти с любой микросхемой цифрового драйвера 5 вольт и даже просто микросхем с цифровым выходом. Полезной отправной точкой являются CMOS-инверторы с триггером Шмитта, обычно 74xxx14, CDxxx14, ММ......14. Ищите инверторы с триггером Шмитта, избегайте инверторов с наименьшей мощностью привода., @Russell McMahon

@hobie Этот поиск по каталогу Digikey [**инверторы Шмитта количество 5 цена ordered**](http://www.digikey.com/product-search/en/integrated-circuits-ics/logic-gates-and-inverters/2556317?FV=fff40027%2Cfff8019d&mnonly=0&newproducts=0&ColumnSort=1000011&page=1&stock=1&pbfree=0&rohs=0&k=schmitt+inverter&quantity=5&ptm=0&fid=0&pageSize=25) предоставляет множество альтернатив. [**Этот пакет 74LV1G14 с одним затвором**](http://www.diodes.com/_files/datasheets/74LVC1G14.pdf) стоит 26 центов за 1 доллар и 5 центов за тысячи. Они могут (вероятно) использоваться на приемном конце для получения сигналов приема в квадрате ..., @Russell McMahon

@hobie и при напряжении около 30 мА при 4,5 вольт Vcc (максимум 32) они обеспечивают полезный объем линейного привода. Есть также много преданных водителей автобусов и множество ворот Сойера Шмитта., @Russell McMahon


0

Это не совсем то, что вы просите, но это было бы надежным и доступным по низкой цене в виде модулей arduino. Я бы сделал это с помощью драйвера и приемника на каждом конце. Это недорогие дифференциальные линейные драйверы. Нет ничего, что мешает использовать асинхронность на любом бод, который вы хотите до 1 мегабауда. Проведите провод для заземления, это поможет. Вы будете использовать 5 проводников или 2,5 пары проводов. Кабель Ethernet должен работать нормально. Вы можете послать некоторую мощность по запасным проводам, если хотите. У вас также есть возможность использовать некоторые автоматические драйверы CAN, которые автоматически переключаются в режим передачи при отправке и получении данных в противном случае, это удержит вас на трех проводах.

,