Arduino - Servomotor
En este tutorial, vamos a aprender a usar el servomotor con Arduino. En detalle, aprenderemos:
- Cómo funciona un servomotor
- Cómo programar Arduino para controlar un servomotor
- Cómo programar Arduino para controlar la velocidad de un servomotor
- Cómo proporcionar la energía adicional para servomotores de alto par
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del servomotor
El servomotor es un componente que puede girar su eje (generalmente entre 0° y 180°). Se utiliza para controlar la posición angular del objeto.
Esquema de pines
El servomotor utilizado en este ejemplo tiene tres pines:
- Pin VCC: (típicamente rojo) debe conectarse a VCC (5V)
- Pin GND: (típicamente negro o marrón) debe conectarse a GND (0V)
- Pin de señal: (típicamente amarillo o naranja) recibe la señal de control PWM desde el pin de un Arduino.

Cómo funciona
Después de conectar el pin VCC y el pin GND a 5 V y 0 V, respectivamente, podemos controlar el servomotor generando una señal PWM adecuada para el pin de señal.
El ángulo está determinado por el ancho de la señal PWM.
La ficha técnica del servomotor nos proporciona los siguientes parámetros:
- Período de PWM (PERIOD)
- Ancho mínimo de pulso de PWM (WIDTH_MAX)
- Ancho máximo de pulso de PWM (WIDTH_MIN)
Estos parámetros están fijados en la biblioteca Servo de Arduino. No necesitamos saber el valor de los parámetros.
El ángulo se determina de la siguiente manera:
- Si el ancho de pulso de PWM es igual a WIDTH_MIN, el servomotor gira a 0°.
- Si el ancho de pulso de PWM es igual a WIDTH_MAX, el servomotor gira a 180°.
- Si el ancho de pulso de PWM está entre WIDTH_MIN y WIDTH_MAX, el servomotor gira a un ángulo entre 0° y 180° en proporción.

Arduino - Servomotor
Algunos pines de Arduino se pueden programar para generar una señal PWM. Podemos controlar un servomotor conectando su pin de señal al pin de Arduino y programándolo para generar PWM en ese pin.
Gracias a Biblioteca Servo de Arduino, controlar un servomotor es pan comido. Ni siquiera necesitamos saber cómo funciona un servomotor. Tampoco necesitamos saber cómo generar una señal PWM. Solo necesitamos aprender a usar la biblioteca.
Diagrama de Cableado
Podrías encontrar diagramas de cableado en línea que muestren una conexión desde el pin VCC de un servomotor directamente al pin 5V de la placa Arduino, como se muestra a continuación. Aunque este enfoque puede funcionar, se desaconseja encarecidamente debido al riesgo potencial de dañar la placa Arduino.

This image is created using Fritzing. Click to enlarge image
En su lugar, para proteger su placa Arduino, recomendamos encarecidamente utilizar una fuente de alimentación externa para el motor servo. El diagrama de cableado a continuación ilustra cómo conectar el motor servo a una fuente de alimentación externa.

This image is created using Fritzing. Click to enlarge image
Por favor, asegúrate de conectar la GND de la fuente de alimentación externa a la GND de la placa Arduino. No pases por alto este paso crucial para un correcto funcionamiento.
Cómo programar para un servomotor
- Incluir la biblioteca:
- Declara un objeto Servo:
Si controlas más de un servomotor, solo necesitas declarar más objetos Servo:
- Configura el pin de control de Arduino, que se conecta al pin de señal del servomotor. Por ejemplo, el pin 9:
- Por último, gire el servomotor al ángulo deseado. Por ejemplo, 90°:
Código de Arduino
Pasos R\u00e1pidos
- Conecta Arduino al PC mediante un cable USB
- Abre Arduino IDE, selecciona la placa y el puerto correctos
- Copia el código anterior y ábrelo con Arduino IDE
- Haz clic en el botón Subir en Arduino IDE para cargar el código en Arduino

- Vea el resultado: El motor servo gira lentamente de 0° a 180° y luego gira lentamente de 180° a 0°
Explicación del código
Puedes encontrar la explicación en la línea de comentarios del código de Arduino anterior.
Cómo controlar la velocidad del servomotor
Al usar las funciones map() y millis(), podemos controlar la velocidad del servomotor de forma suave sin bloquear el resto del código.
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.
Desafíate a ti mismo
Utiliza el servomotor para realizar uno de los siguientes proyectos:
- Controlar la posición de un servomotor utilizando un potenciómetro. Consejo: Consulte Arduino - Potenciómetro.
- Apertura y cierre automáticos del cubo de basura. Consejo: Consulte Arduino - Sensor ultrasónico.
Conocimiento Adicional
- La biblioteca Servo admite hasta 12 motores en Arduino UNO y 48 en Arduino Mega.
- La alimentación desde el pin de 5V de Arduino puede no ser suficiente para un servomotor en alguno de los siguientes casos:
- Usar un servomotor de alto par, que puede soportar una carga pesada.
- Usar muchos servomotores.
- No conecte el pin positivo de la fuente de alimentación adicional al pin de 5 V del Arduino.
- Debe conectar el pin negativo de la fuente de alimentación adicional al pin GND del Arduino.
En estos casos, puede que necesitemos proporcionar una fuente de alimentación adicional para los servomotores.

This image is created using Fritzing. Click to enlarge image
Como se puede ver en el diagrama anterior, el pin VCC del servomotor NO se conecta al pin de 5V del Arduino. Se conecta al pin positivo de una fuente de alimentación adicional.
Por favor, tenga en cuenta que: