39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#include <ModbusMaster.h>
|
|
|
|
// Настройки Modbus
|
|
#define MAX485_DE_RE_PIN 2 // Пин управления направлением MAX485
|
|
#define MODBUS_SLAVE_ID 1 // ID устройства Modbus
|
|
|
|
// Экземпляр объекта ModbusMaster
|
|
ModbusMaster node;
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
|
|
// Инициализация объекта ModbusMaster
|
|
node.begin(MODBUS_SLAVE_ID, Serial);
|
|
|
|
// Установка пина управления направлением для модуля MAX485
|
|
pinMode(MAX485_DE_RE_PIN, OUTPUT);
|
|
digitalWrite(MAX485_DE_RE_PIN, LOW); // Настроить на передачу данных
|
|
|
|
Serial.println("Modbus communication initialized");
|
|
}
|
|
|
|
void loop() {
|
|
// Чтение состояния порта
|
|
int portState = digitalRead(MAX485_DE_RE_PIN);
|
|
|
|
// Отправка состояния порта по Modbus
|
|
uint8_t result = node.writeSingleCoil(0, portState);
|
|
|
|
// Обработка результата записи
|
|
if (result == node.ku8MBSuccess) {
|
|
Serial.println("Modbus write success");
|
|
} else {
|
|
Serial.println("Modbus write failed");
|
|
}
|
|
|
|
delay(500);
|
|
}
|