Доделал последнюю версию

This commit is contained in:
2025-02-15 02:16:43 +03:00
parent 465df94f07
commit b156930709
15 changed files with 622 additions and 87 deletions
+40
View File
@@ -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); // Отключение передачи
}