domingo, 10 de noviembre de 2019

Comparativa definitiva drivers : A4988 vs DRV8825

Antes que nada quiero decirles que esta información a sido copiada de la pagina taticboards.es, es un articulo que me pareció muy bueno y merece la pena rescatarlo ya que aveces hay paginas que están en linea y de pronto desaparecen, así que desde ya un agradecimiento y un saludo al autor.

Comenzamos: 

Estás imprimiendo una pieza y de repente suena un crujido en los motores.
La impresora tiembla y sabes lo que va a pasar. Pieza estropeada.
Todos hemos pasado por esto.
Los motores pierden pasos, los drivers están muy calientes, los motores están que arden.
Hoy vamos a solucionar esto de una vez por todas.
Y por eso he querido escribir este post desde hace tiempo.

Quiero que este blog tenga artículos extensos, con contenido que no encorarás en otros sitios. Quiero ayudarte a ser un maker premium.

El artículo de GRBL ya sale entre los primeros resultados de Google, y está recibiendo visitas. Es la página más visitada del blog.

Con tu ayuda, vamos a superarlo en visitas y posicionamiento.
Por eso voy a contarte todo lo que he aprendido durante estos meses. Te vas a convertir en un experto de verdad sobre drivers de motores paso a paso.

Porqué necesitamos un driver para los motores

Antes de entrar a fondo, tenemos que saber qué es un driver.

El chip de un arduino no es capaz de alimentar el movimiento del motor. Está diseñado para señales digitales, pero no para algo potente.

Por eso tenemos que meter algo entre el Arduino y los motores. Y aquí es donde entran los drivers.



Drivers en la placa TinyG

Los drivers actúan como una válvula que controla la corriente de los motores.

Cuando el Arduino manda la señal, el driver permite pasar la corriente desde nuestra fuente de alimentación a la bobina del motor.

De esta forma, el driver separa la corriente que alimenta al Arduino (normalmente de 5V), de la corriente que circula por las bobinas de los motores (normalmente de 12V)

Esto es muy importante.

Por este motivo, podemos alimentar un Arduino con un cable USB de 5V, pero necesitamos además una fuente de alimentación de 12V y mucha potencia para los motores.


Qué tipos de driver existen y cómo funcionan

Voy a comentar qué tipos de drivers podemos comprar.

Lo primero que hay que saber es que no es lo mismo un motor unipolar que un motor bipolar. Su funcionamiento es distinto, y por lo tanto, el circuito del driver también.

Motores Unipolares vs Motores Bipolares

Driver para un motor paso a paso unipolar
Los motores unipolares son los más sencillos de controlar.

La corriente circula por las bobinas siempre en la misma dirección, y el trabajo del driver se reduce a conocer qué bobina tenemos que activar en cada pulso.

En el mundo maker, el driver más conocido es el ULN2003A. Es un driver muy económico y muy sencillo de usar.

Motor unipolar 28BYJ-48 con el Driver ULN2003


Por dentro, este driver no es más que unos transistores Darlington, que es un tipo de transistor muy potente. Cuando el Arduino envía un pulso, los transistores dejan pasar la corriente a las bobinas, y el motor avanza un paso.



Esquema del ULN2003A

Además, igual que nuestra RAMPS 1.4 SB, este circuito incluye unos diodos de protección, para que la corriente almacenada en la bobina no venga de vuelta, y dañe nuestro circuito.

En realidad no es un driver de motores paso a paso. Puedes usarlo para cualquier proyecto que necesite encender y apagar algo. Lo puedes usar para activar relés, encender y apagar LEDs, etc.

Lo que pasa es que, con el programa adecuado, es sencillo controlar motores pap unipolares con un Arduino. Por eso es tan popular.




Cómo conectar un UNL2003


Driver para un motor paso a paso Bipolar
Estos drivers son los más complejos y los que vamos a analizar en este artículo.





Arduino CNC Shield Premium con motor paso a paso


Las bobinas de los los motores bipolares se pueden activar con la corriente norte-sur, o con la corriente sur-norte. El driver tiene que decidir la dirección de la corriente, para cambiar la polaridad del campo magnético que se produce dentro del motor.

El circuito más conocido para invertir la dirección de la corriente se llama Puente H.

Puente H
El Puente H es un conocido circuito que permite girar un motor eléctrico en ambas direcciones.

Una explicación muy por encima, el puente H tiene 4 transistores:
  • Si queremos que la corriente circule en una dirección, activamos el transistor de una esquina y el de la contraria.
  • Si queremos que la corriente circule en la dirección inversa, activamos los transistores de la otra esquina.
  • Y si activamos los 4 transistores, nos cargamos el circuito.

Concepto de Puente H




Aquí te dejo un vídeo en castellano que explica todo lo que necesitas saber sobre el Puente H:





Pues esto es lo que tiene un driver bipolar por dentro.


Si miramos el manual, nos encontramos con un par de Puentes H, uno por cada bobina del motor.


Esquema interno del Driver A4988, con los circuitos Puente H marcados.

Guía detallada de cómo se controla el movimiento de los motores


Vale, tenemos los dos puentes H que permiten que la corriente circule por el motor, pero ¿cómo controlamos el movimiento?

