Hello Arduino Users
I am look for some help / guidance.
I am work with 2 arduinos and 2 xbee. I am having a problem with communication.
I am using one set a sender and other as a receiver.
The coe is base on the example from ArduinoFun.com
arduinofun.com/blog/2009/10/19/arduino-wireless-xbee/
Here is my code.
// SENDER
// set pin numbers:
const int buttonPin1 = 2; // the number of the pushbutton pin
const int buttonPin2 = 3;
const int buttonPin3 = 4;
const int buttonPin4 = 5;
const int buttonPin5 = 6;
const int ledPin = 13; // the number of the LED pin
void setup()
{
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
}
void loop()
{
if (digitalRead(buttonPin1) == HIGH)
{
digitalWrite(ledPin, HIGH); // turn LED on
Serial.print(251, BYTE);
delay(150);
}
else if (digitalRead(buttonPin2) == HIGH)
{
digitalWrite(ledPin, HIGH); // turn LED on
Serial.print(252, BYTE);
delay(150);
}
else if (digitalRead(buttonPin3) == HIGH)
{
digitalWrite(ledPin, HIGH); // turn LED on
Serial.print(253, BYTE);
delay(150);
}
else if ( digitalRead(buttonPin4) == HIGH)
{
digitalWrite(ledPin, HIGH); // turn LED on
Serial.print(254, BYTE);
delay(150);
}
else if (digitalRead(buttonPin5) == HIGH)
{
digitalWrite(ledPin, HIGH); // turn LED on
Serial.print(255, BYTE);
delay(150);
}
else
{
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
// RECEIVER
byte incomingByte;
const int output1 = 9;
const int output2 = 8;
const int output3 = 7;
const int output4 = 6;
const int output5 = 4;
void setup()
{
// start serial port at 19200 bps
Serial.begin(19200);
Serial.println("Ready!");
// Motor/Led pins outs
pinMode (output1, OUTPUT);
pinMode (output2, OUTPUT);
pinMode (output3, OUTPUT);
pinMode (output4, OUTPUT);
pinMode (output5, OUTPUT);
delay(1000);
}
void loop()
{
if (Serial.available())
{ // are there any bytes available on the serial port ???
// assign bytes to the var 'incomingByte'
incomingByte = Serial.read();
Serial.print(int(incomingByte));
// from now on is pretty clear I guess
if((int(incomingByte) == 251)) //foward
{
digitalWrite(output1, LOW);
digitalWrite(output2, HIGH);
digitalWrite(output3, LOW);
digitalWrite(output4, HIGH);
}
else if((int(incomingByte) == 252)) //reverse
{
digitalWrite(output1, HIGH);
digitalWrite(output2, LOW);
digitalWrite(output3, HIGH);
digitalWrite(output4, LOW);
}
else if((int(incomingByte) == 253)) //left
{
digitalWrite(output1, HIGH);
digitalWrite(output2, HIGH);
digitalWrite(output3, LOW);
digitalWrite(output4, HIGH);
}
else if((int(incomingByte) == 254)) //right
{
digitalWrite(output1, LOW);
digitalWrite(output2, HIGH);
digitalWrite(output3, HIGH);
digitalWrite(output4, HIGH);
}
else if((int(incomingByte) == 255)) //led
{
digitalWrite(output5, HIGH);
}
else
{
digitalWrite(output1, HIGH);
digitalWrite(output2, HIGH);
digitalWrite(output3, HIGH);
digitalWrite(output4, HIGH);
digitalWrite(output5, LOW);
}
}
//end
}
Thanks Yaz