Tipos de motores rotativos para proyectos de Arduino


arduino-tipos-de-motores

En la entrada anterior vimos los criterios a tener en cuenta para elegir un accionamiento o motor para usar en nuestros proyectos de Arduino.

Continuando con la guía de selección, en esta entrada vamos a analizar los principales motores giratorios que tenemos disponibles, con su funcionamiento, características, ventajas y desventajas.

La explicación del funcionamiento de cada tipo de motor será cuantitativa y sin ecuaciones, ya que cada entrar en detalles de cada uno de ellos daría para un capítulo de un libro de electrónica. El objetivo es exponer de forma sencilla cómo funcionan y sus ventajas y desventajas.

En la próxima entrada finalizaremos esta serie sobre selección de accionamientos, y veremos otros tipos de accionamientos no rotativos que incorporar en nuestros montajes.

Motores de corriente continua

Los motores de corriente continua (motores DC) son unos de los actuadores más comunes. Su funcionamiento se basa en el alineamiento de dos campos magnéticos.

El estator, la parte fija del motor, dispone de un imán permanente que genera un campo magnético en el interior del motor.

arduino-motores-corriente-continua-funcionamiento

En su interior introducimos una espira y hacemos circular una corriente eléctrica, con lo que se genera un campo magnético. El desfase angular entre ambos campos magnéticos genera un par de giro, que hace que el rotor gire hasta que los dos campos magnéticos se alineen.

Cuando ambos campos magnéticos estuvieran alineados el motor se pararía. Para que el motor gire continuamente vamos a invertir uno de los campos magnéticos, para lo cuál necesitamos invertir el sentido de la corriente que atraviesa la espira.

Para ello los motores DC los contactos que alimentan la espira están constituidos por un anillo partido que desliza sobre unos contactos eléctricos que rozan contra el mismo, transmitiendo la electricidad. Al anillo divido unido al eje se le denomina colector de delgas, mientras que a los contactos deslizantes se les denomina escobillas.

Al pasar un cierto ángulo las escobillas pasaran de una delga a la siguiente. Esto provoca la inversión de la corriente en la espira. De esta forma el conjunto escobillas – colector de delgas actúa como un inversor mecánico y permite al motor girar de forma continua.

La ventaja de este sistema es que la sincronización es siempre perfecta independientemente de la velocidad y par ejercidos, ya que es el propio ángulo de giro del motor el que marca la inversión de la corriente. El lado negativo es que el rozamiento supone una pérdida de eficiencia y reducen la vida útil del motor.

Existen otras disposiciones de motores de corriente continua. En ocasiones el campo magnético del estator está generado por una bobina en lugar de un imán permanente. En otras ocasiones, las posiciones de los elementos se intercambian entre rotor y estator. También es posible que el estator sea el eje del motor, y el rotor es la carcasa del mismo.

En cualquiera de estas variaciones el funcionamiento del motor es el mismo, disponer de dos campos magnéticos desalineados de forma que giren para alinearse, y usar un sistema de colector de delgas y escobillas para invertir el campo magnético de uno de ellos cuando se alinean.

En un motor real, por supuesto, no se dispone de una única espira, si no de bobinas formadas por múltiples espiras. Además, frecuentemente se dispone de más de una bobina, lo que aumenta la potencia del motor sin incrementar su tamaño.

arduino-motores-corriente-continua-interior

Por otro lado, las bobinas se arrollan sobre núcleos ferromagnéticos, llamados armaduras, lo que aumenta la potencia del motor y disminuye las pérdidas por dispersión magnética. Las armaduras están compuestas por plaquitas aisladas entre si para reducir las pérdidas por corrientes de Foucault inducidas.

Los motores de corriente continua se encuentran disponibles en distintas tensiones nominales, siendo habituales 6V, 12V y 24V. En cuanto a potencia, encontramos motores de todo tipo de tamaños, desde apenas unos milímetros de largo hasta

arduino-motores-corriente-continua