La inmensa mayoría de drivers se conectan a nuestro Arduino usando 3 cables.

El Arduino envía el pulso (STEP). Cada pulso le dice al motor que tiene que avanzar un micropaso.

Otro pin nos dice la dirección de avance (DIR). Si queremos ir en el sentido de las agujas del reloj, o al contrario.

El otro cable es el GND común, necesario para conectar las señales con el arduino.

De esta forma, cada vez que el driver recibe un pulso en el pin STEP, el circuito comprueba el voltaje del pin DIR, y alimenta las bobinas del motor en el orden adecuado.




Esto es para un simple pulso. Lo que hace el programa del Arduino es envíar pulsos muy rápido, haciendo que el motor avance a toda velocidad.

Pero los pulsos tienen que ir perfectamente sincronizados. Un fallo, y el motor colapsa.

Imagínate una competición de remo. Todos los miembros del equipo tienen que remar exactamente al mismo ritmo. Cuanto más rápido reman, más importante es que el ritmo esté sincronizado.

Cuando vas a toda leche, si un remo entra en el agua en el momento equivocado, el ritmo se rompe y la embarcación se vuelve loca.




Pues el ritmo de las bobinas es lo mismo. Con que uno de los pasos se descontrole, las bobinas se de-sincronizan, y el movimiento del motor se rompe.

Por eso, cuando perdemos pasos, los motores se bloquean y no pueden continuar, sin parar y volver a empezar.

Control de los micropasos
Cuando queremos que el motor avance un paso, permitimos que la corriente circule por la bobina, para que el motor avance.

Pero ¿qué ocurre si en vez de enviar toda la corriente, permitimos que circule sólo una pequeña cantidad?

En este caso, el campo magnético no es lo suficientemente potente para que el motor avance un paso completo. El motor va a girar ligeramente.

Este es el truco. El driver va ajustando la cantidad de corriente que circula por la bobina, haciendo que el motor vaya dando micropasitos, hasta terminar el paso completo.

El paso completo se divide en un número fijo de micropasos. El driver alimenta el motor de forma proporcional a una onda sinusoidal dentro de ese paso.

Con esto conseguimos que el movimiento sea fluido y suave.


Intensidad de corriente en cada Micropaso


Para ajustar la cantidad de corriente, el driver dispone internamente de un control de pulsos (PWM).

En este ejemplo, en el primer micropaso, mandamos una señal pwm del 38.3% de intensidad. El siguiente paso enviamos el 70.7% de intensidad, y finalmente, permitimos pasar el 100% de corriente.

Bueno, en la gráfica hay más micropasos, pero nos hacemos la idea.

El esquema del A4988 va tomando sentido.

Esquema del Driver a4988 con los Puente H en rojo y el control de PWM en verde


Control de Corriente
Estos drivers tienen además una gestión de corriente que controla la intensidad de amperios que pasan por las bobinas, para no estropearlos ni sobrecalentarlos.

Corriente máxima del motor


Recordemos la ley de Ohm: Voltaje = Intensidad x Resistencia.

Como la resistencia de las bobinas del motor es constante, el fabricante suele indicar el voltaje máximo, como una forma de indicarnos cuantos amperios soporta el motor.

Con los drivers modernos, no es necesario ajustar el voltaje. Los drivers miden la cantidad de corriente que pasa por la bobina, y cortan automáticamente cuando pasamos de un límite (que podemos ajustar).

Por este motivo, con estos drivers avanzados, podemos usar una fuente de 24V para alimentar un motor de 3V.

Este es el motivo de que todos los drivers incluyan un pequeño potenciómetro con el que podemos ajustar la intensidad máxima con el que vamos a alimentar el motor. Tenemos que calibrar la corriente máxima para cada modelo de motor.


Cómo se mide la corriente
Voy a hablar de cómo se hace un circuito para medir corriente, porque es algo que tiene implicaciones importantes.

Cuando la corriente atraviesa una resistencia, cae el voltaje. Es la típica práctica de electrónica.

Medimos el voltaje antes y después de la resistencia, y veremos que hay una variación.

Por la ley de ohm, la caída de voltaje es proporcional a la corriente y la resistencia. Así que, como la resistencia no cambia, la diferencia de voltaje antes y después de la resistencia es proporcional a la corriente.

Los chips necesitan unas resistencias externas especiales para poder medir esta corriente. Tienen que tener un valor exácto para que el chip pueda medir la corriente correctamente.






Como veremos más adelante, el valor de estas resistencias es muy importante! Es lo que permite regular correctamente la corriente del motor. Por desgracia, los drivers de dudosa procedencia tienen resistencias que vete tu a saber. Y eso hace que el driver se caliente más de lo necesario.

Resistencias de medición

Para que el driver pueda regular la corriente, es necesario incluir unas resistencias de medición adecuadas.

Control de Temperatura
Además, los drivers tienen un sensor de temperatura de seguridad. Apaga el chip cuando está demasiado caliente.

Por eso a veces nuestra impresora imprime mal, ya que el driver del extrusor se sobrecalienta, y durante un instante, deja de extruir.


