#include <Servo.h> // Include the Servo library
Servo servo1;
Servo servo2;
int x_key = A1; // X-axis of the joystick
int y_key = A0; // Y-axis of the joystick
int x_pos;
int y_pos;
int servo1_pin = 8;
int servo2_pin = 9;
int initial_position = 90;
int initial_position1 = 90;
// Function declarations with proper names
void updateXaxis(int normal_value, int high_value, int XinitialPos, int x_pos);
void updateYaxis(int normal_value, int high_value, int YinitialPos, int y_pos);
void setup() {
Serial.begin(9600);
servo1.attach(servo1_pin);
servo2.attach(servo2_pin);
servo1.write(initial_position);
servo2.write(initial_position1);
pinMode(x_key, INPUT);
pinMode(y_key, INPUT);
}
void loop() {
x_pos = analogRead(x_key);
y_pos = analogRead(y_key);
// Horizontal updates for the X-axis servo
updateXaxis(300, 700, initial_position, x_pos);
// Vertical updates for the Y-axis servo
updateYaxis(300, 700, initial_position1, y_pos);
}
// Function to update the X-axis servo
void updateXaxis(int normal_value, int high_value, int XinitialPos, int x_pos) {
if (x_pos < normal_value) {
if (XinitialPos >= 10) {
XinitialPos = XinitialPos - 20;
servo1.write(XinitialPos);
delay(100);
}
} else if (x_pos > high_value) {
if (XinitialPos <= 180) {
XinitialPos = XinitialPos + 20;
servo1.write(XinitialPos);
delay(100);
}
}
}
// Function to update the Y-axis servo
void updateYaxis(int normal_value, int high_value, int YinitialPos, int y_pos) {
if (y_pos < normal_value) {
if (YinitialPos >= 10) {
YinitialPos = YinitialPos - 20;
servo2.write(YinitialPos);
delay(100);
}
} else if (y_pos > high_value) {
if (YinitialPos <= 180) {
YinitialPos = YinitialPos + 20;
servo2.write(YinitialPos);
delay(100);
}
}
}