Panama Hitek Logo
Panama Hitek Logo

¿Qué es un servomotor y cómo funciona?

Si estás interesado en aprender más sobre los servomotores y cómo pueden ser de utilidad en tus proyectos de robótica o automatización, has llegado al lugar indicado. A lo largo de este artículo, exploraremos en detalle las características y aplicaciones de los servomotores, además de analizar sus principales ventajas y desafíos. Espero que disfrutes de la lectura y que encuentres esta información valiosa.

Los servomotores desempeñan un papel fundamental en la robótica y en otras áreas que requieren un control preciso del movimiento. Estos dispositivos están compuestos por un motor DC y un sistema de engranajes que les permite mantener posiciones fijas y ejecutar movimientos altamente precisos.

Además, cuentan con un circuito electrónico de control que los supervisa y dirige. Los servomotores encuentran aplicaciones en una amplia gama de campos, incluyendo la robótica, la automatización industrial y la industria de la aviación. En este artículo, profundizaremos en sus características y usos, así como en sus ventajas y limitaciones más destacadas.

Hablemos sobre motores

Un servomotor es un tipo de motor que se utiliza para controlar la posición del eje en un momento dado. Está diseñado para moverse una cantidad específica de grados y luego mantenerse en esa posición.

Cuando éramos niños, muchos de nosotros disfrutábamos jugando con juguetes que incluían motores pequeños y que funcionaban con un par de baterías. En mi caso, a menudo desmontaba mis juguetes para examinar el motor, el «órgano de vida» que hacía que se movieran.

dc-motors
Motores de juguetes

Creo que cuando nos hablan de motores DC, la mayoría de nosotros piensa en los que se muestran en la imagen. Este tipo de motor tiene la característica de que al invertir la polaridad del motor, este cambia su sentido de giro. Es una de las características más utilizadas en los carritos a control remoto.

Los motores DC como los que se muestran en la imagen tienen la particularidad de que giran sin detenerse. No son capaces de dar determinada cantidad de vueltas o detenerse en una posición fija. Solo giran y giran sin parar, hasta que se interrumpa el suministro de corriente. Esto hace que no sea posible utilizarlos para asuntos de robótica, ya que en este tipo de aplicaciones se necesita movimientos precisos y mantener posiciones fijas. Lo cierto es que este no es el único tipo de  motor DC que existe.

Para la construcción de robots se utilizan motores paso a paso y/o servomotores. Estos se caracterizan por ser permitir un movimiento controlado y por entregar un mayor par de torsión (torque) que un motor DC común. Sobre este tema ya ha escrito el amigo Gustavo Circelli de forma indirecta en su post sobre el acelerómetro MMA7361. Sin embargo, he decidido escribir este post exclusivo sobre el tema. En este artículo daremos un vistazo a lo que son los servomotores, sus usos y principales características y haremos algunas pruebas experimentales sobre consumo de energía.

Definición de servomotor

Un servomotor (o servo) es un tipo especial de motor con características especiales de control de posición. Al hablar de un servomotor se hace referencia a un sistema compuesto por componentes electromecánicos y electrónicos.

servomotor

El motor en el interior de un servomotor es un motor DC común y corriente. El eje del motor se acopla a una caja de engranajes similar a una transmisión. Esto se hace para potenciar el torque del motor y permitir mantener una posición fija cuando se requiera. De forma similar a un automóvil, a mayor velocidad, menor torque. El circuito electrónico es el encargado de manejar el movimiento y la posición del motor.

partes_servomotor

La presencia del sistema de engranajes como el que se muestra en la figura hace que cuando movemos el eje motor se sienta una inercia muy superior a la de un motor común y corriente. Observando las imágenes que hemos presentado nos podemos dar cuenta que un servo no es un motor como tal, sino un conjunto de partes (incluyendo un motor) que forman un sistema.

Tipos de servomotores

Existen servomotores para todo tipo de usos. En la industria, la robótica, en el interior de las impresoras, máquinas CNC, etc. Para los efectos de este post nos interesan los servomotores de modelismo, que son los utilizados en prototipos de robótica. No tomaremos en cuenta los servomotores del tipo industrial.

Servomotores de tipo industrial
Servomotores de tipo industrial
servo
Servomotor de modelismo