Qué hay que tener en cuenta antes de comprar un driver

Cuánta corriente necesitamos
Tenemos que tener claro el consumo de nuestros motores para decidir qué driver vamos a utilizar.

Los fabricantes nos suelen indicar 2 valores.


Por un lado está la corriente que soportan de forma normal y sostenida. Digamos que es el consumo recomendado.

Por otro lado nos indican el peak current o corriente de pico, que es el máximo de corriente que soportan en un instante determinado antes de cortar.


Tienes que tener en cuenta entonces, la cantidad de corriente que puede dañar tu motor. Eso suele venir en las especificaciones. Por ejemplo, si tu motor permite hasta 1A, lo ideal es que busques un driver que soporte 1.5A de forma sostenida.


El chip a4988 es menos potente que el driver drv8825. Si tus motores tienen que hacer fuerza, como por ejemplo, en el extrusor de una impresora 3D, es mejor usar un driver drv8825 en este caso.


Cuánto calor disipamos
Cuando la corriente circula a través del driver, se produce mucho calor.

Cada chip disipa más o menos calor. Pero esto depende también del diseño de la placa donde va soldado el chip. Un driver con una placa con amplias zonas de cobre disipa más calor que un driver muy concentrado, aunque ambos utilicen el mismo chip.


Hay que tener en cuenta que, aunque solemos llamar a los drivers por el modelo del chip, hay diferentes modelos de placas para cada uno. Y lo que suele marcar la diferencia entre ellas, es precisamente cuanto calor que disipan





A4988 chinos con disipadores

Número de capas de cobre de la placa
El diseño de 4 capas disipa mucho mejor que los de 2 capas. Pero en general, es difícil encontrar diseños de 4 capas.

A parte del coste, uno de los problemas es que Eagle (el software de referencia en el mundo maker), no tiene una licencia libre para placas de 4 capas.


Por poner un ejemplo, Pololu tiene un driver a4988 de 2 capas, que vende en color verde, y un driver de 4 capas, que vende en color negro (black edition!). Esta versión soporta un 20% más de corriente.



Grosor del cobre de la PCB
La mayoría de PCBs se fabrican con 1 onza de cobre. Pero las PCBs que están pensadas para grandes cantidades de corriente se fabrican con 2 onzas (como nuestra ATX Board).


Los drivers de calidad usan una capa de cobre de 2 onzas, sin embargo los drivers más económicos se quedan con 1 onza de cobre.


Cuanto más cobre tenga la placa, mejor va a disipar el calor. De todos modos, hay placas que están mejor diseñadas que otras y disipan muy bien el calor con 1 onza de cobre.


Nivel de ruido de los motores
El control PWM envía pulsos de corriente al motor a altas frecuencias. Esto puede hacer que el motor actúe como un altavoz, y puedas escuchar un molesto pitido. Si además tienes varios motores, pues peor todavía.

Los DRV8825 son conocidos porque hacen más ruido que los drivers A4988. Ajustando la corriente con el potenciómetro podemos eliminar este sonido.


Los drivers TMC2100, menos conocidos y más caros, están muy focalizados en esto, en reducir estas frecuencias ruidosas.

Hablaremos más adelante de este problema.

Protecciones de corriente


Este es el punto más flojo de los drivers. Estos productos no son especialmente caros, y son de un precio bajo. Asi que no tienen ningun tipo de protección activa. Si lo pones al revés y enciendes la fuente, casi seguro que vas a cargarte el driver.

La filosofía de esto es que, cuesta menos comprar un driver nuevo, que diseñar un circuito que proteja el driver. Asi que mi consejo es comprar algun driver adicional de recambio.

Precio
Este es el punto que ajusta el resto. Todo lo del calor, corriente, etc está muy bien. Pero tiene un precio. Los drivers más potentes, son más caros. Y como tenemos que comprar unos cuantos drivers, este sobrecoste, se multiplica.

Hoy en día la diferencia no es muy grande, pero si no quieres hacer una gran inversión, lo normal es tirar de un a4988, y dejar el DRV8825 para cosas más serias.


Drivers basados en el chip Allegro A4988

Este chip es uno de los más populares en el mundillo maker, porque está pensado para los motores que usamos habitualmente.

Chip Allegro A4988



Es un driver que funciona muy bien en la mayoria de proyectos maker. Son ideales para motores tipo NEMA14, NEMA17 y NEMA23.

Voltaje máximo de motor                                      35V

Corriente Recomendada                                        1A

Máximo numero de Micropasos                              16

Datasheet del Allegro A4988


La ventaja principal es el precio. Son drivers que tienen un precio razonable. Y si no necesitas mucha corriente en tu proyecto, es la opción más sensata.

Son drivers muy silenciosos. Mi sensación es que, en general, los movimientos son más fluidos y suaves.


Pero tienen 2 problemas.


Por un lado, soportan poca corriente. Máximo 1A de forma sostenida, y 2A de pico.


Y al ser drivers pequeños, se calientan mucho, y es común usar disipadores. El problema es que el chip principal está diseñado para disipar calor por la parte inferior (y el disipador se coloca sobre el chip). Por este motivo, el diseño de la placa es más importante que el disipador en sí.


