#include #define BAUD_RATE 57600 #define SLAVE_ID 1 #define COIL_COUNT 4 #define COIL_START 1 #define COIL_0 4 #define COIL_1 5 #define COIL_2 6 #define COIL_3 7 #define STATUS_0 12 #define STATUS_1 11 ModbusSerial mb (Serial, SLAVE_ID); void setup() { Serial.begin (BAUD_RATE); while (! Serial); mb.config(BAUD_RATE); mb.addCoil (0); mb.addCoil (1); mb.addCoil (2); mb.addCoil (3); mb.addIsts(0); mb.addIsts(1); pinMode(COIL_0, OUTPUT); pinMode(COIL_1, OUTPUT); pinMode(COIL_2, OUTPUT); pinMode(COIL_3, OUTPUT); pinMode(STATUS_0, INPUT_PULLUP); pinMode(STATUS_1, INPUT_PULLUP); } void loop() { mb.task(); readCoilValues(); writeStatusValues(); } void readCoilValues() { digitalWrite(COIL_0, mb.coil(0)); digitalWrite(COIL_1, mb.coil(1)); digitalWrite(COIL_2, mb.coil(2)); digitalWrite(COIL_3, mb.coil(3)); } void writeStatusValues() { mb.setIsts(0, !digitalRead(STATUS_0)); mb.setIsts(1, !digitalRead(STATUS_1)); }