Zamówienie w dzień roboczy przed 14:00 = wysyłka tego samego dnia 30 dni na odstąpienie od umowy 1 rok gwarancji
← Wróć do przeglądu

Schemat podłączenia i przykład kodu

Tak podłączysz Moduł konwertera MAX485 TTL na RS485 do Arduino UNO lub ESP32, z przykładowym szkicem, który możesz od razu wgrać.

Komunikacja transceivera MAX485 RS-485

Ten układ łączy Arduino Uno z różnicową magistralą RS-485 za pomocą transceivera MAX485. SoftwareSerial obsługuje komunikację z modułem, a piny cyfrowe sterują trybami nadawania i odbioru. Każda wiadomość wpisana w Serial Monitor jest wysyłana przez RS-485, a dane przychodzące z magistrali są wyświetlane na ekranie.

Schemat podłączenia: Moduł konwertera MAX485 TTL na RS485 na Arduino UNO
Schemat podłączenia · Kliknij, aby powiększyć
Tabela połączeń: Moduł konwertera MAX485 TTL na RS485 na Arduino UNO
Tabela połączeń · Kliknij, aby powiększyć
MAX485_RS_485_Transceiver_Communication.ino · skompilowane i przetestowane
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : MAX485 RS-485 Transceiver Communication
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : MAX485 TTL to RS485 Converter Module
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

#include <SoftwareSerial.h>

const byte PIN_RO = 2;   // Receiver Out (RX)
const byte PIN_DI = 3;   // Driver In (TX)
const byte PIN_DE = 4;   // Driver Enable (Active HIGH)
const byte PIN_RE = 5;   // Receiver Enable (Active LOW)

SoftwareSerial rs485(PIN_RO, PIN_DI);

unsigned long lastSend = 0;
int packetCount = 0;

void setTransmitMode() {
  digitalWrite(PIN_RE, HIGH); // Disable receiver
  digitalWrite(PIN_DE, HIGH); // Enable driver
  delayMicroseconds(50);
}

void setReceiveMode() {
  digitalWrite(PIN_DE, LOW);  // Disable driver
  digitalWrite(PIN_RE, LOW);  // Enable receiver
  delayMicroseconds(50);
}

void rs485Send(const String &msg) {
  setTransmitMode();
  rs485.println(msg);
  rs485.flush();
  setReceiveMode();
}

void setup() {
  pinMode(PIN_DE, OUTPUT);
  pinMode(PIN_RE, OUTPUT);
  setReceiveMode();

  Serial.begin(115200);
  rs485.begin(9600);

  Serial.println(F("MAX485 RS-485 Transceiver Demo"));
  Serial.println(F("Type a message and press Enter to send over RS-485."));
}

void loop() {
  // Forward incoming Serial Monitor input to RS-485
  if (Serial.available()) {
    String input = Serial.readStringUntil('\n');
    input.trim();
    if (input.length() > 0) {
      Serial.print(F("Sending: "));
      Serial.println(input);
      rs485Send(input);
    }
  }

  // Forward received RS-485 data to Serial Monitor
  if (rs485.available()) {
    Serial.print(F("Received: "));
    while (rs485.available()) {
      char c = (char)rs485.read();
      Serial.print(c);
      delay(2);
    }
    Serial.println();
  }

  // Automatically send a heartbeat packet every 5 seconds
  if (millis() - lastSend >= 5000) {
    lastSend = millis();
    packetCount++;
    String packet = "Ping #" + String(packetCount);
    Serial.print(F("Auto-transmitting: "));
    Serial.println(packet);
    rs485Send(packet);
  }
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Komunikacja RS-485 z MAX485 i ESP32

Ten projekt pokazuje, jak wysyłać i odbierać dane na magistrali RS-485 za pomocą modułu MAX485 i UART2 w ESP32. ESP32 ustawia piny DE/RE w stan HIGH, aby wysyłać okresową wiadomość heartbeat, i ustawia je w stan LOW, aby nasłuchiwać nadchodzących pakietów RS-485. Prosty dzielnik napięcia 1kΩ/2kΩ bezpiecznie obniża wyjście TTL 5V (RO) modułu do 3.3V dla pinu RX ESP32.

Schemat podłączenia: Moduł konwertera MAX485 TTL na RS485 na ESP32 DevKit V1
Schemat podłączenia · Kliknij, aby powiększyć
Tabela połączeń: Moduł konwertera MAX485 TTL na RS485 na ESP32 DevKit V1
Tabela połączeń · Kliknij, aby powiększyć
MAX485_RS_485_Communication_with_ESP32.ino · skompilowane i przetestowane
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : MAX485 RS-485 Communication with ESP32
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : MAX485 TTL to RS485 Converter Module
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

// MAX485 TTL to RS-485 transceiver demo with ESP32

const int CONTROL_PIN = 4; // Controls DE and RE (HIGH = Transmit, LOW = Receive)
const int RXD2_PIN = 16;
const int TXD2_PIN = 17;

unsigned long lastSendTime = 0;
int messageCount = 0;

void setup() {
  Serial.begin(115200);
  pinMode(CONTROL_PIN, OUTPUT);
  digitalWrite(CONTROL_PIN, LOW); // Start in receive mode

  // Initialize UART2 for RS-485 communication
  Serial2.begin(9600, SERIAL_8N1, RXD2_PIN, TXD2_PIN);

  Serial.println("RS-485 Transceiver Ready");
}

void loop() {
  // Send a message every 2 seconds
  if (millis() - lastSendTime >= 2000) {
    lastSendTime = millis();
    messageCount++;

    // Enable RS-485 transmitter
    digitalWrite(CONTROL_PIN, HIGH);
    delay(10);

    String msg = "Hello from ESP32 #" + String(messageCount);
    Serial2.println(msg);
    Serial2.flush(); // Wait until all outgoing bytes are transmitted

    // Return to receive mode
    digitalWrite(CONTROL_PIN, LOW);

    Serial.print("Sent over RS-485: ");
    Serial.println(msg);
  }

  // Check for incoming RS-485 data
  if (Serial2.available()) {
    Serial.print("Received via RS-485: ");
    while (Serial2.available()) {
      char c = (char)Serial2.read();
      Serial.print(c);
    }
    Serial.println();
  }
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Ostatnio oglądane

Regulowany moduł step-down 3-40VDC do 1.5-35VDC LM2596

Regulowany moduł step-down 3-40VDC do 1.5-35VDC LM2596

€ 2,20
Nano V3 USB-C Arduino Compatible CH340

Nano V3 USB-C Arduino Compatible CH340

€ 5,00
Arduino® Nano Every z headerami

Arduino® Nano Every z headerami

€ 17,00
Zobacz
Arduino®  UNO R4 Minima

Arduino® UNO R4 Minima

€ 21,99
Moduł czujnika UV GUVA-S12SD

Moduł czujnika UV GUVA-S12SD

€ 4,25