Es importante que los drivers estén bien refrigerados. Si ves que los disipadores están calientes, deberías de conectar un pequeño ventilador de 12V para que la electrónica tenga un flujo constante de aire y se mantenga bien refrigerada.



Pololu A4988


Este es el driver más popular, el más conocido, y el que ha definido el estándard de cómo usamos los drivers en el mundo maker.

 
Driver A4988 Verde


Página oficial del Pololu A4988


Es una plaquita con dos filas de 8 pines a cada lado.

Por un lado tiene los pines para controlar la parte digital, y por el otro tiene la parte dedicada a la corriente de los motores.

Incluye un potenciómetro para regular la corriente máxima que circula por las bobinas del motor.

En la parte digital tenemos los siguientes pines:

ENABLE   Permite que el driver pueda enviar corriente al motor

MS1    Configuración de los micropasos

MS2    Configuración de los micropasos

MS3    Configuración de los micropasos

RESET   Normalmente conectado a Sleep para que el driver funcione

SLEEP   Normalmente conectado a Reset para que el driver funcione

STEP    El arduino manda un pulso para que el motor avance un paso

DIR    Indicamos la dirección de giro del motor que queremos


En la parte de potencia tenemos estos pines:

VMOT    Alimentación de los motores (entre 8V y 35V)

GND    Ground de la parte de motores

2B    Bobina 2

2A    Bobina 2

1A    Bobina 1

1B    Bobina 1

VDD    Alimentación de la parte digital (5V)

GND    Ground de la parte digital


Todos los demás drivers son copias de este primer modelo. Por este motivo, escucharás a la gente más experta hablar de los pololus como una forma de referirse a los drivers.

Esquema del Pololu a4988


Página oficial del Pololu A4988


El driver es un reemplazo del orginal driver A4983. El driver a4988 es una actualización de este controlador, y hoy en día es muy raro encontrar los antiguos a4983.

Existe una versión black edition, que soporta un 20% más de corriente. Esto es porque usa una PCB de 4 capas, en vez de la versión de 2 capas del modelo verde.

StepStick A4988.

Aunque los drivers de Pololu son los primeros y los que han marcado el camino, lo más seguro es que tengas unos drivers del tipo StepStick.


 
Prototipo de A4988 StepStick de Staticboards

Es la versión open hardware del diseño de Pololu, y es muy popular en el mundo maker (sobre todo en los drivers que vienen de Aliexpress).

Ya que es la versión que fabrican los chinos, casi diría que son los más abundantes, sobre todo en las impresoras 3D lowcost.



El chip A4988 en teoría soporta un máximo de 2A. Pero esto es si usas una PCB de 4 capas y 2 onzas de grosor del cobre.

Recordemos que cuanto más cobre incluimos en la PCB, vamos a disipar más calor, y el driver se calentará menos. Pero también va a ser más caro de fabricar.


Los StepStick están diseñados para PCBs de 1 onza. Esto hace que estén pensados para soportar 1A de corriente.


Por este motivo, mucha gente no quiere trabajar con los drivers chinos, porque se calientan una pasada. Desde luego, no están pensados para extruir plástico.


¿Cómo diferenciarlos? los a4988 originales de pololu se ven a primera vista porque tienen una zona amplia de cobre entre el chip y los pines. En cambio, el driver StepStick tiene las dos resitencias de medición ahi metidas.


Diferencias entre el Pololu a4988 y el StepStick

El stepstick está diseñado con unas resistencias para medir la corriente de 0.02 ohmios, y los drivers de Pololu incluyen unas de 0.05 ohmios. Esto hace que la fórmula para calibrar el voltaje del potenciómetro sea distinta.


Pololu a4988: VREF = Corriente máxima / 2.5


StepStick a4988: VREF = Corriente máxima / 1.6


El StepStick está diseñado para un máximo de 1A de uso normal. No es muy recomendable usarlos para una CNC que va a cortar madera o metal, o para extruir plástico. Es muy recomendable usar unos disipadores para ayudar a disipar calor.


Drivers basados en el Texas Instruments DRV8825

Este es el chip más popular entre los usuarios más avanzados de CNC y de Impresoras 3D.

Si necesitas fuerza en tus motores, no lo dudes. Este es el driver que necesitas.



Texas Instruments DRV8825

Tiene dos ventajas fundamentales sobre el chip de Allegro.
  • Es más potente. Permite una corriente de pico de 2.5A.
  • Con la misma configuración de jumpers, permite 32 micropasos, que nos va a dar un movimiento más fluido.
Voltaje Máximo del motor             45V

Corriente Recomendada               1.8 A

Máximo número de micropasos     32


El chip es más grande, con lo que ayuda a disipar mejor el calor. En una impresora 3D, es raro que necesites disipadores para mover los motores.

Datasheet del DRV8825

Modo de Baja Corriente en 24V
Si tienes un voltaje alto, como 24V, el driver está configurado a 32 micropasos, y la corriente limitada a menos de 1.5A, es posible que el driver pierda pasos.

El chip incluye modo Fast Decay para solucionar esto. Sin entrar en los detalles, solo tienes que saber que internamente cambia la forma en la que limita la corriente.


