Servomotores
Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.
Debes introducir cables macho-macho para conectar el servo (o usar los adaptadores)
CONEXIÓN SERVO: Marrón: Ground Rojo: Alimentación (+) 5v Naranja: Señal (a un pin pwm)
Joystick
Una palanca de mando o joystick es un dispositivo de control de dos o tres ejes. Se suele diferenciar entre joysticks digitales (que leen cuatro interruptores encendido/apagado en cruceta situada en la base más sus combinaciones y los botones de acción) y los analógicos (que usan potenciómetros para leer continuamente el estado de cada eje, y además de botones de acción pueden incorporar controles deslizantes), siendo de este último tipo el incluido en el kit.
Debes usar los cables macho-hembra para conectar el joystick (conexiones hembra)
Luego debes separar los machos para colocar cada uno donde toca.
CONEXIÓN JOYSTICK: GND: Ground +5V: Alimentación (+) 5v VRx: Eje X VRy: Eje Y SW: Boton
Práctica
Construye el siguiente circuito:
Monta el código
#include <Servo.h> //incluye la libreria servo (suele estar precargada) Servo servo1;//creamos un servo a controlar y le llamamos servo1 const int Boton = 10; // el boton conectado al pin 10 const int LED = 8 ; //led de control al pin 8 const int X_pin = A0; // ejeX conectado al A0 int angulox = 0 ; //creo la variable angulox const int Y_pin = A1; // ejeY conectado al A1 void setup() { pinMode( Boton, INPUT_PULLUP) ; pinMode( LED, OUTPUT) ; servo1.attach(9);// indica el sevo1 esta en el pin 9 delay(250);//wait for a second } void loop() { angulox = map( analogRead(A1), 0, 1024, 0, 180); //Toma la lectura del A1 y la convierte a la escala del servo //map transforma como una regla de 3 de una escala de 0 a 1024 (lector anag) a una de 0 a 180 (grados servo) servo1.write(angulox);//manda la conversion de map al servo if ( ! digitalRead(Boton)) //si se pulsa el boton se enciende el LED digitalWrite(LED, HIGH); else digitalWrite(LED, LOW); delay(250) ; }
Deberías ser capaz de controlar el servo con el eje X y el LED con el botón.
Ahora construye, una portería y un portero de cartón de forma que el servo controle la posición del portero.
PUNTO EXTRA 1: Reloj con servomotor.
Carga el código para ver como funciona y luego modifícalo ( recuerda el servo puede ir de 0 a 180 ) para que funcione a modo de segundero.
#include <Servo.h> Servo myservo;//create servo object to control a servo void setup() { myservo.attach(9);//attachs the servo on pin 9 to servo object myservo.write(0);//back to 0 degrees delay(1000);//wait for a second } /*************************************************/ void loop() { myservo.write(15);//goes to 15 degrees delay(1000);//wait for a second myservo.write(30);//goes to 30 degrees delay(1000);//wait for a second.33 myservo.write(45);//goes to 45 degrees delay(1000);//wait for a second.33 myservo.write(60);//goes to 60 degrees delay(1000);//wait for a second.33 myservo.write(75);//goes to 75 degrees delay(1000);//wait for a second.33 myservo.write(90);//goes to 90 degrees delay(1000);//wait for a second myservo.write(75);//back to 75 degrees delay(1000);//wait for a second.33 myservo.write(60);//back to 60 degrees delay(1000);//wait for a second.33 myservo.write(45);//back to 45 degrees delay(1000);//wait for a second.33 myservo.write(30);//back to 30 degrees delay(1000);//wait for a second.33 myservo.write(15);//back to 15 degrees delay(1000);//wait for a second myservo.write(0);//back to 0 degrees delay(1000);//wait for a second }