Хотите дёшево и просто объединить несколько плат Arduino в сеть? Достаточно установить на каждую плату RS485 и протянуть всего два провода!
Вы сможете разворачивать масштабные сети интеллектуальных датчиков, строить системы умного дома или организовывать автоматический полив в большом количестве мест вашего дачного участка.
Никаких ethernet-кабелей. Никаких обжимок и разъёмов 8P8C. Никаких концентраторов. Только два провода, к которым параллельно подключаются все контроллеры. Модуль предоставляет возможность передавать байты данных. Протокол передачи данных предоставляется определить самостоятельно.
Кроме того, по RS485 вы можете общаться со сторонними устройствами, которые поддерживают этот интерфейс.
Плата построена на микросхеме Maxim MAX485 и производится компанией DFRobot.
Микросхема MAX485, на которой основан шилд, имеет набор средств защиты от внешний воздействий: защита от короткого замыкания линий, защита от перегрева и защита от электростатических разрядов.
На плате есть площадка с отверстиями для прототипирования. Шаг отверстий стандартный — 2,54 мм.
RS485 — симплексный интерфейс. Это означает, что в любой момент времени данные могут передаваться только одним узлом сети. Причём данные передаются сразу по двум проводам дифференциальным методом: передаваемый бит кодируется разностью потенциалов между двумя проводами линии. Такой метод передачи существенно снижает уровень помех, т.к. они наводятся одинаково на оба провода и «не видны» при измерении разности потенциалов на этих проводах. Как результат, устройства могут общаться на расстоянии до 1200 метров.
Предусмотрено два способа переключения между передачей и приёмом: автоматический и ручной. В автоматическом режиме плата сама определяет, когда контроллер начинает выдавать данные и переключается на передачу. Режим устанавливается переключателем на плате.
Также на плате установлен выключатель обмена данными. Он просто отсоединяет модуль от линии. Эта функция оказывается очень полезной на этапе отладки.
Платы расширения не имеют опторазвязки, однако могут составлять сеть, как с единственным, так и с множеством источников питания. Данные передаются дифференциально, поэтому гальваническая развязка узлов питания не нужна.
Управление платой осуществляется через UART. Поэтому занятыми оказываются пины 0 (RX) и 1 (TX), используемые для приёма и передачи данных соответственно.
Кроме того, в ручном режиме выбора направления передачи используется пин 2. Установка логической единицы соответствуют направлению на передачу, нуля — на приём.
Многие Arduino-платы, например Arduino Uno, используют эти пины для загрузки нового скетча. Чтобы интерфейс RS-232 не мешал перепрошивке платы, просто установите предусмотренный на плате переключатель в положение «OFF».
Бывает необходимо одновременно использовать и интерфейс RS-485 и связь с компьютером. В таком случае в качестве управляющего устройства можно использовать Arduino Leonardo, в которой аппаратный UART и интерфейс USB разнесены.