Por desgracia, hay que hacer unos hacks un poco raros en los drivers para poder usarlo. Si vas a usar motores de 24V, escribe un comentario en el artículo y lo probamos 🙂


Driver Pololu DRV8825

Este driver es un reemplazo directo del Pololu a4988. Está diseñado para mantener 1.5A de corriente sin necesidad de disipador. Es totalmente compatible, y podemos intercambiarlos en nuestras placas controladoras.


 
Pololu DRV8825


Las resistencias de medición son de 0.100 ohmnios. Pololu ha decidido usar estas resistencias más altas para poder funcionar mejor cuando el driver funciona con muchos micropasos, y poca corriente.

El voljate de referencia está calibrado a 0.5V por cada amperio de corriente máxima.

En la parte digital, tenemos estos pines:

ENABLE       Permite que el driver pueda enviar corriente al motor

M0              Configuración de los micropasos

M1             Configuración de los micropasos

M2             Configuración de los micropasos

RESET        Normalmente conectado a Sleep para que el driver funcione

SLEEP        Normalmente conectado a Reset para que el driver funcione

STEP         El Arduino manda un pulso para que el motor avance un paso

DIR           Indicamos la dirección de giro del motor que queremos

En la parte de corriente del motor tenemos:

En los pololus este pin es de entrada de corriente!


VMOT      Alimentación de los motores (entre 8V y 45V). Internamente también alimenta a la parte digital.

GND        Ground del voltaje de entrada

B2           Bobina B

B1           Bobina B

A1           Bobina A

A2           Bobina A

FAULT      Manda un pulso si se ha perdido un paso.

GND        Ground del voltaje de entrada



Cómo tienes que conectar el Pololu DRV8825. Nota que el pin FAULT recibe 5V.


Este driver ha sufrido algunas revisiones, sobre todo para dar más posibilidades con los pines de SLEEP y FAUL propios del chip. Pero son cambios que sólo afectan a los usuarios más avanzados.

Aunque el chip permite 2.5A de potencia máxima, Pololu ha cambiado las resistencias que se usan para medir la corriente. Cuando ponemos el potenciómetro a máxima potencia, el driver de Pololu limita a 2.2A.

Driver Cooldrv de Kliment

Estos son los drivers que más me gustán de todos.




Prototipo DRV8825 Cooldrv de Staticboards




El diseño de la PCB es un poco mejor que el diseño original de Pololu. Incluye una zona muy grande de disipación, que ayuda mucho. Esto es lo que más me gusta.

Podéis ver más información en el repositorio de github.

El diseño del potenciometro está calibrado a 0.25V por cada amperio de corriente. Esto es distinto a los drivers de pololu, que están calibrados a 0.5V por cada amperio.

Hace un tiempo se organizó en la lista de CloneWars una compra conjunta de drivers de este tipo que tuvo mucho éxito.

Francisco Malpartida se curró una pedazo de review de los Cooldrv. Midió el ruido, el consumo, la temperatura… Os la recomiendo.

Calibra el DRV8825 para reducir el ruido


Es una de las preguntas recurrentes que me suele hacer la gente. ¿Por qué pitan mis motores?

Como vimos en el artículo, los drivers usan pulsos PWM para encender y apagar los puentes H y alimentar los motores.

Por desgracia, en una máquina CNC o en una impresora 3D, tenemos los mismos elementos que en un altavoz.

  • Un imán (el rotor del motor)
  • Un eletroimán (el estator del motor)
  • Una señal modulada (la corriente del PWM).
Asi que cuando el driver manda los pulsos, el motor actúa de forma similar a un altavoz, y podemos escuchar un pitido.

En general, esto se soluciona ajustando la corriente máxima del driver con el potenciómetro. Bajando la corriente, por decirlo de alguna manera, es como bajar el volumen de nuestra cadena de música.

Pero cuidado, porque si bajamos demasiado, el motor no va a tener la fuerza necesaria, y podemos perder pasos.

Si esto no lo soluciona, tenemos que mirar otros motores. El parámetro clave aquí es la inductancia del motor. A menos inductancia, el chip va a enviar más pulsos, y el pitido dejará de ser audible.

Los drivers A4988 tienen el mismo problema que los DRV8825. Pero al ser menos potentes, tienen menos volumen. Asi que no escuchamos nada.


Diferencia entre el DRV8825 y el A4988

Voy a hacer una comparativa detallada de las diferencias entre los drivers.

He preguntado la opinión a la gente de twitter. Este es el resultado:



Cuando configuramos nuestra impresora 3D o nuestra CNC, tenemos que recordar los DRV8825 tiene 32 micropasos, y el a4988 tiene 16 micropasos.

El DRV8825 funciona con 45V, y el a4988 sólo 35V. Asi que puedes usar una fuente de 36V para motores más grandes.


Cuidado con el voltaje


Aunque el driver soporta más de 12V, tienes que saber que el Arduino no aguanta esos voltajes.


Por ejemplo, si usas la RAMPS 1.4 con un Arduino, tienes que hacer algunas adaptaciones para no quemar el regulador de voltaje del Arduino Mega 2560.



