#include #include // Создание объектов для Modbus SoftwareSerial modbusSerial(10, 11); // RX, TX пины для Modbus ModbusMaster node; // Объект Modbus для работы с клиентом const int pinState = 7; // Пин для состояния void setup() { // Настройка пина pinMode(pinState, INPUT); // Инициализация Modbus modbusSerial.begin(9600); // Скорость обмена по серийному порту для Modbus node.begin(1, modbusSerial); // Адрес устройства (Slave ID) // Устанавливаем тайм-аут для Modbus node.preTransmission(preTransmission); node.postTransmission(postTransmission); } void loop() { // Считываем состояние пина (0 или 1) int pinStatus = digitalRead(pinState); // Отправляем состояние пина на клиентскую сторону через Modbus node.writeSingleRegister(0, pinStatus); // Пишем в регистр 0 delay(100); // Задержка для предотвращения перегрузки } // Функции для обработки передачи данных void preTransmission() { digitalWrite(8, 1); // Например, управление RE/DE пинами (если используется RS-485) } void postTransmission() { digitalWrite(8, 0); // Отключение передачи }