Los servomotores de modelismo operan a voltajes bajos en corriente directa, típicamente entre 4 y 6 voltios. Los servomotores industriales operan tanto en DC como en AC (monofásico o trifásico). Para mí es un poco difícil escribir sobre este tipo de temas debido a que nunca he tenido la oportunidad de trabajar con un servo industrial. Lo que sé sobre ellos es por lo que he leído o lo habré visto en algún video o seminario. Los servos de modelismo, en cambio, se pueden adquirir a muy bajo costo en Internet y son populares entre los usuarios de Arduino.

Se debe resaltar que, dentro de los diferentes tipos de servomotores, éstos se pueden clasificar según sus características de rotación.

  • Servomotores de rango de giro limitado:  son el tipo más común de servomotor. Permiten una rotación de 180 grados, por lo cual son incapaces de completar una vuelta completa.
  • Servomotores de rotación continua: se caracterizan por ser capaces de girar 360 grados, es decir, una rotación completa. Su funcionamiento es similar al de un motor convencional, pero con las características propias de un servo. Esto quiere decir que podemos controlar su posición y velocidad de giro en un momento dado.

Los servomotores de rango de giro limitado se pueden adecuar para que funcionen como servomotores de rotación continua. Sin embargo, si requerimos un servo de 360 grados es mejor comprar uno que haya sido diseñado para este tipo de uso.

Funcionamiento de un servomotor

Los servomotores poseen tres cables, a diferencia de los motores comunes que sólo tienen dos. Estos tres cables casi siempre tienen los mismos colores, por lo que son fácilmente reconocibles.

servomotor_pinout
Colores comunes de los cables de un servomotor

Los colores dependerán del fabricante, pero difícilmente nos equivocaremos a la hora de reconocer los terminales del un servo.  La necesidad de una señal de control para el funcionamiento de este tipo de motores hace que sea imposible utilizarlos sin un circuito de control adecuado. Esto se debe a que para que el circuito de control interno funcione, es necesaria una señal de control modulada. Para esto se utiliza modulación por ancho de pulsos, es decir, PWM.

servo_block_diagram

El diagrama de bloque del servomotor representa de forma visual el servomotor como un sistema. El circuito electrónico es el encargado de recibir la señal PWM y traducirla en movimiento del Motor DC. El eje del motor DC está acoplado a un potenciómetro, el cual permite formar un divisor de voltaje. El voltaje en la salida del divisor varía en función de la posición del eje del motor DC.

En Panama Hitek ya hemos escrito sobre el funcionamiento de un potenciómetro. En dicho post presentamos una serie de gráficos sobre la variación del voltaje en el divisor de un potenciómetro en función del movimiento de la perilla.

Untitled

De forma similar, cuando el eje del motor modifica la posición del potenciómetro, el voltaje en la terminal central varía. El potenciómetro permite que el circuito de control electrónico pueda retroalimentarse con la posición del motor en un momento dado. Esto, en Teoría de Control se conoce como un sistema de lazo cerrado.

Representación en diagrama de bloques de un sistema de lazo cerrado
Representación en diagrama de bloques de un sistema de lazo cerrado
Los servomotores de rotación continua desacoplan el potenciómetro del eje del motor. Esto impide que el circuito de control pueda leer la posición del eje, por lo cual provoca un movimiento continuo al no ser capaz de cumplir la condición para que el servo se detenga. Los servomotores de rotación continua normalmente pueden girar en un sentido o en otro y detenerse. Podemos modificar la velocidad de giro, pero no podremos lograr, por ejemplo, que el servo se mueva una determinada cantidad de grados y luego se detenga.

Las señales de PWM requeridas para que el circuito de control electrónico son similares para la mayoría de los modelos de servo. Esta señal tiene la forma de una onda cuadrada. Dependiendo del ancho del pulso, el motor adoptará una posición fija.

servo_pwm
Ancho de pulsos para lograr diferentes posiciones en un servomotor (180º, 135º, 90º, 45º y 0º)

Las señales que vemos en la imagen son las que permiten que el eje del motor adquiera determinada posición. Éstas señales deben repetirse en el tiempo para que el motor mantenga una posición fija.

pwm_signals
Ejemplos de trenes de pulsos para las posiciones 180º, 90º y 0º en el eje de un servomotor

La duración del ciclo de trabajo varía entre 15 y 25 milisegundos. Las ondas mostradas en la imagen anterior representan ejemplos de trenes de pulsos con los que se puede mover un servomotor, utilizando un ciclo de trabajo de 20 milisegundos.

Este tren de pulsos puede ser generado por un circuito oscilador (como un 555) o por un microcontrolador. Es decir, con Arduino podemos controlar fácilmente un servomotor. De hecho en Arduino existen las librerías para el control de servos de forma nativa. No es necesario descargarlas.

