Software_and_hardware/1/1.ino

41 lines
1.5 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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); // Отключение передачи
}