#include <ESP32Servo.h>
Servo servo1, servo2, servo3;
int joy_x_pin = 34; // ADC pin for X-axis of joystick
int joy_y_pin = 35; // ADC pin for Y-axis of joystick
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
servo1.attach(26); // PWM pin for servo 1
servo2.attach(27); // PWM pin for servo 2
servo3.attach(14); // PWM pin for servo 3
}
void loop() {
int joy_x = analogRead(joy_x_pin); // Read joystick X-axis
int joy_y = analogRead(joy_y_pin); // Read joystick Y-axis
// Map joystick values to servo motor range
int servo1_pos = map(joy_x, 0, 4095, 0, 180);
int servo2_pos = map(joy_y, 0, 4095, 0, 180);
int servo3_pos = map(joy_x + joy_y, 0, 8190, 0, 180); // diagonal movement
// Write servo positions
servo1.write(servo1_pos);
servo2.write(servo2_pos);
servo3.write(servo3_pos);
// Print joystick position values and servo angles to Serial Monitor
Serial.print("Joystick X: ");
Serial.print(joy_x);
Serial.print(" Joystick Y: ");
Serial.print(joy_y);
Serial.print(" Servo1: ");
Serial.print(servo1_pos);
Serial.print(" Servo2: ");
Serial.print(servo2_pos);
Serial.print(" Servo3: ");
Serial.println(servo3_pos);
delay(10); // add a short delay to prevent jitter
}