#include #include #define MAX485_DE 3 #define MAX485_RE_NEG 2 ModbusMaster node; LiquidCrystal lcd(8,9,10,11,12,13); void preTransmission() { digitalWrite(MAX485_RE_NEG, 1); digitalWrite(MAX485_DE, 1); } void postTransmission() { digitalWrite(MAX485_RE_NEG, 0); digitalWrite(MAX485_DE, 0); } void setup () { lcd.begin(16,2); lcd.print("CIRCUIT DIGEST"); delay(3000); lcd.clear(); lcd.print("Arduino"); lcd.setCursor(0,1); lcd.print("Modbus Master"); delay(3000); lcd.clear(); pinMode(MAX485_RE_NEG, OUTPUT); pinMode(MAX485_DE, OUTPUT); pinMode(4,INPUT); pinMode(5,INPUT); digitalWrite(MAX485_RE_NEG, 0); digitalWrite(MAX485_DE, 0); Serial.begin(115200); // Modbus Slave ID 1 node.begin(1, Serial); node.preTransmission(preTransmission); node.postTransmission(postTransmission); } void loop () { uint8_t result; float value = analogRead(A0); result = node.writeSingleRegister(0x40000,value); lcd.setCursor(0,0); lcd.print("POT Val :"); lcd.print(value); int a= digitalRead(4); int b= digitalRead(5); if (a == 1) { node.writeSingleRegister(0x40001,1); lcd.setCursor(0,1); lcd.print("S1: 1"); } else { node.writeSingleRegister(0x40001,0); lcd.setCursor(0,1); lcd.print("S1: 0"); } if (b == 1) { node.writeSingleRegister(0x40002,1); lcd.setCursor(8,1); lcd.print("S2: 1"); } else { node.writeSingleRegister(0x40002,0); lcd.setCursor(8,1); lcd.print("S2: 0"); } }