#include <Servo.h>
#define buttonLeft 7
#define buttonRight 6
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int x_key = A1;
int y_key = A0;
int x1_key = A2;
int y1_key = A3;
int x_pos;
int y_pos;
int x1_pos;
int y1_pos;
int servo1_pin = 8;
int servo2_pin = 9;
int servo3_pin = 10;
int servo4_pin = 11;
int initial_position = 90;
int initial_position1 = 90;
int initial_position2 = 90;
int initial_position3 = 90;
int angle =90; // initial angle for servo
int angleStep =5;
const int minAngle = 80;
const int maxAngle = 130;
void setup ( ) {
Serial.begin (9600) ;
servo1.attach (servo1_pin ) ;
servo2.attach (servo2_pin ) ;
servo3.attach (servo3_pin ) ;
servo4.attach (servo4_pin ) ;
servo1.write (initial_position);
servo2.write (initial_position1);
servo3.write (initial_position2);
servo4.write (initial_position3);
pinMode (x_key, INPUT) ;
pinMode (y_key, INPUT) ;
pinMode (x1_key, INPUT) ;
pinMode (y1_key, INPUT) ;
pinMode(buttonLeft,INPUT_PULLUP);
pinMode(buttonRight,INPUT_PULLUP);
}
void loop ( ) {
x_pos = analogRead (x_key) ;
y_pos = analogRead (y_key) ;
if (x_pos < 300){
if (initial_position < 90) { } else{ initial_position = initial_position - 20; servo1.write ( initial_position ) ; delay (100) ; } } if (x_pos > 700){
if (initial_position > 90)
{
}
else{
initial_position = initial_position + 20;
servo1.write ( initial_position ) ;
delay (100) ;
}
}
if (y_pos < 300){
if (initial_position1 < 90) { } else{ initial_position1 = initial_position1 - 20; servo2.write ( initial_position1 ) ; delay (100) ; } } if (y_pos > 700){
if (initial_position1 > 90)
{
}
else{
initial_position1 = initial_position1 + 20;
servo2.write ( initial_position1 ) ;
delay (100) ;
}
}
//----------------
x1_pos = analogRead (x1_key) ;
y1_pos = analogRead (y1_key) ;
if (x1_pos < 300){
if (initial_position2 < 90) { } else{ initial_position2 = initial_position2 - 20; servo3.write ( initial_position2 ) ; delay (100) ; } } if (x1_pos > 700){
if (initial_position2 > 90)
{
}
else{
initial_position2 = initial_position2 + 20;
servo3.write ( initial_position2 ) ;
delay (100) ;
}
}
// if (y1_pos < 300){
// if (initial_position3 < 90) { } else{ initial_position3 = initial_position3 - 20; servo4.write ( initial_position3 ) ; delay (100) ; } } if (y1_pos > 700){
// if (initial_position3 > 90)
// {
// }
// else{
// initial_position3 = initial_position3 + 20;
// servo4.write ( initial_position3 ) ;
// delay (100) ;
// }
// }
while(digitalRead(buttonRight) == LOW){
if (angle > 0 && angle <= 135) {
angle = angle - angleStep;
if(angle < 45){
angle = 45;
}else{
servo4.write(angle);
}
}
delay(100);
}
while(digitalRead(buttonLeft) == LOW){
if (angle >= 0 && angle <= 135) {
angle = angle + angleStep;
if(angle >135){
angle =135;
}else{
servo4.write(angle);
}
}
delay(100);
}
}