#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
int joystickXPin = A0; // Pin analógico para la lectura X del joystick
int joystickYPin = A1; // Pin analógico para la lectura Y del joystick
int joystickXPin2 = A2;
int buttonPin = 7; // Pin digital para el botón de pulsación del joystick
int servo1Pos = 90; // Posición inicial del servo 1
int servo2Pos = 90; // Posición inicial del servo 2
int servo3Pos = 90; // Posición inicial del servo 3
int servo4Pos = 90; // Posición inicial del servo 3
void setup() {
servo1.attach(6); // Conecta servo 1 al pin 9
servo2.attach(9); // Conecta servo 2 al pin 10
servo3.attach(3); // Conecta servo 2 al pin 10
servo4.attach(5); // Conecta servo 2 al pin 10
pinMode(2, INPUT_PULLUP); // Configura el pin del botón como entrada con resistencia pull-up
}
void loop() {
int joystickXValue = analogRead(A1); // Lee el valor X del joystick
int joystickYValue = analogRead(A0); // Lee el valor Y del joystick
int joystickXValue2 = analogRead(A2); // Lee el valor Y del joystick
int buttonState = digitalRead(2); // Lee el estado del botón
// Mapea los valores del joystick a ángulos de servo (0-180)
servo2Pos = map(joystickYValue, 0, 1023, 0, 90);
// Mueve los servos 1 y 2 a las posiciones calculadas
servo2.write(servo2Pos);
servo3Pos = map(joystickXValue, 0, 1023, 0, 90);
// Mueve los servos 1 y 2 a las posiciones calculadas
servo3.write(servo3Pos);
servo4Pos = map(joystickXValue2, 0, 1023, 0, 90);
// Mueve los servos 1 y 2 a las posiciones calculadas
servo4.write(servo4Pos);
// Mueve el servo 3 si el botón de pulsación está presionado
if (buttonState == LOW) {
servo1Pos = 180; // Cambia la posición del servo 3 cuando se presiona el botón
} else {
servo1Pos = 0; // Vuelve a la posición inicial cuando se suelta el botón
}
servo1.write(servo1Pos);
delay(15); // Pequeña pausa para evitar vibraciones en los servos
}