Los motores tienen altas velocidades de giro y bajo bajo par. Podemos emplear las salidas PWM de Arduino para controlar la velocidad, pero esto mantendrá el par máximo disponible. Otra opción es emplear un reductor externo o integrado (ver a continuación “motores geared down”) que reduce la velocidad a la vez que aumenta el par y la precisión.

Para controlar un motor de corriente continua necesitaremos una etapa de amplificación, como un transitor BJT, o un transitor MOSFET. Si además queremos poder invertir el sentido de giro necesitaremos un controlador con puente-H. Aunque lo más conveniente es emplear un controlador como el L298N o la versión mejorada TB6612FNG, que maneje las altas corrientes necesarias e incorporar protecciones contra voltajes inducidos.

Los motores DC tienen mal control de posición y mal control de la velocidad. Su comportamiento es fuertemente no lineal y depende mucho de la carga que soportan. Por este motivo suelen emplearse con un encoder que permite saber la posición del eje. Incluso algunos modelos de motores DC integran un encoder internamente.

Motores geared down motor

Un motor geared down es un motor de corriente continua que incorpora un reductor interno. Esto aumenta el par del motor y reduce su velocidad. Velocidades de giro habituales son 60, 120, 240 y 480 rpm, entre otras.

arduino-motores-geared-interior

Es frecuente que strong>algunos motores geared down incorporan un encoder interno. Este encoder suele estar aplicado en el lado de alta velocidad, por lo que la precisión es superior a añadir una encoder acoplado al eje.

Los motores geared down son frecuentes para accionar ruedas de robots y vehículos.

arduino-motores-geared

Motores brushless

Los motores brushless (sin escobillas) son otra variación de los motores de corriente continua que prescinde de las escobillas como sistema de rectificación de la corriente. En su lugar recurren a la electrónica para realizar la conmutación del campo magnético.

arduino-motores-brushless-funcionamiento

Al no disponer de escobillas los motores brushless tienen mayores velocidades, menor peso, y mayor durabilidad que los motores DC tradicionales.

arduino-motores-paso-a-paso-interior

Algunos motores brushless pequeños incorporan la electrónica necesaria para su funcionamiento de forma interna. Sin embargo, los motores más grandes necesitan de un controlador externo, llamado ESC (Electronic Speed Controller). Algunos ESC disponen además de una función BEC (Battery Elimination Circuit) que consiste en una salida de tensión regulada a 5V, normalmente de 1-3A, para alimentar otra electrónica.

arduino-motores-esc

Los motores brushless son ampliamente empleados en quadricopteros, y otros vehículos aéreos. También son empleados en hélices de barcos, ventiladores y, en general, en aplicaciones que requieren alta velocidad de giro.

arduino-motores-brushless

Servo motores

Los servos son otro actuador muy común en proyectos de robótica. Un servo recibe una señal pulsada generada por un procesador, que transmite la posición que deseamos y el servo autónomamente se posiciona en esa posición.

arduino-motores-servos

Un servo no puede dar una vuelta completa, siendo su rango habitual de 180º. A cambio, proporcionan un control total en posición y giro y de una alta precisión, y son muy sencillos de usar.

Internamente un servo está constituido por un motor DC acoplado a un reductor, junto con un controlador que se encarga de posicionar el eje en el ángulo indicado. Al estar acoplados a un reductor la velocidad de un servo es relativamente baja y proporcionan un alto par.

arduino-servo-interior

Los servos son ampliamente utilizados en proyectos de robótica, como brazos robóticos, hexápodos, o robots bípedos. También pueden usarse en torretas, o para posicionar un sensor, o un láser, por ejemplo.

Más información sobre el uso de servos con Arduino en Controlar un servo con Arduino

Servo motores de rotación continua

Un servo de rotación continua es una variante de un servo convencional, en el que la electrónica se modifica para que la señal controle la velocidad en lugar de la posición.

arduino-motores-servo-rotacion-continua

Como su nombre indica, los servos de rotación continua son capaces de dar la vuelta completa, comportándose de forma similar a un motor DC, con control de velocidad integrado. A cambio perdemos el control de posición, por lo que si queremos controlarla deberemos añadir un encoder.

Sin embargo, los servos de rotación continua no ofrecen un control preciso sobre la velocidad de giro ya que, en general, no presentan una respuesta lineal respecto a la señal recibida. Para tener un buen control tendremos que calibrar el servo y ajustar la señal enviada, o nuevamente añadir un encoder.

Más información sobre el uso de servos de rotación continua con Arduino en Controlar un servo de rotación continua con Arduino

Motores paso a paso

Los motores paso a paso (también llamados stepper) son otro tipo de motor muy empleado en robótica. En este tipo de motores el eje gira un ángulo fijo llamado “paso” cuando es indicado por un procesador. El paso varía del modelo de motor, siendo valores habituales 1.8º (200 pasos por vuelta) y 3.75º (96 pasos por vuelta)

arduino-motores-paso-paso

A rasgos generales, un motor paso a paso está formado por un estator con dos bobinas desfasadas a 90º y un rotor formado por un imán permanente instalado solidariamente al eje.

Aplicando una secuencia de encendido adecuada a las bobinas podemos hacer que el imán se oriente progresivamente, hasta dar un giro completo. Si la secuencia es incorrecta el motor no se moverá.

arduino-motores-paso-a-paso-secuencia

Por este motivo, un motor paso a paso necesita obligatoriamente un procesador para funcionar no siendo posible activarlos simplemente conectándolos a corriente.

En el mundo real, un motor que sólo es capaz a pasos de 90º no sería muy útil. Para conseguir un paso inferior podríamos pensar en añadir múltiples bobinas, pero añadiríamos peso sin incrementar la potencia.

Para conseguir el efecto de tener “múltiples bobinas” se emplea la variación de la reluctancia magnética. Se dispone de una rueda dentada acoplada al eje, con un número de dientes tal que el siguiente diente esté desfasado respecto a las restantes bobinas.

arduino-paso-paso-funcionamiento

Al activar una bobina, la rueda dentada es atraída por el campo magnético generado de forma que el rotor gira para minimizar la distancia del circuito magnético.

En la imagen superior puede parecer que hay “8 bobinas” pero en realidad solo hay 2 bobinas A y B, cada una con 4 polos. Al activar una bobina todos los polos funcionan de forma conjunta.

Existen motores unipolares o bipolares. La diferencia es que los motores bipolares tienen ambas bobinas divididas en dos, para lo cual disponen de un terminal adicional en cada fase.

arduino-motores-unipolar-bipolar

Los motores unipolares tienen cuatro conductores, y los bipolares cinco o seis (dependiendo si el terminal intermedio es común para ambas bobinas).

Los motores bipolares pueden ser más sencillos de operar, dado que si empleamos sólo media bobina podemos evitarnos tener que invertir el sentido de circulación de la bobina. Por el contrario, si operamos en modo bipolar tendremos menos potencia, dado que sólo estamos empleando media bobina para hacer funcionar el motor.

Con la electrónica actual y los controladores existentes invertir el sentido de la corriente no es ninguna dificultad, por lo que en general preferiremos motores unipolares. Sin embargo, todo motor bipolar puede ser operado como unipolar, simplemente dejando sin conectar el terminar intermedio.

arduino-paso-a-paso-interior

Los motores paso a paso tienen un control de posición y velocidad total. La precisión depende del paso del motor y del modo de control empleado. Así, podemos controlar el motor paso a paso con activación en cuatro etapas, o en ocho. Al activar en ocho etapas conseguiremos la mitad del paso nominal.

Por otro lado, algunos controladores disponen de microstepping, una técnica que consiste en variar la intensidad que se suministra a cada una de las bobinas. De esta forma se consiguen precisiones de paso de 1/16 a 1/32 el paso nominal del motor.

