initial
This commit is contained in:
@ -0,0 +1,61 @@
|
||||
/*
|
||||
Modbus RTU Server LED
|
||||
|
||||
This sketch creates a Modbus RTU Server with a simulated coil.
|
||||
The value of the simulated coil is set on the LED
|
||||
|
||||
Circuit:
|
||||
- MKR board
|
||||
- MKR 485 shield
|
||||
- ISO GND connected to GND of the Modbus RTU server
|
||||
- Y connected to A/Y of the Modbus RTU client
|
||||
- Z connected to B/Z of the Modbus RTU client
|
||||
- Jumper positions
|
||||
- FULL set to OFF
|
||||
- Z \/\/ Y set to OFF
|
||||
|
||||
created 16 July 2018
|
||||
by Sandeep Mistry
|
||||
*/
|
||||
|
||||
#include <ArduinoRS485.h> // ArduinoModbus depends on the ArduinoRS485 library
|
||||
#include <ArduinoModbus.h>
|
||||
|
||||
const int ledPin = LED_BUILTIN;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
Serial.println("Modbus RTU Server LED");
|
||||
|
||||
// start the Modbus RTU server, with (slave) id 1
|
||||
if (!ModbusRTUServer.begin(1, 9600)) {
|
||||
Serial.println("Failed to start Modbus RTU Server!");
|
||||
while (1);
|
||||
}
|
||||
|
||||
// configure the LED
|
||||
pinMode(ledPin, OUTPUT);
|
||||
digitalWrite(ledPin, LOW);
|
||||
|
||||
// configure a single coil at address 0x00
|
||||
ModbusRTUServer.configureCoils(0x00, 1);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// poll for Modbus RTU requests
|
||||
int packetReceived = ModbusRTUServer.poll();
|
||||
|
||||
if(packetReceived) {
|
||||
// read the current value of the coil
|
||||
int coilValue = ModbusRTUServer.coilRead(0x00);
|
||||
|
||||
if (coilValue) {
|
||||
// coil value set, turn LED on
|
||||
digitalWrite(ledPin, HIGH);
|
||||
} else {
|
||||
// coil value clear, turn LED off
|
||||
digitalWrite(ledPin, LOW);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user