Consumo de energía

La energía consumida por una carga eléctrica será igual a la potencia (producto del voltaje por la corriente que entra a la carga) multiplicada por el tiempo de uso del motor. Debido a que los servomotores son alimentados entre 4 y 6 voltios, es posible asumir que el voltaje de alimentación es casi constante para la mayoría de los modelos. Lo que no es igual para uno u otro modelo de servomotor es el consumo de corriente.

La corriente demandada por un servomotor depende de diferentes parámetros:

  • Fabricante y modelo del servo
  • La inercia acoplada al eje del motor. Esto incluye la inercia del sistema de engranajes y la de la carga que esté acoplada al motor.
  • La velocidad de rotación aplicada al eje del servo

A mayor consumo de corriente, mayor demanda de potencia y por extensión, mayor consumo de energía. Esto es especialmente importante a la hora de controlar este tipo de motores con un microcontrolador. El consumo de corriente de un servo casi siempre es superior a la capacidad máxima del microcontrolador, por lo que se recomienda utilizar fuentes externas.

Los microcontroladores no han sido diseñados para entregar corriente a una carga sino para entregar señales de control. Estas señales de control se utilizan para activar o desactivar transistores (BJT o MOSFET), los cuales han sido especialmente diseñados para manejar grandes corrientes o voltajes.

Para tener una idea del consumo de corriente de un servomotor, he hecho una pequeña prueba experimental con un servo MG996R. Utilizando un cable USB y un medidor de corriente USB, me he propuesto verificar el consumo del servo ante diferentes condiciones de operación.

medidor_de_corriente_usb
Cable USB con medidor de corriente

Las pruebas se han hecho en vacío, es decir, sin carga acoplada al eje del servo. Para movilizar el motor he utilizado el ejemplo Servo/Sweep disponible en el Arduno IDE. El siguiente video muestra los resultados obtenidos para diferentes retrasos en el barrido (25, 20, 15, 10, 5 y 1 milisegundo).

Como podemos observar, en algunos casos el consumo de corriente es mayor que en otros. El medidor USB utilizado permite cuantificar el consumo de potencia instantánea, por lo cual podemos determinar cuánta energía consume el servo.

Algo importante que debemos resaltar de esta experiencia es el hecho de que el consumo para cualquiera de los delay anda por el orden de los 0.3 amperios (300 miliamperes). Eso es mucho más de lo que un pin de Arduino puede entregar (aproximadamente 40 miliamperios en un pin de 5 voltios). Por esta razón alimentamos el motor directamente desde un cargador de celular USB. Esto lo logramos conectando el GND del cargador con el GND del Arduino UNO. De esta forma, alimentamos el motor con el cargador del celular pero lo controlamos desde Arduino, conectando el cable de señal al pin 9.

El propósito de este post ha sido introducir nuestros lectores al concepto de lo que es un servomotor. En los próximos días estaremos escribiendo un poco más sobre este tema como preámbulo a lo que será una serie de posts sobre el tema de robótica, donde los servomotores son una pieza clave. Un ejemplo de esto lo podrán apreciar en el siguiente video:

Conclusion

En este post, hemos explorado las características y usos de los servomotores, así como sus principales ventajas y desventajas. Hemos visto que los servomotores son una herramienta esencial en la robótica y otras aplicaciones que requieren precisión y control en el movimiento. Estos motores se componen de un motor DC y un sistema de engranajes que les permiten mantener posiciones fijas y proporcionar movimientos precisos. Además, cuentan con un circuito electrónico que los controla.

Los servomotores se utilizan en una amplia variedad de aplicaciones, como la robótica, la automatización industrial y la aviación. Aunque tienen sus desventajas, como su alto costo y su tamaño relativamente grande, las ventajas de los servomotores, como su alta precisión y su gran torque, hacen que valgan la pena en muchas aplicaciones.

Espero que hayas disfrutado de la lectura y hayas aprendido algo nuevo sobre los servomotores. Si tienes alguna pregunta o comentario, no dudes en dejar un mensaje en los comentarios. ¡Gracias por leer!

Antony García González
Antony García González
Ingeniero Electromecánico, egresado de la Universidad Tecnológica de Panamá. Miembro fundador de Panama Hitek. Entusiasta de la electrónica y la programación.

Posts relacionados

