Guía definitiva para comprar drivers DRV8825 ó A4988

La comparativa definitiva de los drivers para motores paso a paso : DRV8825 vs A4988

Muy buenos días

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.

Drivers Staticboards PCB
Paneles de PCB para drivers de StaticBoards

Si, he pedido PCBs para montar drivers, para estudiar a fondo cómo solucionar todos los problemas.

Quiero que este blog tenga artículos extensos, con contenido que no encotrará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.

Empezamos

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
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
Si no conoces la diferencia, te invito a leer el post anterior sobre motores paso a paso.

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.

28BYJ-48 28BYJ48 DC 5V 4 Phase 5 Wire Arduino Stepper Motor with ULN2003 Driver Board
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
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
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
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
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.

Driver A4988 Puente H
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.

step/dir

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 exáctamente 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.

equipo de remo harvard

Pues el ritmo de las bobinas es lo mismo. Con que uno de los pasos se descontrole, las bobinas se desincronizan, 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.

microstepping current waveforms
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
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. Asi 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.

"<yoastmark

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 con disipadores
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
Chip Allegro A4988

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

Voltaje máximo de motor35V
Corriente Recomendada1 A
Máximo numero de Micropasos16

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
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:

ENABLEPermite que el driver pueda enviar corriente al motor
MS1Configuración de los micropasos
MS2Configuración de los micropasos
MS3Configuración de los micropasos
RESETNormalmente conectado a Sleep para que el driver funcione
SLEEPNormalmente conectado a Reset para que el driver funcione
STEPEl arduino manda un pulso para que el motor avance un paso
DIRIndicamos la dirección de giro del motor que queremos

En la parte de potencia tenemos estos pines:

VMOTAlimentación de los motores (entre 8V y 35V)
GNDGround de la parte de motores
2BBobina 2
2ABobina 2
1ABobina 1
1BBobina 1
VDDAlimentación de la parte digital (5V)
GNDGround 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
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.

a4988 stepstick staticboards
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.

Esta es la página oficial de StepStick.

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
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 motor45V
Corriente Recomendada1.8 A
Máximo número de micropasos32

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
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:

ENABLEPermite que el driver pueda enviar corriente al motor
M0Configuración de los micropasos
M1Configuración de los micropasos
M2Configuración de los micropasos
RESET Normalmente conectado a Sleep para que el driver funcione
SLEEP Normalmente conectado a Reset para que el driver funcione
STEPEl Arduino manda un pulso para que el motor avance un paso
DIRIndicamos 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!

VMOTAlimentación de los motores (entre 8V y 45V). Internamente también alimenta a la parte digital.
GNDGround del voltaje de entradaB2Bobina BB1Bobina BA1Bobina AA2Bobina AFAULTManda un pulso si se ha perdido un paso.
GNDGround del voltaje de entrada
Esquemático del Pololu DRV8825
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.

DRV8825 Staticboards
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:
encuesta-drivers-twitter

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
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.

Asi 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
Trinamic TMC2100
Voltaje Máximo del motor46V
Corriente Recomendada1.77A
Máximos número de Micropasos256

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 Quemado
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.

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 ajustanto el potenciómetro más de lo necesario.

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.

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!

 

