/*
Proyecto de servo controlado por joystick
Profesor: Ramiro Lopera S.
Para Liam, el mejor estudiante!
Detalles del código
servo1, servo2 y servo3: Cada uno controla un servo distinto.
attach(pin): Cambia los pines según los que conectes 
físicamente los servos.
analogRead(A0/A1/A2): Cada joystick debe conectarse a las entradas 
analógicas especificadas.
map: Ajusta el rango de 0-1023 (lectura del joystick) 
a 0-180 grados (ángulo del servo).
Este código permite controlar otros dos servos adicionales con 
dos joysticks independientes usando entradas A1 y A2 respectivamente, 
mientras el primero se controla desde A0.
*/
#include <Servo.h> 
Servo servo1;
Servo servo2;
Servo servo3;
void setup() {
  servo1.attach(9);   // Pin para el primer servo
  servo2.attach(10);  // Pin para el segundo servo
  servo3.attach(11);  // Pin para el tercer servo
}
void loop() {
  int val1 = analogRead(A0); // Primer Joystick en A0
  int val2 = analogRead(A1); // Segundo Joystick en A1
  int val3 = analogRead(A2); // Tercer Joystick en A2
  val1 = map(val1, 0, 1023, 0, 180);
  val2 = map(val2, 0, 1023, 0, 180);
  val3 = map(val3, 0, 1023, 0, 180);
  
  servo1.write(val1);
  servo2.write(val2);
  servo3.write(val3);
  delay(15); // Retardo para estabilidad
}