Servomotor Tutorial

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

Servomotor con Arduino tutorial de

programación paso a paso


Comentarios(130)
Luis del Valle Hernández
En este artículo te voy a enseñar 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.

Indice de contenidos
 1 Características técnicas de un servomotor con Arduino
 2 Conexionado con Arduino
 3 ¿Cómo programar un servo desde el entorno de Arduino?
 4 Conclusión

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.
¿Quieres montar tu primer proyecto con Arduino?
Con este curso gratuito crearás un Sistema de Riego Automático con Arduino,
paso a paso y en sólo una semana.

UNIRSE AL CURSO
Aceptas que almacene tu nombre y email para poder enviarte
información de Programarfacil.
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.

¿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º.

1 /*

2 Creado: Luis del Valle (ldelvalleh@programarfacil.com)

3 https://programarfacil.com

4 */

6 // Incluímos la librería para poder controlar el servo

7 #include <Servo.h>

9 // Declaramos la variable para controlar el servo

10 Servo servoMotor;

11

12 void setup() {

13 // Iniciamos el monitor serie para mostrar el resultado

14 Serial.begin(9600);

15

16 // Iniciamos el servo para que empiece a trabajar con el pin 9

17 servoMotor.attach(9);

18 }

19

20 void loop() {

21

22 // Desplazamos a la posición 0º

23 servoMotor.write(0);

24 // Esperamos 1 segundo

25 delay(1000);

26

27 // Desplazamos a la posición 90º

28 servoMotor.write(90);

29 // Esperamos 1 segundo
30 delay(1000);

31

32 // Desplazamos a la posición 180º

33 servoMotor.write(180);

34 // Esperamos 1 segundo

35 delay(1000);

36 }

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.

1 /*

2 Creado: Luis del Valle (ldelvalleh@programarfacil.com)

3 https://programarfacil.com

4 */

6 // Incluímos la librería para poder controlar el servo

7 #include <Servo.h>

9 // Declaramos la variable para controlar el servo

10 Servo servoMotor;

11

12 void setup() {

13 // Iniciamos el monitor serie para mostrar el resultado

14 Serial.begin(9600);

15

16 // Iniciamos el servo para que empiece a trabajar con el pin 9


17 servoMotor.attach(9);

18

19 // Inicializamos al ángulo 0 el servomotor

20 servoMotor.write(0);

21 }

22

23 void loop() {

24

25 // Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo

26 // Para el sentido positivo

27 for (int i = 0; i <= 180; i++)

28 {

29 // Desplazamos al ángulo correspondiente

30 servoMotor.write(i);

31 // Hacemos una pausa de 25ms

32 delay(25);

33 }

34

35 // Para el sentido negativo

36 for (int i = 179; i > 0; i--)

37 {

38 // Desplazamos al ángulo correspondiente

39 servoMotor.write(i);

40 // Hacemos una pausa de 25ms

41 delay(25);

42 }

43 }
¿Quieres montar tu primer proyecto con Arduino?
Con este curso gratuito crearás un Sistema de Riego Automático con Arduino,
paso a paso y en sólo una semana.

UNIRSE AL CURSO
Aceptas que almacene tu nombre y email para poder enviarte
información de Programarfacil.
Conclusión
Controlar un servo desde Ardunino es una tarea muy sencilla gracias al
uso de la librería Servo.h. Te recomiendo que sigas practicando con
esta librería. Si te ha gustado el artículo, compártelo. Si tienes alguna
duda, deja un comentario abajo de este artículo.

Solo programando se aprende a programar.

Gracias a Shutterstock por ceder los derechos de la imagen

También podría gustarte