0% encontró este documento útil (0 votos)
246 vistas5 páginas

Conexión y Código de Servomotor con Arduino

Este documento proporciona instrucciones paso a paso para programar un servomotor con Arduino. Explica las características técnicas de los servomotores, cómo conectarlos a Arduino y cómo programarlos usando la librería Servo para mover el servomotor a diferentes ángulos en un rango de 0 a 180 grados.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
246 vistas5 páginas

Conexión y Código de Servomotor con Arduino

Este documento proporciona instrucciones paso a paso para programar un servomotor con Arduino. Explica las características técnicas de los servomotores, cómo conectarlos a Arduino y cómo programarlos usando la librería Servo para mover el servomotor a diferentes ángulos en un rango de 0 a 180 grados.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

SERVOMOTOR CON ARDUINO

TUTORIAL DE PROGRAMACIÓN PASO A


PASO
En este artículo les va 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.

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@[Link])
3 [Link]
4 */
5
6 // Incluímos la librería para poder controlar el servo
7 #include <Servo.h>
8
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 [Link](9600);
15
16 // Iniciamos el servo para que empiece a trabajar con el pin 9
17 [Link](9);
18 }
19
20 void loop() {
21
22 // Desplazamos a la posición 0º
23 [Link](0);
24 // Esperamos 1 segundo
25 delay(1000);
26
27 // Desplazamos a la posición 90º
28 [Link](90);
29 // Esperamos 1 segundo
30 delay(1000);
31
32 // Desplazamos a la posición 180º
33 [Link](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@[Link])
3 [Link]
4 */
5
6 // Incluímos la librería para poder controlar el servo
7 #include <Servo.h>
8
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 [Link](9600);
15
16 // Iniciamos el servo para que empiece a trabajar con el pin 9
17 [Link](9);
18
19 // Inicializamos al ángulo 0 el servomotor
20 [Link](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 [Link](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 [Link](i);
40 // Hacemos una pausa de 25ms
41 delay(25);
42 }
43 }

SERVOMOTOR CON ARDUINO 
TUTORIAL DE PROGRAMACIÓN PASO A 
PASO 
En este artículo les va a enseñar cómo utilizar un servomotor
Cosas a tener en cuenta con este dispositivo. Lo primero, el ángulo de giro, en este caso nos 
permite hacer un barrido ent
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
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
void setup() { 
  // Inic
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
4

También podría gustarte