Servomotor con arduino



En esta entrada aprenderemos cómo utilizar un servomotor con Arduino. Antes de continuar es importante saber qué es un servomotor o servo. Es un motor eléctrico pero con dos características especiales.

Por un lado, nos permite mantener una posición que indiquemos, siempre que esté dentro del rango de operación del propio dispositivo. Por otro lado nos permite controlar la velocidad de giro, podemos hacer que antes de que se mueva a la siguiente posición espere un tiempo.
El ejemplo más típico es un coche teledirigido, esos que utilizan los niños y no tan niños. Estos juguetes suelen tener un mando a distancia donde podemos controlar la velocidad y el giro del coche. Precisamente el giro se suele hacer con un servomotor donde indicamos, en cada momento, la posición o el ángulo de giro que queremos que tenga en un preciso momento.

Características técnicas de un servomotor con Arduino

Hay varios modelos de servomotor con Arduino. En este caso vamos a utilizar un Micro Servo 9g SG90 de Tower Pro. Como siempre digo, hay que mirar la ficha técnica del producto. Todos tienen un funcionamiento muy parecido y la programación puede variar muy poco.
servomotor-arduino
Cosas a tener en cuenta con este dispositivo. Lo primero, el ángulo de giro, en este caso nos permite hacer un barrido entre -90º y 90º. Lo que viene a ser un ángulo de giro de 180º. Tiene una precisión de un grado es decir, podemos mover de grado en grado.
Estos motores funcionan con una señal PWM, con un pulso de trabajo entre 1 ms y 2 ms y con un periodo de 20 ms (50 Hz). ¿Qué quiere decir todo esto? Este dato nos indica la velocidad máxima a la que podemos mover el servomotor con Arduino. Solo podremos cambiar de posición cada 20 ms. Esto dependerá del tipo y marca de nuestro servo.
El elegir una salida PWM u otra da lo mismo, todas las salidas de este tipo funcionan igual.

Conexionado con Arduino

Las conexiones dependerán del tipo de servomotor con Arduino que estemos utilizando.
Conexion servomotor con Arduino
Todos deben tener 3 cables. Uno irá a tierra, otro a la alimentación de 5 Voltios y el tercero a un pin PWM. También puedes utilizar un shield para controlar servomotores.

¿Cómo programar un servo desde el entorno de Arduino?

Ahora vamos a ir a lo interesante, la programación. Para ello tenemos que hacer uso de una librería externa para poder controlar el servo desde Arduino. Para incorporar la librería tenemos que ir a Programa/Include Library/Servo.
Importar libreria servomotor Arduino

El código para girar el motor de 0º a 180º

Esta acción ya nos ha hecho un include en nuestro código que nos permite controlar el servo. Os dejo a continuación un código básico para posicionar el servo en los ángulos 0º, 90º y 180º.
De la librería Servo.h hemos declarado un objeto o variable servoMotor y hacemos uso de dos métodos. Por un lado el attach, que nos permite indicar en que pin tenemos conectado nuestro servo, y por otro lado el write, donde indicamos en qué ángulo queremos posicionar nuestro servomotor.

Girando grado a grado el servomotor

Vamos a realizar otro ejemplo un poco más complicado, en este caso queremos que el servo haga un barrido desde el 0 al 180º y luego en sentido contrario. Vamos a utilizar los mismos métodos pero incorporamos dos bucles for, uno para cada sentido.

Comentarios

Entradas populares de este blog

Alarma visual (Led con ultrasonido)

Sistema de turnos con led de 7 segmentos y pulsadores

Teclado matricial 4x4 con LCD