Доделал последнюю версию
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#include <ModbusMaster.h>
|
||||
#include <SoftwareSerial.h>
|
||||
|
||||
// Создание объектов для 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); // Отключение передачи
|
||||
}
|
||||
Reference in New Issue
Block a user