El DRV8825 puede manejar 1.5A sin necesidad de un disipador adicional. El A4988 sólo llega a los 1.2A


Los tiempos de las señales son ligeramente distintos. Los DRV8825 necesitan un tiempo minimo de pulso de 1.9µs y el A4988 de 1µs. Esto puede afectar a la velocidad máxima a la que puedes mover el driver, ya que tienes que esperar a que el driver detecte el pulso el doble de tiempo.


Los textos de las bobinas son distintas. Uno identifica a la bobina como A/B y el otro como 1/2. Asi que tenemos que el DRV8825 pone A2 A1 B1 B2, y el A4988 pone 1B 1A 2A 2B. Repásalo y verás que es lo mismo.


Esto es ya muy técnico. El pin para alimentar la parte digital del A4988, se usa como salida FAULT en el DRV8825. Sí, el DRV8825 sabe cuando ha ocurrido un fallo, pero el Marlin no está preparado para hacer nada al respecto (al menos, que yo sepa).


Seguro que lo has pensado. Pero si el pin FAULT es una salida, y nosotros le damos voltaje, ¿se quemará? No hay problema porque hay unas resistencias para proteger el chip.



¿Los drivers A4988 y los DRV8825 son compatibles?

Esta es una pregunta típica. Suelen preguntarme si la RAMPS 1.4 SB es compatible con los drivers DRV8825.


Si, los drivers son compatibles, y puedes intercambiarlos sin problema. Puedes usar la RAMPS 1.4 con drivers A4988 y con los DRV8825.


Pero hay que tener una serie de recomendaciones.


Advertencia


En general, el potenciómetro de los a4988 y el potenciómetro del DRV8825 van en lados opuestos.


Es fácil que usemos este potenciómetro de referencia, y si cambiamos de modelo, o usamos una fotografía de ejemplo, vamos a conectar el driver al revés.






Potenciometro en el DRV8825 y el a4988. Como ves, van en lados opuestos.


Es la forma más común para destruir para siempre el driver.

A nivel configuración, sólo existe una diferencia: los micropasos.

Cuando tenemos configurado el a4988 para 16 micropasos (lo normal, con los 3 jumpers activados), tienes que recordar que el DRV8825 funciona con 32 micropasos.


Así que tendremos que cambiar nuestra configuración en el GRBL, o en el Marlin, y duplicar los pasos por milímetro. Es un cambio de software.


Todo lo demás, es exáctamente igual. Plug and play.


SilentStepStick Trinamic TMC2100

Este es uno de esos rivers raros que sólo encontrarás entre los más sibaritas de las impresoras 3D



Trinamic TMC2100


Voltaje Máximo del motor               46V

Corriente Recomendada                 1.77A

Máximos número de Micropasos      256


Personalmente no he probado estos drivers, aunque la verdad que les tengo muchas ganas.

Lo primero que tenemos que destacar es la cantidad de micropasos. Puede llegar a los 256!! Aunque tendríamos que probar qué tal va el torque y si puede afectar a la potencia del motor.

El driver tiene un sistema que reduce el consumo de corriente cuando está parado. Un factor muy importante para que los motores no se calienten.

Además tiene un sistema que reduce el ruido (de ahí el nombre de silent). Algo que podemos encontrar en los drivers más profesionales como los Gecko. De todos modos, hay que hacer pruebas para ver si eso puede influir en el rendimiento.

El driver está montado al revés. Esto es, el chip va en la parte inferior para que coloques el disipador hacia arriba. Esto se supone que es mejor, porque el chip disipa el calor por la parte inferior.

Este chip es muy configurable y todo eso. Pero para mantener la compatibilidad con los drivers de pololu, la verdad que se han complicado un poco. Tengo que tener uno entre mis manos para entender bien todos los modos de funcionamiento.

¿Lo malo? Por un lado el precio. Son caros y andan sobre los 10€ cada uno. Además, son difíciles de conseguir y no hay muchas tiendas que los vendan.


Problemas que puedes encontrar si compras un driver chino baratos

Con diferencia, la mayoría de los problemas con los drivers chinos viene de las resistencias de corriente. Ahi hay de todo. Los hay que tienen resistencia de 0.1, de 0.2 y de 0.05 ohm. Y eso afecta mucho a la gestión de corriente de motor. Normalmente, si los drivers se calientan demasiado, es por este motivo.

Otro problema es el flux que se usa en la soldadura. Es casi imposible que el driver venga limpio. Los flux modernos no corroen el cobre, pero a saber qué lleva ahi metido. Si usan resinas, con el tiempo, se va a estropear el driver. No está de mal un lavado con ultrasonidos, pero con el tiempo que tardan en enviar los drivers de China, el flux estará seco y te va a costar limpiarlo.

Otro problema son las unidades defectuosas. Estos drivers ni se prueban ni nada, y ocurre que vienen mal soldados, incluso con la pasta de soldadura, o con un cortocircuito.

Consejos para no destruir tus drivers




Driver A4988 quemados (probablemente los dos Puente H).


El que escribe este artículo ha testeado unas 4000 RAMPS, una a una, y tiene bastante experiencia en qué puede ir mal.

