Hi,
I'm trying to use 1 joystick to control 2 continuous servo motor.
The servo motor I'm using is SRC SM-S4315R Continuous Rotation Servo
This is the code:
#include <Servo.h>
const int servo1 = 2; // first servo
const int servo2 = 3; // second servo
const int joyH = 0; // L/R Parallax Thumbstick
const int joyV = 1; // U/D Parallax Thumbstick
int servoVal = (90); // variable to read the value from the analog pin
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
void setup() {
// Servo
myservo1.attach(servo1); // attaches the servo
myservo2.attach(servo2); // attaches the servo
// Inizialize Serial
Serial.begin(9600);
}
void loop(){
// Display Joystick values using the serial monitor
outputJoystick();
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyH);
servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180)
myservo2.write(servoVal); // sets the servo position according to the scaled value
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyV);
servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 70 and 180)
myservo1.write(servoVal); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
/**
- Display joystick values
*/
void outputJoystick(){
Serial.print(analogRead(joyH));
Serial.print ("---");
Serial.print(analogRead(joyV));
Serial.println ("----------------");
}
However, the servo keeps rotating in one direction(say clockwise) while the joystick is still at neutral position.
And for example the servo2. When i pushed the joystick to one side (left or right) it stops. but after a while continue again. If I push it to that same direction max. It paused and turn in the other direction and pause and return to turning in clockwise.
What I want to do is for the servo to be at a initial position when the system starts. And when the joystick moves (say the x direction) to the left, servo2 moves anticlockwise, when it moves to the right, servo2 moves clockwise. And joystick at neutral position=servo stops moving.
Please help thanks!!