TEST RS485
#include <HardwareSerial.h>
#define MAX485_CTRL 39
#define RS485_RX 38
#define RS485_TX 40
HardwareSerial Serial_RS485(1);
unsigned long lastSendTime = 0;
const unsigned long sendInterval = 1000;
void setup() {
pinMode(MAX485_CTRL, OUTPUT);
setReceiveMode(); // Alway in sending mode
Serial_RS485.begin(115200, SERIAL_8N1, RS485_RX, RS485_TX);
Serial.begin(115200);
Serial.println("RS485 node started. Sending TDLOGY every 1s...");
}
void loop() {
if (Serial_RS485.available()) {
String incoming = Serial_RS485.readStringUntil('\n');
incoming.trim();
if (incoming.length() > 0) {
Serial.print("[RECEIVED]: ");
Serial.println(incoming);
}
}
// Send "TDLOGY" every 1 second
if (millis() - lastSendTime >= sendInterval) {
sendMessage("TDLOGY");
lastSendTime = millis();
}
}
void sendMessage(const String& message) {
setTransmitMode();
Serial_RS485.println(message);
delay(2);
setReceiveMode();
Serial.print("[SENT]: ");
Serial.println(message);
}
void setTransmitMode() {
digitalWrite(MAX485_CTRL, HIGH);
}
void setReceiveMode() {
digitalWrite(MAX485_CTRL, LOW);
}
Màn hình sau khi nạp code. Mở hai trang Arduino một page chọn port của bo một page chọn port của uart-rs485 để test truyền nhận data. Như test COM22 là port của board COM10 là port của USB RS485.
No Comments