I've been working on this project for a while now with little success. I am trying to move a servo wirelessly with two XBee's. This will be a steering mechanism for a vehicle, with a joystick from the controller moving the servo on the vehicle. I have found a great example online to follow. Attached is my code for the transmitter and the receiver. I have linked the XBee's in several different programs, Putty, XCTU, and CoolTerm. After linking the XBee's I tested them by plugging each into a seperate laptop, one running in XCTU and the other running in Arduino. After taking them hundreds of yards apart I was still able to send things like "hello" in XCTU and receive them in Arduino serial and vice-versa. I am also able to move the servo on a single Arduino with the joystick. When trying to send the potentiometer values wirelessly the servo will not move. I have available and have tried with both pairs of series 3 and series 2 pro XBee's. Any help would be greatly appreciated
I am not familiar with xbee's, does it really work that simple?
I put your code inside the tags, you do it next time by yourself.
Cheers,
Kari
Controller:
int joystick = 0;
void setup()
{
Serial.begin(9600); //Set baud rate to 9600.
}
void loop()
{
int val = map(analogRead(joystick), 0, 1023, 0, 9);
Serial.println(val);
delay(50);
Serial.print("X-axis: ");
Serial.print(analogRead(joystick));
Serial.print("\n");
delay(200);
}
Receiver:
#include <Servo.h>
int servoPin = 7; //Defines Pin
Servo Steering; //Create Servo Object
void setup()
{
Serial.begin(9600); //Set baud rate to 9600.
Steering.attach(servoPin); //Attaches the Servo to our Object
delay(500);
}
void loop()
{
while(Serial.available() == 0); //Loop to wait for data from XBee
int data = Serial.read() - '0'; //Converts incoming data bits into integers
int pos = map(data, 0, 9, 0, 180); //Maps postions 0-9 to servo degrees from 20-160
pos = constrain(pos, 0, 180); //Constrains the servo from 0-180 for safety
Steering.write(pos); //Turns the Servo
Serial.flush(); //Flushes extra incoming characters not needed
Serial.print("X-axis: ");
Serial.print(analogRead(data));
Serial.print("\n");
delay(200);
}