Servomotor Con Arduino Tutorial de Programación Paso A Paso
Servomotor Con Arduino Tutorial de Programación Paso A Paso
Servomotor Con Arduino Tutorial de Programación Paso A Paso
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
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando,
velocidad de giro, podemos hacer que antes de que se mueva a la siguiente posición
consideramos que acepta su uso. Aceptar Política de privacidad y cookies
espere un tiempo.
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 1/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
Indice de contenidos
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.
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 2/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
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.
Nombre
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.
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.
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 4/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
1 /*
2 Creado: Luis del Valle ([email protected])
3 https://programarfacil.com
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 Serial.begin(9600);
15
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 5/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
1 /*
2 Creado: Luis del Valle ([email protected])
3 https://programarfacil.com
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 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 nega
26 // Para el sentido positivo
27 for (int i = 0; i <= 180; i++)
28 {
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 6/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
29 // Desplazamos al ángulo correspondiente
30 servoMotor.write(i);
31 // Hacemos una pausa de 25ms
32 delay(25);
33 }
34
Nombre
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.
Únete a la conversación...
Nombre
void setup() {
ver más
2△ ▽ • Responder • Compartir ›
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 8/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
2 Responder Compartir ›
Miguel
△ ▽ • Responder • Compartir ›
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 9/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
△ ▽ • Responder • Compartir ›
△ ▽ • Responder • Compartir ›
Con while(1)
△ ▽ • Responder • Compartir ›
void loop() {
for( x=0 ;x<90; x++)
{
motor.write(x);
delay(100);
}
for( x=90; x>0; x--)
{
motor.write(x);
delay(100);
}
}
El problema es que hace el primer bucle bien, luego regresa
hacia atrás bien. Pero cuando debería volver a hacer el primer
bucle hacia adelante da una vuelta completa. Alguien tiene
sugerencias.
Un saludo
△ ▽ • Responder • Compartir ›
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 15/16
27/10/2018 Servomotor con Arduino tutorial de programación paso a paso
https://programarfacil.com/tutoriales/fragmentos/servomotor-con-arduino/ 16/16