Podemos controlar desde motores en corriente alterna (CA) mediante relés, motores paso a paso, con el uso de drivers o bien motores de corriente continua(CC) con el uso de transistores.
Pero para controlar motores paso a paso con más potencia, debemos tener
en cuenta adaptar nuestros driver de control, por ejemplo una CNC debe tener motores con más potencia que para la impresión 3D o el grabado láser.
Los típicos driver que utiliza Arduino son para impresoras
3D que no necesitan de mucha potencia, pero si queremos controlar potentes
motores de CNC, podemos utilizar como microcontrolador Arduino, pero
utilizaremos otros drivers que manejen más potencia para estos motores.
Antes de continuar, definiremos que es un “Driver”: cualquier equipo electrónico inteligente que proporcione un control ajustable de la velocidad para un motor. El driver para un motor paso a paso corresponde a un circuito electrónico, el cual tiene la característica de conmutar cada una de las bobinas del Stepper y a su vez, generar la secuencia en que debe alimentarse cada bobina para generar un paso. Junto con ello, permite invertir el giro del motor invirtiendo la secuencia en que las bobinas son conmutadas.
Los más utilizados en proyectos como la impresora 3D, son el A4988 y el DRV8825, pero como podemos ver en la siguiente tabla, presentan caracteristicas muy similares si lo comparamos con otros tipos en el mercado.
Antes de continuar, definiremos que es un “Driver”: cualquier equipo electrónico inteligente que proporcione un control ajustable de la velocidad para un motor. El driver para un motor paso a paso corresponde a un circuito electrónico, el cual tiene la característica de conmutar cada una de las bobinas del Stepper y a su vez, generar la secuencia en que debe alimentarse cada bobina para generar un paso. Junto con ello, permite invertir el giro del motor invirtiendo la secuencia en que las bobinas son conmutadas.
Los más utilizados en proyectos como la impresora 3D, son el A4988 y el DRV8825, pero como podemos ver en la siguiente tabla, presentan caracteristicas muy similares si lo comparamos con otros tipos en el mercado.
Los valores que debemos conocer para la elección de un motor son las siguientes:
-Escoger motores con un par o torque suficiente para la
aplicación que vayan a tener (suficientemente “fuertes”).
-Elegir los drivers que puedan manejar suficiente corriente para que
el motor ejerza el par motor necesario.
Además, el driver debe ser compatible con el resto de componentes electrónicos y con
el resto de la circuitería de control.
El fabricante de los motores nos va a especificar una
serie de datos y gráficos sobre su producto en las hojas técnicas o datasheet, como
por ejemplo siguiente tabla:
Debemos fijarnos especialmente en dos datos:
-El par motor (o torque) de retención:
Aparecerá como “Holding Torque” o “Static moment”. Se mide
en N·m o N·cm (Newtons·centímetro) y es uno de los parámetros que indica la
“fuerza” del motor. Es el que más habitualmente ofrecen los fabricantes.
En la tabla anterior podemos observar que para el motor del
ejemplo su valor es de 65 N·cm.
¿Qué significa este valor?
Es un indicativo de la fuerza con la que el motor puede
mantenerse en un paso. Determinará el aguante del motor a que la inercia del
eje que estamos moviendo le haga saltarse un paso al frenar dicho eje (que es el
punto más común en el que puede saltarse un paso).
-La corriente o intensidad nominal:
Aparecerá como “Rated Current”, “Phase Current” o “Max
Current”.
Se mide en amperios (A) y nos da el valor máximo de
corriente que podemos hacer circular de manera continua por el motor sin
quemarlo (recuerda que más corriente → más fuerza).
En la tabla podemos observar que para el motor del
ejemplo su valor es de 1,8 A.
Por tanto si queremos utilizar este motor aprovechando toda
su fuerza tenemos que controlarlo con un driver que sea capaz de entregar toda
esa corriente.
Consejo:
En caso de que sólo dispongamos de motores más ligeros a los recomendados: Disminuir el valor de aceleración máxima y limitar la velocidad máxima a un valor más pequeño, en el firmware de la máquina.
En caso de que sólo dispongamos de motores más ligeros a los recomendados: Disminuir el valor de aceleración máxima y limitar la velocidad máxima a un valor más pequeño, en el firmware de la máquina.
En caso de duda, entre dos motores del mismo par no siempre
es mejor escoger el de menor corriente nominal. Cuanta mayor corriente nominal,
más conserva su par el motor a altas velocidades, por lo que escogeremos el de
mayor corriente que admitan los drivers de los que disponemos.
NOTA: Revisar la disposición del cableado de conexión, esta disposición puede variar entre distintos fabricantes.
Existen en el mercado multitud de drivers para motores paso
a paso. Entre ellos hay una serie de diferencias, las cuales pueden dividirse
en diferencias de control y de prestaciones.
Respecto al control:
-Drivers plug & play
Se controlan por USB. Son capaces de comunicarse con un
software ejecutándose en un PC, que les envía las órdenes que el driver
convertirá en movimiento de los motores que esté controlando. Pueden
comunicarse en tiempo real o ser programados.
Pueden funcionar de forma independiente, sin necesidad de
más electrónica excepto la alimentación.
-Drivers de bajo nivel
Son aquellos drivers que se controlan con señales
electrónicas básicas, como voltajes y corrientes. Necesitan una electrónica de
control aparte, ya que forman parte de un sistema y no se utilizan de manera
independiente.
Respecto a sus prestaciones, los drivers pueden tener diferentes especificaciones, de las cuales podemos destacar las siguientes:
- Rango de voltajes de operación (con los que alimentarán al motor)
- Corriente que son capaces de suministrar de manera continua a cada bobina del motor
- Modos de micropasos disponibles (1/8, 1/16, 1/32, full-step…)
- Presencia de mecanismos de seguridad, como control contra sobretemperaturas, sobrecorrientes y cortocircuitos
- Presencia de limitadores de corriente para poder utilizar motores con baja corriente nominal o bien a un mayor voltaje que el nominal
En el mercado existe una variedad amplia de motores según su
torque, número de pasos, consumo, etc…
Cada tipo, tiene su propio tipo de driver de control
adaptado a sus necesidades técnicas, sin embargo, se mantienen las señales de
control de manera independiente al tamaño, torque, número de pasos… que tenga
el motor. Esta característica, permite que mediante Arduino se puedan
controlar una amplia variedad de motores sin necesidad de utilizar los pequeños
drivers típicos para la mayoría de proyectos de Arduino con pequeños motores.
Por ejemplo, si necesitamos controlar un motor NEMA 34,
utilizamos el driver ST-M5045, y en el código de programación de Arduino,
hacemos uso de la biblioteca AccelStepper.
Las conexiones de control, serán las mismas que para otros motores paso a paso.
Por ejemplo:
Por ejemplo:
>Pul+ se conecta a +5V
>Pul- se conecta a Arduino Pin 9
>Dir+ se conecta a +5V
>Dir- se conecta a Arduino Pin 8
>Enable+ sin conexión
>Enable- sin conexión
>Pul- se conecta a Arduino Pin 9
>Dir+ se conecta a +5V
>Dir- se conecta a Arduino Pin 8
>Enable+ sin conexión
>Enable- sin conexión
En el siguiente enlace se puede ver un video explicativo en inglés que muestra un ejemplo:
Para saber si el driver que utilizamos es compatible con
Arduino, debemos comprobar en la hoja de características del driver,que sus
entradas de control funcionan a 5V (como el Arduino Mega) o 3.3V (como el Arduino Due) dependiendo del tipo Arduino, y están en un rango de intensidad de entre 10
a 15mA.
Muchos nuevos driver de control tienen las entradas de
control fotoacopladas, para aislar eléctricamente el circuito, y necesitan de
un amplificador de señal para activar sus entradas de control a mas voltaje o intensidad de la que puede suministrar el microcontrolador.
Imagen cortesia de inventable.eu
Los drivers, internamente, suelen estar separados en dos
circuitos integrados, uno para el manejo de la corriente (como el L298) y el otro para
el control de la secuencia de conmutación y el control de la corriente de
bobinado para el motor paso a paso (como el L297).
El control de la corriente de
bobinado genera las secuencias de fase adecuadas. Integra
toda la circuiteria de control necesaria para controlar motores paso a paso
bipolares y unipolares. Usado con un driver de puente H doble como el L298N
forma una completa interfaz entre un microprocesador y un motor paso a paso
bipolar.
El manejo de la corriente se consigue con un doble puente completo para controlar
alto voltaje y alta corriente diseñado para aceptar estándares niveles lógicos
TTL y manejar cargas inductivas tales como relés, solenoides, motores paso a
paso y de corriente continua.
Un truco para el manejo de motores bipolares con los driver
de 2 A. como máximo es para el control de corrientes superiores a 2A por fase, los
dos puentes H en el circuito integrado L298N se puede conectar en paralelo las
entradas y las salidas correspondientes. Sin embargo, para una distribución más
equitativa de la carga y de la temperatura en el chip, el controlador de la
bobina 1 deberá conectarse en paralelo con el controlador de la bobina 4, y el
controlador de la bobina 2 con el controlador de la bobina 3. Además, la
corriente total del driver debe ser reducida en 0.5A para permitir el
desequilibrio máximo posible de la corriente en cada puente H. Así, dos
circuitos integrados L298 pueden manejar motores de hasta 3.5A nominal por
fase.
Otra opción es construirnos nosotros mismos el Driver adaptado a nuestras necesidades, el problema será en que no todos disponemos del material necesario para construirlo con componentes electrónicos con soldadura SMD y debemos de aumentar el tamaño de los drivers.
Esto puede ser una dificultad si necesitamos conectar varios motores al mismo arduino y no disponemos de espacio suficiente para almacenarlos con seguridad y comodidad.
Si lo que necesitamos es optimizar el espacio, y disponer de un sistema fiable, lo ideal será adquirir los driver adaptados a los motores, ya que Arduino es capaz de manerar exactamente el mismo número de drivers sin depender de la potencia que consuman.
Esperamos que esta entrada sirva apra aclarar las dudas sobre si Arduino es capaz de manejar motores de gran potencia incluso para un uso industrial con CNC.
Enlace a otras entradas relacionadas:
Arduino Industrial: el Open SOurce se abre camino a nuevas fronteras.
Diagrama de conexión de la impresora 3D basada en Arduino
Elección de un transisotor: Calcular compatibilidad
Todo lo que necesitas saber sobre drones basados en Arduino
Un saludo,
Ingenio Triana.
Enlace a otras entradas relacionadas:
Arduino Industrial: el Open SOurce se abre camino a nuevas fronteras.
Diagrama de conexión de la impresora 3D basada en Arduino
Elección de un transisotor: Calcular compatibilidad
Todo lo que necesitas saber sobre drones basados en Arduino
Un saludo,
Ingenio Triana.
Muy buén articulo. Gracicas me sirvió mucho.
ResponderEliminarhola me gustaria saber si sabes de algun tipo de control a un motor paso a paso con un driver de estos requiero manipular las RPM
ResponderEliminarhola me gustaria saber si sabes de algun tipo de control a un motor paso a paso con un driver de estos requiero manipular las RPM
ResponderEliminarSuele haber dos métodos, de forma manual, muchos driver suelen llevar jumpers para regular la frecuencia de pulsos que regulan los pasos por milímetros del motor.
EliminarOtra forma es hacerlo mediante el firmware del código que controla los motores.
Desde Arduino, en el código de programación, se puede modificar los valores que regulan las ordenes que envia el driver al motor.
Espero que esta información te sea de utilidad.
hola si en el driver necesito manejar 51200 pasos y me los da pero a la hora de correrlo en el arduino no he podido manipular las RPM tal vz este usando una libreria que no sea la adecuada o no se q pasara me puedes recomendar alguna libreria.
ResponderEliminarHola,
ResponderEliminarNosotros con la librería que utilizamos nos sirve para el manejo de motores paso a paso en Arduino.
Si con esta librería no te funciona correctamente, dando por seguras las conexiones electrónicas, revisa el driver por si tiene algunos jumpers para regular la precisión de los motores.
Comentanos con más detalle si llegan a moverse, pero no de forma adecuada o si giran bien pero las medidas no las hace correcta...
Un saludo y esperamos tu respuesta.
Buenas Tardes Saludos, me gustaria construir una impresora 3d con algunas piezas electrónicas que ya poseo, pero no encuentro algun tutorial de como cablear un arduino uno con tres motores paso paso bipolares y tres drivers L298n
ResponderEliminarHola buenas tardes Ramsel10, en internet,podrás encontrar mucha información referida a estos componentes muy utilizados y genéricos.
EliminarEn el siguiente video tutorial te explica como conectar una placa Arduino a un driver L298n y esta a su vez a un motor paso a paso. A diferencia de tu caso, en el video utiliza un arduino Mega, pero sólo tendrás que identificar las salidas digitales que tu tienes asignada en tu placa Arduino UNO y listo.
https://www.youtube.com/watch?v=ArthFphoUfY
ok perfecto lo habia visto pero no entiendo como conectar los tres motores al mismo tiempo usando grbl y un arduino Uno, te agradeceria si podrias facilitarme un esquema de conexion
EliminarIngeniero. Gracias por su aporte. Yo le hago una consulta. el PAP que dispongo de reciclado para mi CNC no tiene muchos datos, asumí que anda por los 3.5 A. tiene un reductor de velocidad incorporado que gana fuerza, calculo que gracias a eso no perderé pasos, elegí un driver de 5A. por seguridad, del tipo que muestra en su foto con Arduino, yo ya habia hecho un prototipo y me perdia muchos pasos inclusive bajando la velocidad de trabajo, me dejó en duda el tema de los otros factores que influyen en la perdida de pasos. No sé si el reductor sería un problema al empezar a trabajar. Agradeceria su ayuda. cuando me responda este mensaje le agregaré fotos de mi maquina. Gracias.
ResponderEliminarHola, te comentaré las posibles causas de pérdida de pasos para un motor paso a paso.
EliminarLa causa más común suele ser una intensidad de trabajo inadecuada. Si tu motor es de 3.5A y le suministras 5A, puede que el torque que desarrolle sea tan fuerte, que a nivel interno a las bobinas del motor le cueste dejar al rotor gierar hasta enfretarse al siguiente grupo de bobinas, lo que se traduce que el motor hace movimientos bruscos al moverse, perdiendo pasos.
En la otra cara opuesta, estaría que tu motor de 3.5A le esten llegando una cantidad más baja, por ejemplo 2A, esto causaría que el motor parece que se mueve y a veces no llega a completar el movimiento, se nota que le falta fuerza, no gira correctamente.
Además de causas por una intensidad de trabajo incorrecta, a nivel lógico puede que la velocidad de funcionamiento, que traducido significa los tiempos en microsegundos que el controlador deja para que el motor gire y complete los pasos sea muy bajo. Esto provoca que las bobinas no se sincronizan con el giro del motor. Notaremos que el motor esta desfasado, y si le damos la instrucción de dar una vuelta, no le dará tiempo a completarla, el motor gira a trompicones.
Si además de estas causas sigue sin funcionar correctamente, puedes revisar la parte mecánica, como que el rotor este bien lubricado, y la reductora que lleva acoplada como comentas no genere un excesivo esfuerzo en el motor.
Para estas pruebas, es bueno tener conectado un amperímetro para comprobar la intensidad a la que funciona correctamente.
Espero que esta información te sea de utilidad.
Un saludo,
Ingenio Triana.