51 COMENTARIOS

  1. Hola.
    Ante todo muchas gracias por el blog, es estupendo.
    Tengo una pregunta, no obstante: si tanto los servomotores como los motores paso a paso permiten fijar el ángulo de giro del eje del motor, salvando la diferencia de que uno trabaja a 360ª y el otro 180º (y que uno trabaja en base a cierto número de movimientos discretos y el otro en base a una cantidad incremental que puede ser variable), en la práctica, ¿qué los hace diferentes? Es decir, ¿en qué casos es conveniente uno y en qué casos otros? Porque la verdad, no sé distinguir las ventajas o inconvenientes de cada uno si lo único que quiero es decir: «gira hasta aquí y mantente aquí hasta que no te vuelva a decir». Creo que tengo algún problema de concepto.
    Muchas gracias

    • Los motores paso a paso son más lentos pero más potentes. Tienen mejor torque pero menor velocidad de giro. Además son más precisos que los servo y por lo tanto, un poco más caros. Todo depende de la precisión que necesites y el torque

      • Hola. Pensé que había respondido hace algunas semanas. Los motores paso a paso pueden moverse libremente en cualquier dirección, sin límites de vueltas. Los servomotores solo se pueden mover 180 grados. Un servo se mueve mucho más rápido que un motor paso a paso, pero este último posee mejor torque y mayor precisión. Los servo poseen una realimentación a través de un potenciómetro que permite saber la posición del eje en cualquier momento, mientras que los servo necesitan un encoder. Los stepper son capaces de moverse pocos grados y mantener una posición fija, mientras que los servo a veces fallan a la hora de moverse, por ejemplo, 2 grados. Todo depende de la situación en la que necesites hacer uso del motor. Si requieres torque y movimientos finos, usa un stepper. Si requieres movimientos rápidos, usa un servo.

    • Muy Buena Pregunta, tambien tengo esa duda, No sabria en que circunstancia es recomendable utilizar el servomotor de rango de giro limitado y en cual utilizar el servomotor de rotación continua. La explicación en el Post es bastante completa, sin embargo seria buena responder esta pregunta y si puede dar un ejemplo de ambos casos. Saludos.

  2. Hola
    Muchas gracias por esta informacion, esta muy completa y resuelve muchas dudas.
    Aunque sigo teniendo un problema y queria ver si me podias dar alguna alternativa o solucion a mi problema, veras, estoy intentando controlar un brazo con 6 servomotores, pero batallo con el voltaje, uso 12V para alimentar uno solo, y cuando lo acciono le baja el voltaje considerablemente, al punto de que no queda suficiente energia para otro Servomotor
    y queria saber como puedo accionar 2 servomotores al mismo tiempo, ¿cuanto voltaje ocuparian? ¿El Amperaje tiene algo que ver? ¿hasta cuanto soportarian?
    Estoy alimentando con una fuente de poder de 12V, y para el CI uso un regulador de voltaje a 5V
    El control lo estoy realizando con un PIC16F84A, la marca y modelo de los servos la desconozco por ahora, cuando pueda, te digo cuales son…
    Espero me haya explicado y me logres ayudar a buscar alguna solucion o alternativa para el problema
    Gracias

    • Si los motores se alimentan en paralelo, no deben tener problema. Pero 12 voltios es mucho y posiblemente el voltaje se cae porque el motor entra en corto. Aliméntalos en 5 o 6 voltios. Un cargador de celular debería resolver el problema

      • Al intentarlo con 5V el servomotor ni siquiera se movia, por eso es que le subimos el voltaje para ver si funcionaba, y al llegar a 12V un solo servo funciono correctamente, pero al intentar activar 2 al mismo tiempo ya no se podia por lo mismo de que se disminuye considerablemente el voltaje

  3. Hola
    Disculpa ¿que me ecomendarías para alimentar 7 servos? ¿Con una cargador de celular de 1A funcionaría?
    Muy buena información

  4. Buen dia, tengo un problema con un servo motor industrial, hace poco se quebró el eje del motor que va acoplado con su transmisión se envió a reparar pero después de instalado tiene una vibración ligera….

  5. Buenas. muy interesante el articulo, gracias por compartir tus conocimientos.
    Tengo una consulta, por que un servo del tipo de radio control (mg996r) calienta y compensa a fallar el servo, a la ves que hace fallar arduino que la controla.

  6. Hola tengo un problema con el servo mg996R, tengo conectado dos servos con un arduino la fuentes uso diferentes para la alimentacion, he realizado la programacion y veo que al activar un servo, este interfiere en el otro y esto causa movimientos extras sin control, ?? talvez me puedes indicar alguna sugerencia para solucionar este problema, PD: tengo una fuente de 2A, 5V para los servos y otra fuente de 5V para el arduino, las tierras estan conectadas

  7. hola tengo un problema con un servomotor, no logro que funcione con los 5v y los pines estan bien conectados.
    que puede que este pasando?

  8. Hola, buena información, tengo una duda. He buscado información en linea pero casi todos dicen lo mismo pero no aclaran muy bien el concepto, se que existen dos clasificaciones de servomotor, según la info es por topologia y modelismo, pero en sí no dicen porque. o de que otra manera podrían nombrarse esas dos categorías. Saludos desde México

    • Bueno todo depende desde el punto de vista que lo veas. Hay servomotores de plástico y los hay industriales, así que podríamos decir muchas cosas sobre clasificación de servomotores

  9. Hola, Excelente Blog,
    Aclaró varias de mis dudas, sin embargo aún quedaron algunas,
    Tengo un proyecto en Arduino dónde tengo que alimentar 13 servomotores ,
    Por lo que entendí un servo necesita
    De .3 a .5(cómo máximo) Amperios alimentado con 5 Volts,
    Yo conseguí una batería de 7volts a 3Amp.
    Pero mi problema es que no se si alimentar a si a los servos sea correcto?
    O en todo caso es mejor utilizar unas pilas AA Que dan 1.5volts, y 2.4 Amp.,?
    Cuál sería la.mejor solución para los 13sevos?

    • Yo los alimentaría en 5 voltios con un cargador de celular que te puede dar hasta 2 amperios, dependiendo del modelo. O consíguete un adaptador de 5V, 2A de los que venden en las tiendas de electrónica. Esos son más fáciles de adaptar a un circuito por el tipo de conector.

  10. Una maquina inyectora de plastico que tien un motor de 15 Kw y el poder del calentador es 14Kw, cuantos kw por hora es su consumo con servo motor

  11. Hola, solo quiero hacer una aclaración porque el componente nombrado como «potenciomentro» es incorrecto al deberse de que el componente se llama «resistencia variable» y «potenciomentro» es solo el nombre de una de las configuraciones de dicho componente, y pues con esta aclaración hacer más precisa la información que nos proporciono solamente diciendo que es una resistencia variable en la configuración de potenciometro, solo quería aclarar eso porque la información me sirvió de mucho ademas de tener claridad al explicar.
    Sin mas por agregar le doy las gracias por publicar tan buena información.

  12. Estimado ing Garcia, le saluda Hugo Aedo… agradecere me pueda informar si tiene referencia tecnica donde se puede realizar evaluaciones tecnicas en Panama, de motores servo y sus respectivos drivers…. saludos

  13. Hola
    Disculpa tengo una duda y espero me ayudes
    Quiero controlar dos servomotores mg995
    Alimentándolos con un cargador de 5v 2amps conectados en paralelo
    Como sería la conexión con Arduino?

        • ¿Acaso tengo yo que dedicar mi tiempo y esfuerzo a contestar cualquier pregunta que me hagan a través de este medio, completamente gratis?

          Sería bueno que para contestar esta pregunta nos dejes un link a tu blog donde personalmente respondas a preguntas de este tipo

          • Que pésima manera de Responder, las personas que publican este tipo de información deben saber que tambien generaran una cantidad de opiniones positivas como tambien algunas dudas, y simplemente si se conoce del tema lo mas correcto es asesorar al que desconoce, con el fin de ayudar.

            Me parece que no domina el tema completamente y se ofende con una pregunta que le estan haciendo. Compartir un Post no se basa solo en Copiar y Pegar Informacion.

          • En este post no se ha copiado o pegado nada. Todo ha sido redacción producto de mi experiencia y criterio.

            La pregunta original consiste en responder cómo se conectan dos motores al Arduino. Yo en este documento estoy hablando de servomotores en general, no de como conectarlos a Arduino, lo cual es información de dominio público en Internet. No es muy difícil encontrar esa respuesta, pero la gente quiere que les hagas todo y se los entregues preparado para que tengan que esforzarse al mínimo.

            Si no te gusta como le respondí, lo lamento. Tu mismo puedes escribirle a esa persona y responderle si deseas, pero yo no voy a contestar algo cuyo nivel de dificultad es mínimo y que es fácilmente alcanzable realizando una sencilla búsqueda en Google.

  14. ingeniero antony como esta, me podria decir la corriente que consume , pero generandole una fuerza al servomotor, es decir mas o menos a 6v 6kg de fuerza, quisiera saber como es el consumo aplicandole fuerza, muchas gracias

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados