Servomotor Con Arduino

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Servomotor con Arduino

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.

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º.
Aunque el servo puede moverse con una resolución de más de 1
grado, este es el máximo de resolución que vamos a conseguir debido
a la limitación de la señal PWM que es capaz de generar Arduino
UNO.

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.
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, como el de Adafruit.

Librería servo de Arduino


El IDE Arduino trae una librería completa para el control de servomotores, la
documentación completa lo encontramos en su página oficial: Servo Library

Expliquemos brevemente las funciones de la librería.

La biblioteca Servo admite hasta 12 motores en la mayoría de las placas


Arduino y 48 en el Arduino Mega. En las placas que no sean los de Mega, el uso
de la biblioteca desactiva la funcionalidad PWM en las patillas 9 y 10. En el
Arduino Mega, hasta 12 servos pueden ser utilizados sin interferir con la
funcionalidad PWM, pero si se usan de 12 a 23 motores desactivará el PWM en
los pines 11 y 12.

A continuación se muestran las funciones de la librería Servo:

attach(Pin)

Establece el pin indicado en la variable servo. Ej: servo.attach(3);


attach(Pin,min,max)

Establece el pin indicado en la variable servo, considerando min el ancho de


pulso para la posición 0° y máx. el ancho de pulso para
180°.Ej: servo.attach(3,900,2100);

write(angulo)

Envía la señal correspondiente al servo para que se ubique en el ángulo


indicado, ángulo es un valor entre 0 y 180°. Ej: servo.write(45);

writeMicroseconds(tiempo)

Envía al servo el ancho de pulso=tiempo en microsegundos.


Ej: servo.writeMicroseconds(1500);

read()

Lee la posición actual del servo, devuelve un valor entre 0 y 180.


Ej: angulo=servo.read();

attached(Pin)

Verifica si la variable servo está unido al pin indicado, devuelve true o false.
Ej: if(servo.attached(3));

detach(pin)

Separa la variable Servo del pin indicado. Ej: servo.detach(3);

¿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.
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.
Conclusión
Controlar un servo desde Arduino es una tarea muy sencilla gracias al
uso de la librería Servo.h. Te recomiendo que sigas practicando con
esta librería.

EJEMPLO:

#include <Servo.h>

Servo servomecatronicos;

void setup() {

servomecatronicos.attach(3 ); // put your setup code here, to run


once:

void loop() {

servomecatronicos.write(0); // put your main code here, to run


repeatedly:

delay(2000);

servomecatronicos.write(90);

delay(2000);

servomecatronicos.write(180);
delay(2000);

También podría gustarte