I searched a lot of sites and more tutorials to find the accurate code to control this type of relay. but I cannot find the correct code solution. After researching for three days, I found the correct code and solution for it. I will use it in my future projects. happy to share with you.
RS485 Wiring
Code
#include <ModbusMaster.h>
int pool_size1;
#define RX2 16 //RX
define TX2 17 //TX
ModbusMaster node1; //ModbusRTU Relay Slave ID1
int8_t pool_size;
void setup()
{
Serial.begin(9600);
Serial2.begin(19200, SERIAL_8N1, RX2, TX2); //RX2=16,RO ,TX2=17, DI
node1.begin(1, Serial2);
Serial.println("successfully node bigining");
delay(1000);
pool_size = node1.writeSingleRegister(0x01, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x02, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x03, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x04, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x05, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x06, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x07, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x08, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x09, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0A, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0B, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0C, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0D, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0E, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x0F, 0x0100);
delay(1000);
pool_size = node1.writeSingleRegister(0x10, 0x0100);
delay(5000);
Serial.println("Attempting to turn off relay");
pool_size = node1.writeSingleRegister(0x01, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x02, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x03, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x04, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x05, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x06, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x07, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x08, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x09, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0A, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0B, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0C, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0D, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0E, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x0F, 0x0200);
delay(1000);
pool_size = node1.writeSingleRegister(0x10, 0x0200);
delay(5000);
Serial.println("Attempting to turn on all relays");
pool_size = node1.writeSingleRegister(0x00, 0x0700);
delay(5000);
Serial.println("Attempting to turn off all relays");
pool_size = node1.writeSingleRegister(0x00, 0x0800);
delay(5000);
}
void loop()
{
}
Top comments (1)
With the SLA-05VDC-SL-C 5V 30A 1 Channel Relay Module, you may gain strong control. This dependable relay module is perfect for DIY electronics, industrial applications, and home automation because it can easily manage heavy loads. It guarantees smooth operation for your electrical gadgets with a straightforward interface and strong performance. Increase the efficiency of your project right now by investigating the potential of this adaptable relay module.
Check our website:
epro.pk/product/relay-module-sla-0...