#include <Servo.h>
Servo servoPitch; // Servo for pitch (controlled by vertical joystick)
Servo servoRoll; // Servo for roll (controlled by horizontal joystick)
const int horzPin = A0; // Joystick horizontal output
const int vertPin = A1; // Joystick vertical output
const int servoPitchPin = 9; // Servo pin for pitch (PWM)
const int servoRollPin = 10; // Servo pin for roll (PWM)
void setup() {
servoPitch.attach(servoPitchPin); // Attach pitch servo to pin 9
servoRoll.attach(servoRollPin); // Attach roll servo to pin 10
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int horzValue = analogRead(horzPin); // Read the joystick horizontal value
int vertValue = analogRead(vertPin); // Read the joystick vertical value
// Map joystick values to servo angles (0-180 degrees)
int servoPitchAngle = map(vertValue, 0, 1023, 0, 180); // Vertical controls pitch
int servoRollAngle = map(horzValue, 0, 1023, 0, 180); // Horizontal controls roll
// Set the servos to the corresponding angles
servoPitch.write(servoPitchAngle);
servoRoll.write(servoRollAngle);
// Print values for debugging
Serial.print("Horz Value: ");
Serial.print(horzValue);
Serial.print(" | Vert Value: ");
Serial.print(vertValue);
Serial.print(" | Pitch Angle: ");
Serial.print(servoPitchAngle);
Serial.print(" | Roll Angle: ");
Serial.println(servoRollAngle);
delay(15); // Small delay to allow servos to reach the position
}