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
}

Snake con Arduino usando LCD y Joystick – Completado

Práctica 11 – Servomotores y joysticks

Deja una respuesta

Tu dirección de correo electrónico no será publicada.