El par máximo generado por un motor paso a paso es intermedio siendo, en general, superior al de un motor DC y brushless, pero inferior a un motor DC con reductor o un servo.

La velocidad máxima también es intermedia, aunque resulta difícil determinar porque depende de los parámetros internos del motor y de las condiciones de trabajo. A modo de ejemplo, la velocidad máxima típica de un motor NEMA 17 está en torno a 600 rpm, pudiendo llegar hasta 4800 rpm en algunos modelos.

Antiguamente podíamos reciclar motores paso a paso de máquinas como escáneres e impresoras, pero progresivamente han sido sustituidos por motores DC.

Los motores paso a paso son ampliamente utilizados en proyectos de electrónica, como impresoras 3d, y máquinas de CNC. También resultan adecuados para vehículos pesados, o que requieran una gran sincronización entre ruedas, como vehículos con omni wheels o mecanum wheels.

Más información sobre el control de motores paso a paso bipolares con Arduino en Motores paso a paso con Arduino y driver A4988 o DRV8825

Motor paso a paso 28BYJ-48

El motor 28BYJ-48y es un motor paso a paso de pequeño tamaño y bajo precio. Eléctricamente es un motor de baja potencia, alimentado a 5V, y un paso de 5.624 (64 pasos). Pero tiene la peculiaridad de incorporar un reductor interno de 1/64.

arduino-motores-BYJ48

Esto significa que la precisión global es de menos de 0,087º (4096 pasos) y un par de 0,3kg/cm. Puede operar a una frecuencia máxima de 100Hz, por lo que la velocidad máxima es de 1 vuelta cada 40 segundos.

Que su pequeño precio y modestas características no os hagan descartar este motor. Su elevada precisión y bajo precio hace que sea interesante para aplicaciones de precisión, como girar la plataforma un escanear 3D, o direccionar un sensor o un láser.

Incluso puede ser un sustituto viable de servos en algunos robots articulados que requieran alta precisión y baja velocidad, como por ejemplo robots articulados que dibujan.

Tabla de resumen

La información anterior se resume en la siguiente tabla. Por supuesto, dependerán del modelo particular de cada motor elegido, pero a grandes rasgos y a modo de resumen,

CaracterísticasControl (*)
VelocidadFuerza/ParPosiciónVelocidad
Motor DC▲Alto▼Bajo▼Malo▼Malo
Motor DC Geared Down– Medio▲Alto▼Malo▼Malo
Motor brushless▲▲Muy alto▼Bajo▼Malo– Medio
Servo▼Bajo▲Alto▲▲Absoluto▲▲Absoluto
Servo rotación continua▼Bajo▲Alto▼Malo– Medio
Motor paso a paso– Medio– Medio▲▲Absoluto▲▲Absoluto
Motor paso a paso BYJ48▼▼Muy bajoBajo▲▲Absoluto▲▲Absoluto


(*) Con encoder todos pasan a control absoluto de posición y velocidad

Conclusiones

Los motores DC son una opción ganadora para vehículos con ruedas o cadenas. Para tener un control adecuado de velocidad necesitaremos añadir encoders.

Una alternativa es usar servos de corriente continua, que proporcionan un control sencillo de velocidad. También resulta una opción apropiada para robots con más de dos motores, como los robots con omniwheels o mecanum wheel.

Los servos convencionales son la opción destacada para robots con articulaciones como brazos robóticos, hexápodos, y bípedos.

Los motores brushless resulta más adecuados para proyectos que requieran altas velocidades con poco peso, como quadricpteros y otros vehículos aéreos o maritimos.

Por último, los motores paso a paso resultan adecuados para aplicaciones con alta precisión en velocidad y posición, como impresoras 3d, máquinas CNC, y vehículos avanzados.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino
Previous Guía de selección motores y actuadores para Arduino
Next Tipos de actuadores lineales para proyectos de Arduino

¡Deja un comentario!...

avatar
1000
wpDiscuz