Voy a darte unos consejos útiles para que tus drivers tengan una vida sana.

Deja tus drivers en paz

El principal motivo por el que los drivers se estropean es porque andas manipulándolos.

Lo ideal es calibrarlos. Asegurarse que tienen una correcta disipación. Que el cableado de los motores es robusto. Y no volver a meter la pezuña ahí 🙂

El primer motivo por el que los drivers se mueren, es porque desconectas el motor cuando todavía tienes la corriente encendida. Aunque los motores no estén girando, recuerda que hay corriente circulando para mantenerlos fijos. Apaga todo antes de desconectar nada.

Otro motivo es porque los has conectado al revés. El driver tiene por un lado la parte digital, y por el otro la parte de potencia. Si los conectas al revés, al driver le entran 12V por la parte digital. Plof. Tengo que decir que sobre todo ocurre con los drivers a4988. Los drivers DRV8825 parecen más resistentes a este accidente.

No uses el potenciómetro como referencia para conectar los drivers.

El principal motivo porqué conectamos el driver al revés es que usamos el potenciómetro como referencia. Miras una foto de internet y pones el driver en la misma dirección que la foto.
No lo hagas!
Algunos drivers tiene el potenciómetro a la derecha, otros a la izquierda. Mi consejo es que mires el pin EN, o DIR (están en la esquina), o que mires los pines A2A1B2B1 que van justo al lado del conector del motor.

El siguiente motivo es ajustar el potenciómetro con un destornillador metálico. Sobre todo con estos drivers chinos que traen un potenciómetro de hojalata. Es tocar con los bordes, y pataplof.

Por este motivo, los drivers de staticboards usan unos potenciómetros de plástico 🙂

Otro motivo es el calor. Los drivers tienen un protector de temperatura, pero no es infalible. El cobre del driver se calienta y continua calentando el driver. Poco a poco se puede acabar con el chip. Revisa que el chip no esté demasiado caliente, y usa disipadores o incluso un ventilador.

Espero que con estos consejos, tus drivers tengan una vida feliz.
Cómo calibrar los drivers paso a paso


Voy a explicar cómo calibrar los drivers de los motores paso a paso. Quiero decir que voy a explicar, paso a paso, como calibrar los motores (que chiste más malo jloliiiin!)

Tienes que calibrar el driver


El driver permite pasar más o menos corriente a tu motor.

No todos los motores están preparados para soportar la misma cantidad de corriente contínua circulando por las bobinas. Si circula demasiada corriente los motores se van a sobrecalentar.

Unos drivers calibrados mantienen los motores a una temperatura adecuada.

Qué necesitas para calibrar un driver

Antes de ponerte a calibrar los drivers, asegúrate de tener a mano:
  • Fuente de alimentación. Lo ideal es tener una fuente que mida la corriente.
  • Polímetro, capaz de medir amperios.
  • Pequeño destornillador. Los mejores son los de cerámica, porque te evitas hacer cortocircuitos. Si no, tienes que apagar la fuente cada vez que le vas a meter mano.
  • La placa para conectar el driver, como el Arduino CNC o la RAMPS 1.4.
  • El motor paso a paso que vamos a usar en el día a día (no uses otro motor distinto)
  • Los drivers.
Cómo medir los Amperios


Medir la corriente con el polímetro es distinto que medir voltaje.

Lo que tenemos que hacer es que la corriente pase a través del polímetro. (Multi tester)

El multímetro tiene 3 entradas. Una negra, es el común. Otra para medir voltaje (que es donde suele estar la sonda roja) y otra para medir amperios, que suele poner A.

  • Conecta la sonda negra a COM en el polímetro (siempre tienes que tener el negro en COM)
  • Conecta la sonda roja a la entrada de amperios en el polímetro.
  • Selecciona los amperios en el polímetro.
  • Usa el negro y el rojo como si fuese el cable positivo que une la fuente de alimentación con tu electrónica.
Para calibrar los motores, voy a darte dos opciones. Por un lado, una guía sencilla, de andar por casa, de cómo calibrar los drivers de forma rápida. Y por otro, una guía de ingeniero electrónico, con detalles, mediciones y todas las fórmulas.

Versión Quiero imprimir ya


Nuestro objetivo es bajar la corriente todo lo que podamos, mientras que los motores no pierdan paso (esto es, que el motor intente mover la impresora 3D y no sea capaz porque le falta fuerza).

Solo conectaremos un motor de cada vez. Vamos calibrando los motores uno a uno.

  • Conectamos el negativo de la fuente, al negativo de nuestra electrónica
  • Conectamos el positivo de la fuente, al positivo del polímetro.
  • Conectamos el negativo del polímetro, al positivo de la electrónica.
Cuando nos conectamos a la impresora, con el (Pronterfce o el Repetier), el motor está fijo. Ya está en máximo de consumo.

En una impresora, los valores son:

  • Para el eje X e Y, deberíamos de tener un consumo de 0.2A (ó 200 miliamperios).
  • Para el eje Z, deberíamos de tener un consumo de 0.4A (porque vamos a tener 2 motores) 
  • Para el eje del extrusor, deberíamos de tener 0.4A (necesita más fuerza que los otros motores)
