Arduino Codes (Serial Communication in between two Arduino Nano)
//Transmitter : (using Hardware Serial)
//(Program downloading may be affected if any device connected with the Tx Rx pins as is being used for programming pins)
// Arduino Serial Example #1 Remote Control Blink - Master
boolean buttonSwitch1 = 14;
boolean buttonSwitch2 = 15;
boolean buttonState1 = false;
boolean buttonState2 = false;
boolean buttonState3 = false;
boolean buttonSwitch1_State_old = false;
boolean buttonSwitch2_State_old = false;
void setup() {
pinMode( buttonSwitch1, INPUT);
pinMode( buttonSwitch2, INPUT);
Serial.begin(9600);
// wait for the serial port to connect. Required for Leonardo/Micro native USB port only
while (!Serial) { ; }
Serial.println("Starting Power Line Communication");
}
void loop() {
// simple debounce
buttonState1 = digitalRead(buttonSwitch1); delay(1);
buttonState2 = digitalRead(buttonSwitch1); delay(1);
buttonState3 = digitalRead(buttonSwitch1); delay(1);
if ( (buttonState1 == buttonState2) && (buttonState1 == buttonState3) ) {
// has the button switch state changed?
if (buttonState1 != buttonSwitch1_State_old) {
buttonSwitch1_State_old = buttonState1;
if (buttonSwitch1_State_old == HIGH) { Serial.print(1);} else { Serial.print(0);}
}
}
buttonState1 = digitalRead(buttonSwitch2); delay(1);
buttonState2 = digitalRead(buttonSwitch2); delay(1);
buttonState3 = digitalRead(buttonSwitch2); delay(1);
if ( (buttonState1 == buttonState2) && (buttonState1 == buttonState3) ) {
// has the button switch state changed?
if (buttonState1 != buttonSwitch2_State_old) {
buttonSwitch2_State_old = buttonState1;
if (buttonSwitch2_State_old == HIGH) { Serial.print(3);} else { Serial.print(2);}
}
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
// Reciver Code
char c = ' ';
byte LED1 = 2;
byte LED2 = 3;
byte Relay1 = 4;
byte Relay2 = 5;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
Serial.begin(9600);
Serial.println("START");
digitalWrite(LED1, HIGH);
delay(1000);
digitalWrite(LED1, LOW);
}
void loop(){
if(Serial.available()) {
char c = Serial.read();
if (c=='0') { digitalWrite(LED1, LOW); digitalWrite(Relay1, HIGH);}
if (c=='1') { digitalWrite(LED1, HIGH); digitalWrite(Relay1, LOW);}
if (c=='2') { digitalWrite(LED2, LOW); digitalWrite(Relay2, HIGH); }
if (c=='3') { digitalWrite(LED2, HIGH); digitalWrite(Relay2, LOW); }
Serial.println(c);
}
}
Arduino Nano PLC Circuit Diagram