TTL – RS-485 преобразователь на MAX485 предназначен для преобразования сигналов TTL (Транзисторно-Транзисторная Логика) шины UART (Universal Asynchronous Receiver-Transmitter) в стандарт RS485 (Recommended Standard 485) и обратно.
RS-485 — это протокол асинхронной последовательной связи, который не требует тактового сигнала, по сути это предок протоколы RS-232. Максимальное расстояние для передачи данных составляет 1200 метров. К одной линии можно подключить до 32 устройств.
Оснащен удобными разъемами:
- Штыревые контакты для подключения к микроконтроллеру
- Винтовой клеммник для подключения линии RS-485
Назначение контактов:
- VCC и GND — питание модуля
- B — Вход/выход линии RS-485
- A — Вход/выход линии RS-485
- DI — Вход передатчика (TX)
- DE — Разрешение работы передатчика
- RE — Разрешение работы приёмника
- RO — Выход приемника (RX)
Переключение модуля на прием и передачу осуществляется с помощью выводов DE и RE. Если их замкнуть между собой и подключить к любому цифровому выводу Arduino, то подав на него «1» модуль будет работать только на передачу, а подав «0», только на приём.
Принципиальная схема

Пример подключения
Программа передатчика
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <SoftwareSerial.h> // Подключаем библиотеку SoftwareSerial SoftwareSerial Master(10, 11); // Указываем выводы RO и RI char val; // Создаем переменную val int DE_RE=4; // Указываем выводы DE и RE void setup() { Serial.begin(19200); // Открываем последовательную связь Serial.println("Master!"); // Отправка текста Master.begin(19200); // Открываем последовательную связь pinMode(DE_RE,OUTPUT); // Задаем DE_RE как выход digitalWrite(DE_RE,LOW); // Устанавливаем DE_RE в LOW } void loop() { while (Serial.available()) { // Проверяем,поступили ли данные digitalWrite(DE_RE,HIGH); // Устанавливаем DE_RE в HIGH val = Serial.read(); // Копируем данные val Master.write(val); // Отправка данных } digitalWrite(DE_RE,LOW); // Устанавливаем DE_RE в LOW while(Master.available()) { // Проверяем,поступили ли данные val = Master.read(); // Копируем данные val Serial.write(val); // Отправка данных } } |
Программа приемника
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <SoftwareSerial.h> // Подключаем библиотеку SoftwareSerial SoftwareSerial Slave(10, 11); // Указываем выводы RO и RI char val; // Создаем переменную val int DE_RE=4; // Указываем выводы DE и RE void setup() { Serial.begin(19200); // Открываем последовательную связь Serial.println("Slave!"); // Отправка текста Slave.begin(19200); // Открываем последовательную связь pinMode(DE_RE,OUTPUT); // Задаем DE_RE как выход digitalWrite(DE_RE,LOW); // Устанавливаем DE_RE в LOW } void loop() { while (Serial.available()) { // Проверяем,поступили ли данные digitalWrite(DE_RE,HIGH); // Устанавливаем DE_RE в HIGH val = Serial.read(); // Копируем данные val Slave.write(val); // Отправка данных } digitalWrite(DE_RE,LOW); // Устанавливаем DE_RE в LOW while(Slave.available()) { // Проверяем,поступили ли данные val = Slave.read(); // Копируем данные val Serial.write(val); // Отправка данных } } |