Cómo ajustar el driver paso a paso
  1. Apagamos la fuente de alimentación.
  2. Con el destornillador, giramos ligeramente el potenciómetro del driver.
  3. Encendemos y vemos el consumo en el polímetro.
  4. Apagamos la fuente de nuevo. Giramos ligeramente el potenciometro. Encendemos y volvemos a medir.
  5. Así hasta que tengamos el valor deseado en cada eje.
Os incluyo el mítico videotutorial de Obijuan donde nos explica cómo calibrar los motores para la impresora. 


Versión Ingeniero Pro

RMS (Root Mean Square)

Voy a tener que comentar un detalle importante para medir la corriente de un motor.

El datasheet de los drivers nos indica la corriente de pico. Pero este valor sólo es útil si enviamos el 100% de corriente de forma contínua.


La realidad es que si tenemos micropasos, no enviamos la corriente al 100%. Por eso, medimos la corriente media, y no la corriente de pico.


Si quieres conocer más sobre esto, puedes mirar el artículo sobre la média cuadrática o sobre el Valor Eficaz de la corriente.


Nos ponemos en modo ingeniero, y queremos medir la corriente. Descubrimos que si ajustamos el voltaje de referencia para que limite a 1A, y medimos la corriente, vamos a medir como máximo 1A * sqrt(2)/2 = 0.7A


Si mides la corriente consumida con un amperímetro, tienes que tener esto en cuenta para no volverte loco ajustando el potenciómetro más de lo necesario.


Este punto me ha causado una cantidad enorme de correos sobre cómo calibrar el driver usando el voltaje de referencia.

En el 99% de los casos, no tienes que calibrar el driver de forma exácta. Sólo tiene sentido si tienes una tienda y tienes muchas máquinas que calibrar (es más rápido usar un multímetro). Pero en tu caso, es muy probable que no sea necesario.

Lo primero: ¿conoces el consumo de tu motor de forma exácta?

El consumo del motor no es lo que dice el datasheet. El valor del datasheet es el consumo máximo.

Pero cuando tu máquina está funcionando va a consumir mucho menos. Si es una cortadora láser, consume poco, si está cortando madera, consume algo más, y si corta metal, entonces consume más todavía.

Una diferencia de un 10% no hace tu máquina mejor o peor. Por calibrar el driver usando un voltaje exácto, tu máquina no va a funcionar mejor.

Si queremos calibrar el driver de forma exacta, tenemos que medir el voltaje que hay entre GND y el potenciómetro del driver.

Tenemos que mirar la fórmula de referencia de cada driver. No del chip, si no del modelo de PCB. Por ejemplo, en los drivers de pololu, 0.5V por 1A de corriente. Los cooldrv drv8825 usan 0.25V por cada amperio.

  • Medimos el voltaje de referencia
  • Giramos el potenciómetro hasta que ese voltaje sea el que hemos calculado.
  • Ahora verificamos si la corriente es la correcta con el amperímetro (recordad lo del RMS)
Lo ideal es medir la corriente en uno de los cables del motor. Para esto tendríamos que cortar el cable del motor, y conectar un extremo del cable a la sonda roja, y el otro extremo a la sonda negra.

Si medimos la corriente sin micropasos (esto es, quitando todos los jumpers), es posible que el driver nos dé más o menos un 70% de la corriente.

En este vídeo de Pololu puedes ver todos los detalles de cómo hacer esto.

Conclusión final

Este artículo ha sido una completa locura.

Me ha llevado semanas escribir algo asi. Buscar imágenes, formatear los textos, organizar la información… de locos.

Pero ha merecido la pena. Porque si te has leído este post, eres un completo experto en drivers. Eso es lo importante.

Ideas que has aprendido:

  1. Sabes como funciona un driver por dentro
  2. Conoces las diferencias entre los drivers
  3. Sabes que el DRV8825 tiene 32 micropasos
  4. Sabes como no quemar un driver
  5. Puedes calibrar un driver como los profesionales
Ahora te toca a tí

Si has aprendido todo esto y crees que merece la pena, ayúdame a compartir este artículo.

Mándaselo al que está montando su impresora 3D, o a quién piensas que le va a sacar provecho.


Si quieres, puedes contarme tu opinión sobre cuál de los drivers que comentamos es tu preferido. Con eso me ayudas a decidir qué versión de driver debería de fabricar StaticBoards.

¿Cuál es tu driver preferido?*

Pololu A4988
Stepstick A4899 Chino
Pololu DRV8825
Cooldrv DRV8825
SilentStepStick Trinamic TMC2100

Y también te invito a escribir tu opinión. A contar al resto de lectores qué driver es el que más te gusta, cuál estás usando ahora mismo y qué experiencias has tenido.

O si tienes algún problema con los drivers ahora mismo. ¿Hay algo que falta o que no te ha quedado claro?

Y una pregunta para el final que me gustaría conocer. ¿Qué opinas de un artículo asi de largo? Prefieres este tipo de contenidos, o prefieres algo más corto?

Un saludo, y muchas gracias por leer todo esto hasta el final!

No hay comentarios: