My two arduino communicating serially with XBee. The receiver arduino also controls the servo motor. Servo works stably when there is no xBee connection. But when Arduino's serial communication, there is a problem in the operation of the servo motor. Servo motor stuttering while rotate, so stuttering occurs.
Can you help me?
My Coordinator Code:
#include <SoftwareSerial.h>
#define xBeeRxPin 10
#define xBeeTxPin 9
int deger3;
int deger4;
String d1,d2,d3;
SoftwareSerial xBeeSerial(xBeeRxPin, xBeeTxPin);
void setup() {
Serial.begin(38400);
xBeeSerial.begin(38400);
}void loop() {
deger3 = analogRead(A0);
deger4 = analogRead(A2);
String deger5 = (String)deger3 + ";" + (String)deger4 ;
xBeeSerial.println(deger5);
delay(50);
}
My Receiver Code:
#include <SoftwareSerial.h>
#include <Servo.h>
#define xBeeRxPin 10
#define xBeeTxPin 9
SoftwareSerial xBeeSerial(xBeeRxPin, xBeeTxPin);
String d1,d2,d3;
const int trigPin = 4;
const int echoPin = 3;
long duration;
int distance;
Servo myServo;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
xBeeSerial.begin(38400);
Serial.begin(38400);
myServo.attach(11);
}
void loop() {
for(int i=15;i<=165;i++){
myServo.write(i);
delay(10);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, 11200);
distance= duration*0.034/2;
if(xBeeSerial.available()>0){
d1=xBeeSerial.readString();
}
}
for(int i=165;i>15;i--){
myServo.write(i);
delay(10);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, 11200);
distance= duration*0.034/2;
if(xBeeSerial.available()>0){
d1=xBeeSerial.readString();
}
}
}