Модуль UART TTL – RS-485 на MAX485: подключение к Arduino

Модуль UART TTL – RS-485 на MAX485: подключение к Arduino

Как преобразователь на MAX485 выводит Arduino на шину RS-485: характеристики, выводы и две схемы обмена данными.

Зачем нужен RS-485

RS-485 — стандарт проводной связи, который чаще всего применяют для объединения в сеть промышленного оборудования. Приём и передача идут по одной витой паре. Стандарт допускает расстояние между устройствами до 1,2 км и до 32 устройств на одной шине. Одно из них является ведущим (master), остальные — ведомыми (slave).

Приёмопередатчиков RS-485 существует много. Модули на микросхеме MAX485 преобразуют сигналы TTL в уровни RS-485 и обратно, поэтому через них к шине подключают устройства на базе Arduino.

Модуль преобразователя TTL – RS-485 на микросхеме MAX485

Характеристики и выводы

Напряжение питания5 В
Ток потребления10 мА
Ток в режиме ожидания5 мА
Скорость передачи данныхдо 2,5 Мбит/с
Рабочая температура0–70 °С
Размер44x14x20 мм

На плате модуля восемь контактов:

  • Vcc — питание +5 В;
  • GND — земля;
  • DI — вход передатчика;
  • RO — выход приёмника;
  • DE — разрешение работы передатчика;
  • RE — разрешение работы приёмника;
  • A и B — линии передачи данных.

Все модули на шине соединяются одноимёнными выводами: A с A, B с B. Соединение обязательно выполняют витой парой.

Управление направлением

Входы DE и RE можно объединить и подключить к одному цифровому выводу Arduino. Тогда высокий уровень (HIGH) на этом выводе переводит модуль только на передачу, а низкий (LOW) — только на приём. Для обмена с модулем в примерах используется программный последовательный порт библиотеки SoftwareSerial, а аппаратный Serial остаётся для вывода в монитор порта.

Схема подключения модуля TTL – RS-485 к плате Arduino

Arduino и компьютер на одной шине

Со стороны компьютера нужен адаптер USB – RS-485; система видит его как COM-порт.

Адаптер USB – RS-485 для подключения к компьютеру

Arduino в этой схеме работает ведомым устройством. Программный порт создаётся строкой SoftwareSerial RS485Serial(3, 2), то есть RX на контакте 3, TX на контакте 2, а объединённые выводы RE и DE подключены к пину 6. Оба порта запускаются на скорости 9600. В setup на пин направления подаётся LOW, и модуль слушает шину.

Скетч накапливает принятые байты в строку, пока не встретит символ «*» — признак конца передачи. После этого проверяется первый байт, который играет роль адреса. Если это символ «1», плата переводит модуль в режим передачи, выдерживает паузу 10 мс, отправляет ответ «OK», снова ждёт 10 мс и возвращается к приёму. Проверить обмен можно из любой терминальной программы для COM-порта, например ComPortToolkit: на команду, начинающуюся с «1», приходит ответ «OK».

Окно терминала COM-порта с командой и ответом OK от Arduino

Две платы Arduino по RS-485

Во втором примере первая плата по нажатию кнопки отправляет команду, а вторая переключает по ней светодиод. Для сборки нужны:

  • плата Arduino Uno — 2 шт.;
  • модуль TTL – RS-485 — 2 шт.;
  • плата прототипирования;
  • светодиод и кнопка;
  • резисторы 10 кОм и 220 Ом;
  • провода.

На обеих платах программный порт объявлен как SoftwareSerial RS485Serial(7, 6) — RX на 7, TX на 6, выводы RE и DE модуля заведены на пин 10, скорость 9600. Первая плата держит модуль в режиме передатчика. Кнопка подключена к пину 12 и опрашивается с подавлением дребезга: при изменении состояния выдерживается пауза 5 мс и вывод читается повторно. Каждое нажатие меняет значение переменной состояния светодиода, после чего в шину уходит строка «1=1» или «1=0».

Вторая плата постоянно находится в режиме приёма и собирает строку тем же способом, что и в примере с компьютером. Если первый символ равен «1», а второй «=», третий определяет состояние светодиода на пине 12: «0» гасит его, любое другое значение зажигает. Принятая строка дублируется в монитор порта.

Если связи нет

  • Проверить питание плат Arduino и модулей TTL – RS-485.
  • Проверить правильность соединений плат и модулей.
  • Убедиться, что приёмопередатчики соединены витой парой.
  • Убедиться, что на шине только одно ведущее устройство, а остальные работают ведомыми.

← Все статьи