//RS-485 Modbus Slave (Arduino UNO) //Circuit Digest #include //Library for using Modbus in Arduino #define led1 2 //Define as 2 led1 #define led2 5 //Define as 5 led2 Modbus bus; //Define Object bus for class modbus uint16_t modbus_array[] = {0,0,0}; //Array initilized with three 0 values void setup() { pinMode(led1,OUTPUT); //Led1 set as OUTPUT pinMode(led2,OUTPUT); //Led2 set as OUTPUT bus = Modbus(1,1,4); //Modbus slave ID as 1 and 1 connected via RS-485 and 4 connected to DE & RE pin of RS-485 Module bus.begin(9600); //Modbus slave baudrate at 9600 } void loop() { bus.poll(modbus_array,sizeof(modbus_array)/sizeof(modbus_array[0])); //Used to receive or write value from Master if (modbus_array[0] == 0) //Depends upon value in modubus_array[0] written by Master Modbus { digitalWrite(led1,LOW); //LED OFF if 0 } else { digitalWrite(led1,HIGH); //LED ON if value other than 0 } if (modbus_array[1] == 0) //Depends upon value in modbus_array[1] written by Master Modbus { digitalWrite(led2,LOW); //LED OFF if 0 } else { digitalWrite(led2,HIGH); //LED ON if value other than 0 } delay(200); }