Cómo controlar servomotores con Arduino – Guía completa
En este tutorial aprenderemos cómo funcionan los servomotores y como controlar servomotores con Arduino . Los servomotores son muy populares y se usan ampliamente en muchos proyectos de Arduino porque son fáciles de usar y brindan un excelente control de posición.
Los servos son una excelente opción para proyectos de robótica, automatización, modelos RC, etc. Ya los he usado en muchos de mis proyectos Arduino y puedes ver algunos de ellos aquí:
Brazo robótico DIY Arduino con control por teléfono inteligente
Robot hexápodo de hormiga Arduino
Aerodeslizador RC basado en Arduino DIY
Robot SCARA | Cómo construir su propio robot basado en Arduino
Réplica DIY del Mars Perseverance Rover:proyecto basado en Arduino
Puede ver el siguiente video o leer el tutorial escrito a continuación. Incluye varios ejemplos de cómo usar un servomotor con Arduino, diagrama de cableado y códigos. Además, tiene una guía sobre cómo controlar múltiples servomotores con Arduino utilizando el controlador PCA9685 PWM.
¿Qué es servomotor?
Un servomotor es un sistema de circuito cerrado que utiliza retroalimentación de posición para controlar su movimiento y posición final. Hay muchos tipos de servomotores y su característica principal es la capacidad de controlar con precisión la posición de su eje.
En los servomotores de tipo industrial, el sensor de retroalimentación de posición suele ser un codificador de alta precisión, mientras que en los servos RC o de hobby más pequeños, el sensor de posición suele ser un simple potenciómetro. La posición real capturada por estos dispositivos se retroalimenta al detector de errores donde se compara con la posición objetivo. Luego, de acuerdo con el error, el controlador corrige la posición real del motor para que coincida con la posición objetivo.
En este tutorial vamos a echar un vistazo detallado a los servomotores de hobby. Explicaremos cómo funcionan estos servos y cómo controlarlos usando Arduino.
Los servos de hobby son actuadores de tamaño pequeño que se utilizan para controlar coches, barcos, aviones, etc.
¿Cómo funcionan los servomotores?
Hay cuatro componentes principales dentro de un servo de hobby, un motor de CC, una caja de cambios, un potenciómetro y un circuito de control. El motor de CC es de alta velocidad y bajo par, pero la caja de cambios reduce la velocidad a alrededor de 60 RPM y al mismo tiempo aumenta el par.
El potenciómetro está conectado al engranaje final o al eje de salida, por lo que a medida que el motor gira, el potenciómetro también gira, produciendo así un voltaje que está relacionado con el ángulo absoluto del eje de salida. En el circuito de control, este voltaje del potenciómetro se compara con el voltaje proveniente de la línea de señal. Si es necesario, el controlador activa un puente H integrado que permite que el motor gire en cualquier dirección hasta que las dos señales alcancen una diferencia de cero.
Un servomotor se controla enviando una serie de pulsos a través de la línea de señal. La frecuencia de la señal de control debe ser de 50 Hz o debe producirse un pulso cada 20 ms. El ancho del pulso determina la posición angular del servo y este tipo de servos generalmente pueden girar 180 grados (tienen límites físicos de recorrido).
Generalmente, los pulsos con una duración de 1 ms corresponden a la posición de 0 grados, una duración de 1,5 ms a 90 grados y una duración de 2 ms a 180 grados. Aunque la duración mínima y máxima de los pulsos a veces puede variar con diferentes marcas y pueden ser de 0,5 ms para 0 grados y 2,5 ms para una posición de 180 grados.
Popular RC / Hobby Servos para proyectos Arduino
Hay muchos modelos y fabricantes diferentes de RC o hobby. La principal consideración al elegir un servomotor es su par, voltaje de funcionamiento, consumo de corriente y tamaño.
Estos son los dos modelos de servo más populares entre los fabricantes, el SG90 Micro Servo y el MG996R.
Microservo SG90 especificaciones técnicas:
Par de parada
1,2 kg·cm a 4,8 V, 1,6 kg·cm a 6 V,
Voltaje de funcionamiento
3.5 – 6V
Sin corriente de carga
100mA
Actual estancada
650mA
Velocidad máxima
60 grados en 0,12 s
Peso
9g
Servomotor MG996R especificaciones técnicas:
Par de parada
11kg.cm @4.8v, 13kg.cm @6V
Voltaje de funcionamiento
4.8 – 7.2V
Sin corriente de carga
220mA @4.8V, 250mA @6V
Actual estancada
650mA
Velocidad máxima
60 grados en 0,20 s
Peso
55g
Control de servomotor Arduino
Pongamos a prueba lo dicho anteriormente y hagamos un ejemplo práctico de cómo controlar un servo de hobby usando Arduino. Usaré el MG996R, que es un servo de alto par con engranajes metálicos con un par de parada de 10 kg-cm. El alto par tiene un precio y esa es la corriente de bloqueo del servo que es 2.5A. La corriente de funcionamiento es de 500 mA a 900 mA y el voltaje de funcionamiento es de 4,8 a 7,2 V.