Общие сведения
Конвертирующий модуль на базе чипа MAX485 — предназначен для преобразования сигналов TTL (Transistor-Transistor Logic - транзисторно-транзисторная логика) шины UART (Universal Asynchronous Receiver-Transmitter - универсальный асинхронный приёмопередатчик) в стандарт RS485 (Recommended Standard 485 - рекомендуемый стандарт 485) и обратно.
Характеристики
- Рабочее напряжение: 5 В
- Потребляемый ток: < 10 мА
- Ток потребляемый в режиме ожидания: < 5 мА
- Частота передачи данных: <2,5 Мбит/с
Подключение
Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.
Конвертирующий модуль подключается к шине UART:
Конвертирующий модуль | Arduino |
---|---|
DI (Driver Input - вход передатчика) | TX (transmit - передать) |
RO (Receiver Out - выход приёмника) | RX (receive - получить) |
Vcc (Voltage constant current - напряжение постоянного тока) | Vcc |
GND (GrouND - земля) | GND (GrouND - земля) |
DE (Driver Enable - разрешение работы передатчика) | D10 (Digital - цифровой) |
~RE (Receiver Enable - разрешение работы приёмника) | D10 (Digital - цифровой) |
Все конвертирующие модули на линии соединяются одноименными выводами: «A» с «A», «B» с «B».
Примеры
Отправка значений с клавиатуры и вывод принятых значений на LCD-дисплей.
Пример взят из Урока 26.2.
// Подключаем библиотеки: #include <Wire.h> // подключаем библиотеку для работы с шиной I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для работы с LCD дисплеем #include <iarduino_KB.h> // подключаем библиотеку для работы с матричной клавиатурой // Объявляем переменные и константы: LiquidCrystal_I2C lcd(0x27,16,2); // объявляем переменную для работы с LCD дисплеем, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2) iarduino_KB KB(9,8,7,6,5,4,3,2); // объявляем переменную для работы с матричной клавиатурой, указывая номера aeduino подключенные к шлейфу клавиатуры, начиная с первого вывода шлейфа const uint8_t PIN_direction_TX_RX = 10; // указываем номер вывода arduino, к которому подключены выводы RE и DE конвертирующего модуля void setup(){ pinMode(PIN_direction_TX_RX, OUTPUT); // устанавливаем режим работы вывода PIN_direction_TX_RX, как "выход" digitalWrite(PIN_direction_TX_RX, LOW); // устанавливаем уровень логического «0» на выводе PIN_direction_TX_RX (переводим модуль в режим приёма данных) Serial.begin(9600); // открываем последовательный порт на скорости 9600 бод KB.begin(KB1); // инициируем клавиатуру (KB1 - эластичная матричная клавиатура 4х4) lcd.init(); // инициируем LCD дисплей lcd.backlight(); // включаем подсветку LCD дисплея lcd.setCursor(0, 0); // устанавливаем курсор в позицию: столбец 0, строка 0 lcd.print("iArduino.ru"); // выводим текст "iArduino.ru" lcd.setCursor(0, 1); // устанавливаем курсор в позицию: столбец 0, строка 1 lcd.print("Received data:"); // выводим текст "Received data:" } void loop(){ if(KB.check(KEY_DOWN)){ // если нажимается кнопка (KEY_DOWN - нажимается, KEY_UP - отпускается, KEY_PRESS - удерживается), то ... digitalWrite(PIN_direction_TX_RX, HIGH); // переводим модуль в режим передачи данных delay(1); Serial.print(KB.getChar); // отправляем символ кнопки в последовательный порт (для вывода цифры кнопки используйте KB.getNum) delay(1); digitalWrite(PIN_direction_TX_RX, LOW); // переводим модуль в режим приёма данных } if(Serial.available()>0){ // если в последовательном порту есть данные для чтения, то ... lcd.setCursor(15, 1); // устанавливаем курсор в позицию: столбец 15, строка 1 lcd.print(char(Serial.read())); // выводим байт данных в виде символа, из последовательного порта на LCD дисплей } }
Настройка параметров линии связи
Конвертирующий модуль только преобразует сигналы TTL в стандарт RS485 и обратно. Параметры линии: скорость передачи данных, количество бит в минимальной посылке, длина стопового бита, проверка на чётность/нечётность, зависят от настроек шины UART, см. раздел «Настройка параметров шины UART» в уроке 26.1.
Настройки шины UART для всех Arduino, подключённых к линии, должны быть идентичны!
Комплектация
- 1х Конвертирующий модуль на базе чипа MAX485;