🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🔗 Проект: обмен данными между Arduino на большом расстоянии по RS485

Два модуля UR485

Конвертер UR485 превращает UART в RS485 — устойчиво к помехам, работает на десятки метров.

Как это работает

Как и CAN, RS485 — дифференциальная шина (A и B), что даёт устойчивость на больших расстояниях. Но в отличие от CAN, у RS485 нет встроенного арбитража: это "общий провод", и при одновременной передаче двух плат данные столкнутся. RS485 half-duplex, поэтому в сетях нужна дисциплина очерёдности или протокол поверх (например, Modbus).

UR485 (на чипе типа MAX485) обычно сам определяет направление передачи по факту начала отправки — на части простых модулей направление переключается вручную через пин DE перед отправкой.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. UR485: RX/TX → D2/D3 (SoftwareSerial), VCC → 5V, GND → GND на обеих платах.
  2. A и B соединяют платы витой парой, не перепутав полярность.
  3. На длинных линиях добавьте резистор 120 Ом на каждом конце, как в проекте с CAN-шиной.
  4. Прошейте одну плату с `isSender = true`, вторую — с `false`, проверьте через Serial-монитор на приёмнике.

Скетч (роль задаётся константой)

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.

#include <SoftwareSerial.h>

SoftwareSerial rs485(2, 3);
const bool isSender = true;

void setup() {
  rs485.begin(9600);
  Serial.begin(9600);
  Serial.println(isSender ? "Режим: отправитель" : "Режим: приёмник");
}

void loop() {
  if (isSender) {
    rs485.println("Hello from node A");
    delay(1000);
  } else {
    if (rs485.available()) {
      String msg = rs485.readStringUntil('\n');
      Serial.println(msg);
    }
  }
}
                

Модуль UR485 обычно сам определяет направление — при ручном переключении добавьте управление DE-пином перед отправкой.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🚌 обмен данными между двумя Ardu…🌐 проводная веб-метеостанция на … →

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA