Hey guys I am attempting to configure a network consisting of arduino/xbee connections. I want to set up three switches, that when pressed will be able to turn on and off three separate lights. The following code is what I have constructed so far. What my goal is to do is be able to send binary over the serial port so the other xbee's will see the binary functions to turn lights on and off instead of only sending an 'A', or a 'B' for the switch case statement. How can I make this viable? Thank ya'll for your help.
int Button1= 2;
int Button2= 3;
int Button3= 4;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int ledPin1 = 0;
int ledPin2 = 0;
int ledPin3 = 0;
void setup() {
//Start the serial communication
Serial.begin(9600); //Baud rate must be the same as is on xBee module
pinMode(Button1, INPUT);
pinMode(Button2, INPUT);
pinMode(Button3, INPUT);
}
void loop() {
//reading state of button
buttonState1 = digitalRead(Button1);
buttonState2 = digitalRead(Button2);
buttonState3 = digitalRead(Button3);
if (buttonState1 == HIGH) {
//Turn on led to indicate which function is being executed
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
//Send function to recievers to tell them to wake up
Serial.println(1000);
Serial.println("Button 1 Turning On");
//delay to help keep data transmission clean
delay(20);
}
if (buttonState2 == HIGH) {
//Turn on led to indicate which function is being executed
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
//Send function to recievers to tell them to wake up
Serial.println(1001);
Serial.println("Button 2 Turning On");
//delay to help keep data transmission clean
delay(20);
}
if (buttonState3 == HIGH) {
//Turn on led to indicate which function is being executed
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
//Send function to recievers to tell them to wake up
Serial.println(1010);
Serial.println("Button 3 Turning On");
//delay to help keep data transmission clean
delay(20);
}
}
Code for the receiver
//Constants for led pins
const int ledPin1 = 3;
const int ledPin2 = 4;
const int ledPin3 = 5;
const int ledPin4 = 6;
//initiallizing relays for the light switches / fans
const int Relay1 = 6;
const int Relay2 = 7;
const int Relay3 = 8;
int incomingByte = 0;
void setup() {
//Start the serial communication
Serial.begin(9600); //Baud rate must be the same as is on xBee module
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
}
void loop() {
while (Serial.available()>0){
//Read the incoming byte
incomingByte = Serial.read();
switch (incomingByte) {
case '1000': // Initialization to the Environmental Control Unit and wakeup
digitalWrite(ledPin1, HIGH); //Flashing all indicator LED's to confirm functionality and entrance to ECU
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
delay(150);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
delay(150);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
delay(150);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
Serial.println("Initialization to ECU"); // Prints out “Motor 1 Forward” on the serial monitor
Serial.println(" "); // Creates a blank line printed on the serial monitor
break;
}
case 1001: //Turn first light on
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(Relay1, HIGH); //Set relay to first light switch on high
Serial.println("First light turn ON");
Serial.println(" ");
break;
case 1010: //Turn first light off
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(Relay1, LOW); //Set relay to first light switch on high
Serial.println("First light turn OFF");
break;
case 1011: //Turn second light on
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(Relay2, HIGH); //Set relay to first light switch on high
Serial.println("Second light turn ON");
break;
case 1100: //Turn second light off
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(Relay2, LOW); //Set relay to first light switch on high
Serial.println("Second light turn OFF");
break;
case 1101: //Turn third light on
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(Relay3, HIGH); //Set relay to first light switch on high
Serial.println("Third light turn ON");
break;
case 1110: //Turn third light off
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(Relay3, LOW); //Set relay to first light switch on high
Serial.println("Third light turn OFF");
break;
}
Let me know what ya'll think. Thank you for your input