153 commentarios

      • Tenía una pregunta, para enviar steps al a4988 envio un pulso que pasa de LOW a HIGH sin ningun delay, con el drv8825 seria necesario meter un delayMicroseconds (2); entre el cambio de LOW a HIGH?
        Gracias

        • Hola,

          Pues tendría que probarlo. Un delay creo que es demasiado (a parte que es impreciso). Lo que haría es usar la interrupción del timer para cambiar el estado del pin a la velocidad que necesitas.

      • la velocidad depende de muchos factores. En general, los motores paso a paso no son muy rápidos. Tienes que reducir la fricción al máximo, lubricando muy bien la máquina, para que el motor no se atranque cuando va más rápido.

        los drivers sólo te van a dar más fuerza, no más velocidad

        un saludo.

  1. Brutal chicos como siempre!! Una duda si que tengo, vengo teniéndola desde hace mucho y voy a aprovechar para soltarla aquí jeje. Para calibrar los drivers de la impresora no deberíamos moverlos? Esto es, si estoy calibrando el eje z darle a mover eje z por ejemplo.

    • Hola!

      El motor paso a paso consume máxima energía cuando está fijo, y el driver tiene que permitir circular la corriente por las bobinas.

      Ahora bien, hay drivers que detectan esta situación, y reducen la cantidad de corriente, entrando en un modo especial.

      Por eso, la respuesta correcta es “depende” 🙂 Lo que yo hago es mover los motores y ver el máximo consumo.

  2. Me ha encantado el artículo y para nada se ha hecho largo.

    Muy completo y bien estructurado, yo apenas he empezado al 100% en este mundillo y no tengo mucha idea de cómo funcionan las placas, el artículo me ha parecido genial, útil y muy interesante.

    Te animo a que sigas escribiendo y ayudándonos a seguir aprendiendo.
    Mil gracias por compartirlo!

  3. un post genial y muy bien explicado, sólo tengo una duda o precisión que hacer, cuando dices “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” entiendo que estás ajustando la intensidad pwm que genera el driver y la estás midiendo con un multimetro normal. En ese caso el multimetro mide el valor eficaz o rms y por tanto si pretendes ajustar el valor máximo o de pico tendrías que multiplicar la lectura del multimetro por sqrt(2), es decir, ajustar la intensidad para una lectura del multimetro de 1.4142 A ( 1 A * sqrt(2) ) así que no entiendo de donde sacas los 0.7 A ni la fórmula 1 A * sqrt(2)/2 Por otro lado al ser una señal pwm no es una sinusoidal pura y por lo tanto el multimetro no te va a dar el valor eficaz real salvo que uses un multimetro true rms

    • Hola!

      Veo que alguien se lee los articulos con pasión 🙂

      no tengo un multimetro ni una fuente que me permita medir true RMS, asi que en esto en concreto me he fiado de un articulo que escribió el autor del cooldrv. También estuve pensando en esto, y creo que viene de tener 2 bobinas en vez de una. O sea, el driver limita a 2.5A, pero cada bobina usará la mitad. Pero es algo que tendría que confirmar al 100%

      • vale ahora ya entiendo lo de dividir por 2, será que la corriente se reparte entre cada bobina como dices, pero si tu mides la corriente que se entrega al motor ¿no deberías medir la total? es decir, ¿el límite total del driver es 1A aúnque luego se reparta a 500mA para cada bobina o el límite de 1A es por bobina?

        • Aqui habría que leer a fondo el datasheet. He visto que a veces se habla del limite de corriente por bobina, y otras del limite total.

          Como hay 2 resistencias de medición, entiendo que VREF limita la corriente por bobina.

          Y el limite de 2.5A absoluto, quizás sea el limite global… pero tendríamos que mirar el datasheet.

    • Bueno, lo que he dicho de los multimetros y el valor rms sólo aplica a alterna, el pwm aplicado entiendo que es continua así que olvida lo que he dicho, pero sigo sin ver de donde sacas la fórmula y el valor de 0.7 A

      • Pololu siempre ha recomendado ajustar la corriente basándose en la tensión en el potenciómetro que genera la referencia de tensión que el chip emplea para ajustar la corriente.

        Intentar medir la corriente mediante una medida en serie con un amperímetro (que cueste menos de unos 150 euros) es un ejercicio de frustración porque como apunta Pep el instrumento no es capaz de medir una señal PWM.

        Pero es que además el motor tiene dos bobinas, que se activan en momentos diferentes y que mientras que una puede estar consumiendo corriente la otra la puede estar devolviendo a la fuente, lo que nos lleva que incluso con un instrumento capaz de medir el auténtico valor RMS la medida poco tiene que con la corriente que circula por cada bobina (para ello habría que conectar en serie con una de las bobinas).

        Por contra, medir la tensión de referencia es fácil y nos da un valor preciso, tan sólo tenemos que conocer cual es la regla de equivalencia de los voltios medidos en amperios por bobina.

        Si el potenciómetro es metálico es posible realizar la medida de su tensión mientras se realiza el ajuste sin más que colocar la punta roja del voltímetro al eje del destornillador metálico con el que se realiza el ajuste mientras la punta negra se coloca a GND (por ejemplo en la fuenta).

        • Lo primero, Javier, felicidades por el artículo tan bien currado. Hay libros que sólo vale la pena leer por partes que podrían ser este artículo.

          Coincido con _misan_ después de probar ambos métodos: en la práctica uso el voltaje de referencia con el potenciómetro y de paso me ahorro el engorro de poner el polímetro en medio del circuito. A lo mejor soy un loco y estoy haciéndolo mal, pero para hacer medición/giro de potenciómetro, en vez de apagar la fuente de alimentación, desactivo la corriente en los motores enviando M84 a Marlin (de momento no ardió nada 🙂

          En la lista de CloneWars ya se está cociendo una “conjunta!” de TMC2100. Si actualizas el artículo con él añadido avisa por los canales habituales 😉

  4. Impresionante artículo! aunque yo lo llamaría más bien “capítulo” de un más que viable libro sobre impresión 3d de staticboards, porque a este paso se va a convertir en la guía de referencia en español.

    Muy ameno y fácil de leer, y con muchísima y valiosísima información (los consejos que viertes fruto de estos años de experiencia dan mucho valor añadido)

    Felicidades por el trabajo que ha debido suponer, y ánimo!

  5. Saludes.

    Que buen tutorial, lo he leído hasta el final aclarando muchas dudas. Tengo una pregunta . Quiero comprar una impresora 3D , soy un poco nuevo en esto . Me recomiendas alguna tienda-online y una versión de impresora 3d a comprar?. Te hablo desde colombia

  6. Madre mía!
    Muy justo el estatus de “definitiva”.
    No soy la persona más indicada para decirlo, pero me parece un referente en la materia.
    Mucho ánimo para seguir así!

  7. ¡Wow! Pedazo artículo, como siempre.

    No creo que llegue a 3.000 RAMPS, pero con las 1.000 o así que llevo, suscribo tus palabras 😉

    Sigue con estos artículos, porque la verdad es que estás generando un contenido estupendo.

    PD.: El método de calibración clave es el de “deja de perder + 1/8” o el de “empieza a perder – 1/8”, pero claro, son muchas horas de calibración pillar ese tacto jeje.

    • si, te entiendo perfectamente 🙂 por mucho que uno escriba un post, hasta que no lo pruebas, no hay forma de tener esa experiencia

      gracias por pasarte por aqui!!

  8. Muy buena información, te felicito.
    Y aprovecho para hacerte una consulta, si un motor PaP se lee en su etiqueta de características 3.5V a 1.5A y quiero el máximo rendimiento del motor, tengo que calibrarlo para que el consumo se exactamente 1.5A?, lo he realizado así y el problema es que el motor se calienta mucho a los 2 minutos de funcionamiento tanto que hasta es peligroso tocarlo por el calor que genera. Por que sucede eso?, si se supone que esta diseñado para ese consumo (1.5A), en cambio cuando le suministro 0,4A el motor funciona sin ningún calentamiento considerable pero pierde fuerza, estoy calibrandolo mal?

    • Gracias por la pregunta, porque es un concepto que sale muchas veces.

      Lo de 1.5A, digamos que es el máximo de corriente que soporta sin que el cobre se derrita o cosas asi. En todos los aparatos electricos es lo mismo. Los amperios te dicen cuanta corriente puede pasar sin que arda.

      Tienes que calibrarlo para la carga de trabajo que vas a necesitar, no para los amperios. O sea, si tu motor necesita 1A de energia para moverse, pues eso es lo que tienes que tener. A partir de ahi, estás sobrecalentando el motor innecesariamente. Pero si usas menos, el motor no tendrá energia suficiente para moverse.

      un saludo y gracias por pasarte por el blog!

  9. Una pregunta. Mi driver a4988 esta recalentando mucho. Apenas unos minutos de uso y ya no podes tocar el disipador porque te quema la mano. Esta ajustado el vref correctamente. ¿Qué sucede?.. Por otro lado, cuando toco el driver con la mano, el motor comienza a vibrar. ¿?

    • Lo del motor vibrando, no sabría decirte. Lo del calor, pues habria que ver el modelo de driver que estás usando. Es un driver chino? Si está caliente es porque está circulando mucha corriente, y no es capaz de disipar suficiente calor. Quizás tu motor esté usando demasiada energia. El VREF está cercano al máximo?

      un saludo

  10. Gran articulo estimado!
    Tengo una consulta, perdón si ocupo esta plataforma.
    reemplace mi tarjeta original quemada por una geeetech mightyboard, la cual incluía drivers drv8825, pero trae problemas explicados aquí: http://www.tekworld.com.au/replacing-the-mightyboard-in-a-replicator-wanhaoctc-or-other-cone/#comment-8
    Al mover los ejes, estos no son precisos, se mueven mas de lo que deberían y creo que debo hacer la modificación que se indica en el link.
    Mi pregunta es: puedo hacer esta modificación al modelo drv8825? como se ajustan los pasos por milimetros en el firmware?
    Atento a comentarios y saludos!
    Daniel.

    • Hola daniel!

      Gracias por leer el blog

      A nivel software, puedes usar cualquier driver paso a paso. En algun momento tienes que decir cuantos pasos equivalen a un mm de avance.

      Entiendo que el problema son los micropasos. No sabes si está a 8,16 o 32. Lo que tienes que hacer es, decirle que avance 10cm, y medir cuanto has avanzado de verdad. Y hacer una regla de tres, y ajustar ese valor.

      busca steps_per_mm en el fichero de config.h (suele ser esto en todos los firmwares)

      Espero que te ayude! un saludo

  11. Gran Articulo.
    Con respecto a tu pregunta de qué opinamos de un artículo así de largo: Internet está lleno de artículos pequeños que son útiles para una lectura para iniciarse, muchos de estos artículos se centran en un área concreta de la materia, dejando claro lo que pretenden comunicar pero no profundizan en conceptos que dan por sabido o que consideran que es mejor no explicar para no liar el artículo, hacía falta un artículo como este donde se da una visión general de la materia y paso a paso se va profundizando en los aspectos más importantes de los drivers, una vez que tenemos esto claro se nos describe con objetividad los productos que hay en el mercado y por último se nos da consejos para escoger el producto que más nos convenga y por último se nos enseña a cómo calibrarlo ajustarlo etc.. Aunque necesitare una segunda y tercera lectura efectivamente esta es la “Guía definitiva de los drivers de los motores paso a paso”
    Felicitaciones desde Santiago de Compostela

  12. Hola. Gran aportación, sobre todo para los que no tenemos mucha idea de cómo funciona esto y queremos quemar el menor número de drivers/motores 🙂 Quería hacer una pregunta de “primero”. Tengo un juego de motores 28BYJ de 5V y quería saber si los puedo manejar con garantías con los popolu A4988. Según las especificaciones que has reseñado para los motores el mínimo son 8V, por lo que los 5V estarían bastante por debajo. He probado a conectar uno de los motores al eje X (tras hacerlo bipolar, claro) y con GRBL lo muevo pero erráticamente. ¿Será por esto? El driver para pruebas lo ajusté con el potenciómetro en 0,28 Vref. Un saludo!

    • Hola
      tendríamos que revisar a fondo cómo lo has configurado. Has probado a bajar mucho la velocidad? vete muy lento, para ver si es un tema de velocidad de los pasos. Quizas el motor necesita más tiempo para activarse.

      sobre los 5V, pues no sabría decirte bien. Como comento, es raro que tengas ese voltaje de verdad en las bobinas, porque el PWM del driver lo va a ajustar.

      un saludo!

  13. Muchas gracias por tus artículos. Perdona pero todavía tengo una duda por resolver, tengo que mover motores de 2,2V y 2A por fase, que me recomiendas?

  14. Saludos. Me estoy iniciando en este mundillo, y artículos como este son los que te aclaran muchas dudas a los que no tenemos mucha idea.
    Muchas gracias por compartir. Sé el esfuerzo que esto supone, pero también sé que ver tu trabajo reconocido conforta mucho.
    Ánimo para seguir en esta línea. Somos muchos los que te lo agradecemos.

  15. Fantástico post para tener como apuntes de referencia a la hora de ajustar nuestros inventillos.

    Muchas gracias de nuevo por tus aportaciones y tu esfuerzo. “Eres moi TOP!!!”

  16. Saludos, Excelente la información, una duda que tengo es que el modo de 24 voltios a baja corriente 1 amperio en el drv8825, el hecho que pierda pasos es solo cuando funciona a 1/32 pasos o también sucede cuando funciona a pasos completos, lo consulto porque tengo unos funcionando así y el motor así un pitido molesto y se calienta, antes lo tenia con el 4988 a la misma corriente (1A) y voltaje (24V) y el motor no calentaba solo el driver asi que lo tenia con disipador, pero ahora calientan los dos el driver y motor. por favor puedes aclarar mas ese tema agradeceria tu respuesta.

  17. Estoy muy de acuerdo con que investigues y compartas la información; pero sin el conocimiento adecuado, la información que publicas puede convertirse en nociva para quien está aprendiendo.
    Te hacen falta conocimientos básicos de física y de electrónica. Al principio de tu redacción confundes el concepto de corriente eléctrica, que se mide en Amperes con el concepto de tensión eléctrica, que se mide en Voltios.
    Estos son parámetros de la conocida Ley de Ohm. Y te recomiendo que le des una leída en Wiki o en algún libro de física, como el: Sears Zemansky Young.
    Saludos!

    • Hola,

      Entiendo que lo dices por esta frase:

      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)

      Gracias por la recomendación! Repasaré la ley de ohm 🙂

      • Querrás decir la ley del post: “La intensidad de congratulación de un artículo es la relación entre la cantidad de visitas que tiene dividido la cantidad de los que comentan críticas negativas.” :DD

  18. Tengo una duda sobre la máxima velocidad que puedo obtener con el driver DVR8825, si tengo un motor de 200 pasos por vuelta y un husillo digamos de 1mm por vuelta, si uso micropasos a 32, tengo 200×32=6400 pulsos que tengo que mandar al motor por mm, pero si quiero que avance a 10cm/s tendría que mandarles 640000, soportan los motores esas cantidad de pulsos si perder pasos y torque, veo maquinas que se mueven varias veces mas rápido que eso así que me imagino que estoy entendiendo mal.

    • Hola

      los pasos solo dicen “avanza”. Pero no la velocidad a la que avanza. Si le envías los 640000 pasos, pero con 1 segundo entre cada paso, la maquina se va a ir moviendo muuuuuy despacio.

      El arduino tiene un limite de pasos por segundo. No recuerdo la cifra exácta, y para serte sincero, tendría que hacer pruebas para cuantos pasos por segundo soporta el arduino.

      A 16 pasos, estoy seguro que te va a funcionar sin problema

      un saludo y gracias por pasarte por el post!

  19. gracias por el articulo…veo q mencionas que tienes placas de drivers pero no vendes en la tienda..estaran en un futuro?asi se podria comprar pack cnc…

    • por el momento, me cuesta bastante soldarlos y testearlos, y no los he puesto en la tienda. Pero si te interesan algunos, mándame un correo y te preparo unos cuantos

  20. Por fin alguien que escribe de forma seria y científica para los que queremos aprender. Me ha gustado mucho pq explica todo con bastante detalle y argumentando. Muchas gracias. Un placer leerlo. Estos artículos concienzudos si merece la pena leerlos hasta la última palabra. Muchas gracias.

    A ver cuando aparecen estos productos en la tienda. Si son como vuestra RAMPS serán de primera. 🙂

    • gracias por visitar la web! llevo tiempo con ganas de sacar los drivers y muchos mas productos, y creo que por fin vamos a poder tenerlos pronto en la tienda 🙂

      un saludo, y registrate a la lista para estar enterado de las novedades!

  21. ¡Un trabajo fantástico! Has conseguido hacer comprensible el mundillo práctico de los motores paso a paso para la gente con bajo nivel de conocimientos en electrónica. Y aún y así es muy didáctico para los que tenemos un nivel intermedio en la materia. Encontrar éste equilibrio en un artículo es muy difícil. En cuanto a lo de si es más o menos largo, personalmente creo que no se podría haber hecho este trabajo con muchas menos palabras, así que si queremos disfrutar de trabajos de calidad como éste, debemos de leer todo el contenido hasta el final. Para nada se ha hecho pesado. ¡Enhorabuena por el trabajo y gracias por compartirlo con todos!

  22. Hola! muy buena la guia! me ayudo mucho, pero tengo una consulta porque hay algo que no termine de entender.
    Tengo una impresora 3d la cual tiene 4 motores PaP, tres para los respectivos ejes x;y;z y otro para el extrusor. (la placa solo tiene cuatro salidas)
    Mi consulta es: puedo con estos driver agregar un nuevo motor al eje Z?
    de ser asi, como podria hacerlo.

    Espero tu respuesta.
    Saludos.

    • Hola

      si, es posible agregar un nuevo motor paso a paso. Lo que tienes que hacer es unir el mismo cable de cada motor. El limite son los amperios del driver. Puedes unir motores hasta los 2A que suele dar el driver.

      Para la Z, las placas de las impresoras 3D ya incluyen un conector doble.

      Uns saludo y gracias por pasarte por la web!

  23. He leido el post completo, entonces si tengo un motor a pasos de 3V y 1.7A no es recomendable usar el driver A4988 aunque le coloque un disipador, el driver que tengo es de color verde.

    • 1.7A es la potencia máxima que soporta el motor. Pero tienes que comprar un driver acorde a la potencia que vas a consumir. Es como decir que un coche puede dar como maximo 220km/h. Pues no quiere decir que vayas a 220km/h todo el dia. Solo que de pico, te va a llegar a esa velocidad. Si solo consumes 0.5A, puedes usar un a4988 sin problema.

      saludos!

  24. Hola, ¿y no se pueden hacer arreglos con estos modulos? Como usar el mismo potenciometeo para dos A4988 (de la misma marca) y conectarlos en paralelo uno sobre otro.

    • conectar un driver sobre otro quieres decir? o sea, usar dos drivers para el mismo motor? los drivers tienen que medir la corriente que pasa por el motor, y si van en paralelo, no es posible…

      saludos!

  25. guau..!!
    que pasada de artículo…!!
    mis mas sinceras felicitaciones..!!
    además de muy bien explicado muy entendible. 🙂

    tengo una duda que tal vez me prodían resolver:
    tengo claro que para quitar los motores ó los drivers hay que desconectar alimentación.
    se pueden dejar los drivers puestos y alimentados sin que tengamos el motor del driver correspondiente conectado? (por ejemplo todos los drivers puestos y sólo un motor conectado para probarlo)

    muchas gracias de antemano y de nuevo mi agradecimiento y enhorabuena por el artículo..!! 🙂

  26. Hola:
    Gracias por compartir esta información. Estaba pensando que todo esto habia acabado en 2012, he empezado la semana pasada con los motores paso a paso. Y todos los artículos son antiguos…
    ¡Estaba asustado por mi tardanza en comenzar con este tema!.

    Saludos, Jabio.

  27. Hola, necesito mucho apoyo, estoy tratando de hacer un exoequeleto para un familiar que no puede caminar.. las primeras dos versiones han sido demasiado básicas, una con relevación y la segunda ya con Arduino y motores de CD automotrices pero el control no es bueno.. voy a desarmar los reductores y cambiarles el motor de CD por motores a pasos. quiero usar una Ramps 1.4 con drivers 4988 y quizá dos motores nema 17 y dos nema 23 … o los 4 iguales.. quien podrá darme algun soporte??

  28. El articulo es muy bueno pero se me ha quedado corto al final que es lo que quería, medir bien en un pcb el pololu y no he podido pero por lo demás muy buen trabajo

  29. Hola Javier, te felicito por esta magnífica guía; conseguir condensar tanta información en donde entran en juego una enorme cantidad de conceptos es realmente díficil. Por otra parte lo has redactado de una forma amena y entretenida.
    Monté a finales del año pasado una impresora anet a8, es mi primera incursión en este tipo de máquinas y por suerte me venía el firmware preconfigurado en su placa y no tenía otra cosa que intentar montar la impresora lo mejor que pudiera.
    Pero como soy un culo inquieto, al poco tiempo de tener la impresora funcionando ya le quise cambiar la pantalla por una reprap fullgraphics, de las que llevan la ruedecita para moverse por los menús, y sorpresa; las conexiones no son compatibles con la placa de la anet. Entonces decidí cambiar la electrónica por un arduino+ramps, y aquí la cosa ya me resultó bastante más complicada, puesto que en ese momento no tenía ni idea de la configuración del firmware para la ramps, por lo que me las ví para dejarlo todo mas o menos correcto para que la impresora volviera a funcionar de manera “mas o menos” decente.
    No me cabe ninguna duda de que si hubiera tenido tu guía en ese momento podría haber configurado la anet mucho antes y además entendiendo mejor los valores que hay que modificar.
    Además disponer de un firmware abierto como marlin es una garantía de futuro, puedes incorporar las mejoras que vayan saliendo y ajustar cualquier valor para mejorar el funcionamiento de tu impresora.
    Lo dicho, gracias por todo.

    • Muchas gracias! al principio es complicado, pero el aprendizaje merece la pena. Ahora tienes la libertad de cambiar muchas piezas de la impresora.

      un saludo!

  30. Hola Javier, tengo problemas con mis drivers tmc2100, me pierden pasos a veces y los he puesto a 24voltios, pero soy negado con las formulitas de calculo, y no soy capa a averiguar cuanto voltaje debo medir entre el negativo de la fuente y el potenciómetro de la fuente para que ni se calienten ni pierdan pasos. ( Los tengo refrigerados con dos ventiladores de 40)

    Gracias.

  31. Muchas Felicidades por este pedazo de articulo, lo he leído entero sin pestañear, eres un gran comunicador. Muchas gracias por tu tiempo.
    Si no te importa me gustaría comentarte algo:
    Compre una prusa I3 china y funciono 3 o 4 horas, a partir de hay el motor del extrusor se bloqueo dando pulsaciones ( pun, pun, pun,..).
    Cambie el A4988 y otra vez lo mismo 3 o 4 horas y las mismas pulsaciones.
    Ahora no llega a 15 minutos y vuelven las pulsaciones.
    El ajuste de intensidad es el adecuado y la temperatura del A4988 es baja,
    aunque el motor si esta caliente.
    ¿ Es posible que el A4988 no se funda totalmente?
    ¿ Que al llevar un tiempo trabajando se autoprotreja y deje de funcionar?
    ¿ Te ha pasado alguna vez?
    Muchas gracias por adelantado.
    Un Saludo.

    • Quizás tengas la corriente demasiado baja, y por algun motivo, al tiempo de funcionar, necesites un poco más de energía. Prueba a subir un pellizco la corriente.

      Un saludo

    • Coincido contigo en la valoración del excelente artículo del otro Javier. Ignoro si ya has resuelto tu problema; pero creo que es el mismo que tuve yo. En mi caso el chino había montado el engranaje del inyector con un tornillo M4 con cabeza, en lugar de un prisionero. Al dilatar, la cabeza tocaba contra el disipador de aluminio, sin poder avanzar, el correspondiente paso. La solución; un prisionerro Allen de M4.

    • el video está bien, pero antes tienes que saber cuántos amperios necesitas, y eso depende mucho del tipo de CNC, de los motores, etc

      un saludo!

  32. EXCELENTE..!!! Lo leí todo, gran aporte sobre los drv’s. Me aclaró muchas dudas.
    solo una consulta el ENABLE se conecta a algún lugar?
    sigue así ánimo .!!

    • El enable tiene que estar conectado a los 5V con una resistencia para que esté conectado siempre. O al pin de micro para que pueda encender y apagar los motores cuando no se están usando.

      En la RAMPS, el firmware ya se encarga de todo eso.

      Un saludo

  33. Que tal in saludo disculpa tengo el drv 8825 pero no se por que razon no varia el VTSRef todo el tiempo es de .189 lo extrano es que al momento de colocar el motor trabaja y si muevo el pot el motor se para o empieza a temblar de mas
    e hecho distintas pruebas para poder ajustarlo y no e encontrar como por ultimo
    lo que hize fue poner in amperimetro de gancho y con ese estuve ajustando pero lo que noto es que si se calientan los 8825 alguien podria ayudarme que le haya tocado esto tambien tengo 4 nuevos los cuales pasa esactamente lo mismo .

    atte
    Jann

    • si guiras el potenciómetro, y no varía, es que el potenciómetro está mal soldado

      si quieres unos drivers de staticboards, mándame un mensaje en el formulario de contacto, y arreglamos 😉

      saludos!

  34. Hola. Primero agradecerte por este post que para lo que estamos empezando y no tenemos ni idea, nos viene muy bien.
    Por otra parte quiero construir una cnc para madera y metales blandos y con el tema de los driver tengo una duda, ya que aqui casi todo es para impresoras 3D.
    Con Arduino y estos drivers puedo controlarla bien? ya que navegando y mirando un poco por ahi, he visto que todos los drivers y controladoras son bastante grandes con respecto a estos.
    Los motores que voy a utilizar son nema 23.
    Gracias y perdona que no sea tan tecnico como los demas.

    • para madera y metacrilato, no tendrás problema. Para metal la cosa ya es más complicada. Yo ahi te recomiendo ir a algo más grande.

      más fuerza, implica que podrás ir más rápido. Con el CNC shield puedes controlar los driver grandes también.

      saludos

  35. Hola.
    En primer lugar, felicitarte por la página; que es bastante completa en información. Tengo pedido una CNC Shield con sus 4 DRV8825 para Arduino UNO. La pienso usar con unos motores que he reciclado de impresoras y scanners. Estos motores, están con sus cuatro hilos, pero cuando me llegue la placa no sabré donde irán cada uno, pues están sueltos sin su conector. ¿Qué me podrías sugerir para averiguar cuál es cada cable y ponerle su conector para luego poderlo pinchar a la placa?
    Gracias y un saludo.

    • Hola,

      para detectar los motores paso a paso, tienes que usar un tester. De los 4 cables, en realidad son dos pares. Con el tester detecta qué cable está conectado por dentro del motor (te dará continuidad)

      El orden es bobina 1 – bobina 2. El order de las bobinas es lo mismo. Lo unico que te pasará es que girarán al revés, pero al girar el conector, ya lo solucionas. Lo ideal es que tengas todos los motores con la misma disposición de cables, claro.

      un saludo!

  36. Amigos: Tengo un problema igual al de Jorge, desde hace algun tiempo estoy armando un CNC para madera, tengo el Arduino con su shield y 4 driver A4988 con los que me ha ido muy bien, pero mis motores son NEMA 23 de 2 A, lo que provocaba que se calentaran mucho los driver, incluso con disipador y ventilación forzada, por esa razón le encargué a un amigo que viajó a China 4 DRV8825, la alegría me duro poco, ayer intenté ajustarlos y nada, el valor de Vref no varia por más que mueva el potenciometro. Alguien me puede ayudar en como reparar estos driver chinos?. Gracias de antemano.

  37. Esta tarde me he puesto a calibrar los drivers a 4988 que he recibido y ninguno llega a la vef calculada 0.22.me temo que estan malos.Que hago.Es la primera vez que hago esto y de electronica nada de nada.

  38. tengo un problema, aver si sabrias respondermelo. estoy utilizando los driver a4988, cuando pruebo un motor solo, va fenomenal, pero cuando estan los 3 funcionando, hacen mucho ruido, se relentizan y no van bien. eso me paso al estar los 3 en funcionamiento. tengo motores nema 17 1,7A. Sera problema de los a4988?? tendre que utilizar otro driver para su control?? por favor ayuda.. estoy loco ya con esto. graciiaass. y estupendo articulo.

  39. Simplemente GENIAL!!! (Javier tenías que llamarte jajaja).
    Leído completo, comentarios incluidos :-).
    Como te han dicho repetidamente, muchas gracias por el artículo… y por darte el tiempo de contestar las dudas.
    El mundo de la electrónica es algo que he tocado varias veces en mis 43 años de “pasante” en esta vida (o alumno en práctica, o practicante, o no sé como será el nombre que utilicen en sus países jajaja) y se que puede ser muy desafiante e incluso desmotivante para quienes buscan aprender por su propia cuenta, pero artículos tan completos, sencillos y didácticos como el tuyo son un gran impulso para seguir adelante con nuestros proyectos, así es que por eso mis felicitaciones y mi agradecimiento.
    Y me voy a permitir hacer una pequeña reflexión, en alguna respuesta sobre la información disponible escribiste “Esto nunca acaba! siempre hay nuevos modelos, mejores motores, mejores drivers…”, y yo agregaría que también siempre hay nuevas personas de mente inquieta buscando información para ingresar en este mundo que apasiona a muchos.
    Saludos desde Chile… y sorry por el ladrillo…

  40. Actualmente estoy jubilado de haber trabajado como jefe de la oficina técnica de proyectos eléctricos, en una empresa americana de las tres letras iguales, mi experiencia en proyectos eléctricos y automatismos, se la debo a profesionales maravillosos como gente y como expertos en el tema, y que jamás han retaceado información alguna de toda índole sobre distintos temas técnicos, a todos los recuerdo siempre dispuestos a transmitir sus experiencias mantengo una inestimable amistad con muchos de ellos y de otros, con mucho dolor, solo puedo guardar con todo mi afecto los mejores recuerdos.
    Ud. con este tutorial me recuerda a cada uno de ellos.
    En mi época laboral activa, nunca he trabajado con motores paso a paso ya que los mismos estaban integrados en maquinarias, que no formaban parte de las áreas de mis actuaciones, ahora como una de las asignaturas pendientes, me he interesado en estos temas y después de leer este tutorial he tomado un conocimiento bastante sólido sobre la operación de éstos motores.
    Aprecio muchísimo el trabajo que se ha tomado para transmitir estos datos y experiencias.
    Le mando un afectuoso abrazo. Muchas gracias por enseñar.
    Guillermo A. Beyer

    • Hola!

      muchas gracias por leer el post. El mensaje me ha emocionado, viniendo de alguien con tantos años de experiencia. Es nuestro deber ayudar a los que vienen detrás, igual que en su momento, la gente con más experiencia me ayudó a mí a comenzar.

      un afectuoso saludo. Me siento muy contento de recibir este comentario.

  41. Hola Javier, s

    Solo decirte que eres un “loco formidable”. Me encuentro compilando información antes de comprar lo necesario para mi CNC para madera.
    Intento aprender sobre desgracia ajena para equivocarme lo menos posible, y en verdad te digo que tus post son un completo e insdispensable manual Maker.
    Desde Argentina, mis felicitaciones y agradecimiento por tu tiempo y dedicación.

    Saludos!

  42. Asi 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. como puedo hacer eso?

    • en Marlin, tienes que buscar en el fochero Configuration.h, “STEPS_PER_MM” y duplicar los valores.

      En GRBL tienes que usar el comando $100, $101, $102 por la consola serie.

      saludos!

  43. LA experiencia a sido agradable gracias por compartir tu trabajo en realidad es muy buena y real porque ay algunos latosos que ablan y hablan de todo y de nada lo tuyo en verdad es de AYUDA para aquellos que quieran construir una CNC , yo ya la tengo la ice yo mismo me costo pero logre terminar todo tenia un problema pero gracias a tus comentarios logre solucionarlos una ves mas GRACIAS. Cochabamba Bolivia

  44. Hola buenas como se la corriente de los motores si no tengo datos tecnicos.
    Mis motores solo me pone en la etiqueta que son de ángulo 1.8 y 1.4 ohmios y otros dos de 1.8 ohmios

  45. Pues yo me lo he leído de cabo a rabo. Os he hecho esta mañana un pedido de CNC shield y drivers para empezar a montarme mi cnc.
    A seguir así

  46. Hola.con respectos a lo largo del post yo pienso que no es lo largo si no lo que se necesita para que las cosas queden bien de una vez por todas y tu post me parece muy bien todo excelente

  47. acabo de publicar los comentarios que tenía aqui pendientes :/

    a partir de ahora los responderemos al momento, para que no se vuelvan a acumular de nuevo

  48. Hola! estaba revisando el artículo, y en la parte de calibración del driver, en el video tutorial de Obijuan, comentar que el sistema que se menciona ahí es un Arduino Mega y el printrun de Linux.
    Para Arduino Uno no sé si valdría. Buscando aparece la version 2015 del Printrun, pero al tener que meterle el firmware al Arduino Mega, si tienes el Uno, no te valdrá.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Índice

Últimos Artículos

CONTACTO

[email protected]

C/Emilio González López, 29

15113 Malpica, A Coruña

Spain

SÍGUENOS

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

¿Te ha gustado?

¡Compártelo con tus amigos!

¿Te está gustando el artículo?

Déjame tu dirección de correo,

y recibirás un aviso cuando publique el siguiente

Muchas Gracias!

Recuerda que tienes que confirmar tu correo

si quieres recibir las actualizaciones