Servomotor
Un servomotor es un tipo de motor cuyo eje puede ser situado a una determinada posición indicando un ángulo determinado.
El tipo de servomotor que vas a utilizar en este ejercicio es un SG90 cuyo eje se puede situar entre 0 grados y 180 grados.
Conexión del servomotor a la placa Arduino
Para realizar correctamente la conexión del servomotor a la placa Arduino, debes distinguir los 3 cables que incorpora.
- Naranja: Es el cable de datos, por el que se va a indicar en qué posición en grados se desea colocar el eje del servomotor. Deberá ir conectado a unos de los pines digitales de la placa Arduino UNO (los numerados del 0 al 13)
- Rojo: Es el cable que recibe la potencia eléctrica para el motor. Deberá ir conectado al polo positivo de una batería (pila) si se tuviera, o al pin de 5 voltios (5V), pero se debe tener en cuenta que ese pin no envía potencia suficiente para más de un servomotor.
- Marrón: Es el cable de GND (tierra) que tendrá que ir conectado a uno de los pines GND de la placa Arduino. Si no quedaran pines GND libres, tendrías que usar una placa de conexiones.
Si tienes el servomotor en la mano podrás ver que los conectores son hembra, por lo que para conectar el servomotor directamente a la placa Arduino, deberás usar un 3 cables dupont macho-macho como el de la foto:
No deben preocuparte en exceso los colores de los cables, pero sí debes fijarte dónde conectas cada uno.
En este ejemplo se ha conectado el cable amarillo con el naranja (datos), el verde con el rojo (5V) y el azul con el marrón (GND).
Por tanto, el cable azul se conectará (en este ejemplo) al pin GND y el cable verde al pin 5V. Si usas otros colores para los cables deberás tener en cuenta las conexiones anteriores para saber qué cables debes conectar.
Por último, el cable amarillo (en este ejemplo) se conectará a uno de los pines digitales. Puedes usar cualquiera de los que aparecen con números del 0 al 13 en la placa Arduino UNO. Aquí se va a usar el pin 8.
Programación del servomotor con ArduinoBlocks
El bloque que necesitas para programar el servomotor se encuentra en el apartado Motor > Servo.
En concreto, para colocar el eje del servomotor en un determinado ángulo, debes usar el primero de esos bloques.
Arrástralo dentro del Inicializar para que puedas probarlo.
Observa que hay que indicar 3 parámetros:
- Pin: Debes seleccionar el número del pin digital al que has conectado el cable de datos del servomotor. En este ejemplo será el 8.
- Grados: Debes escribir o seleccionar en el semicírculo que aparece el valor para los grados a los que deseas girar al eje del motor.
- Retardo (ms): Es el tiempo (en milisegundos) que debe esperar el programa antes de ejecutar la siguiente línea de código que pongas en el programa. Si observas que no le da tiempo al servomotor a colocarse en la posición que le has indicado, deberás aumentar ese valor como puedes ver en el siguiente ejemplo.
Si intentas que el servomotor gire a 3 ángulos distintos sin indicar un tiempo de retardo, al servomotor no le da tiempo a girar a cada posición.
Por eso hay que indicar un tiempo de retardo entre cada línea de código, para que se espere el tiempo necesario para que el servomotor termine de girar. Un tiempo de 300 milisegundos puede ser suficiente para este ejemplo.
Subir el código a la placa Arduino
Recuerda que para probar el código y comprobar que el motor gira correctamente, debes subir el código a la placa Arduino como ya has aprendido anteriormente en otros ejercicios.
Tenías que conectar correctamente la placa al puerto USB del ordenador, abrir la aplicación ArduinoBlocks Connector y usar el botón de Subir de la web de ArduinoBlocks.
Si por ejemplo pruebas el código anterior deberías obtener un resultado como este: