Sunteți pe pagina 1din 25

       

LUIS LLAMAS
Ingeniería, informática y diseño

TUTORIALES ARDUINO TUTORIALES ARDUINO INTERMEDIOS

MOTORES PASO A PASO CON ARDUINO Y DRIVER


A4988 O DRV8825

23 AGOSTO, 2016

     

¿QUÉ ES UN A4988 O DRV8825?


El A4988 y el DRV8825 son controladores (drivers) que simpli can el
manejo de motores paso a paso desde un autómata o procesador como
Arduino.

Estos controladores nos permiten manejar los altos voltajes e


intensidades que requieren estos motores, limitar la corriente que circula
por el motor, y proporcionan las protecciones para evitar que la electrónica
pueda resultar dañada.

Para su control únicamente requieren dos salidas digitales, una


para indicar el sentido de giro y otra para comunicar que queremos que el
motor avance un paso. Además permiten realizar microstepping, una
técnica para conseguir precisiones superiores al paso nominal del motor.

El A4988 ha alcanzado una gran popularidad en sus últimos tiempos


debido a su uso en proyectos como, por ejemplo, en impresoras 3D
También son un componente frecuente en proyectos para controlar
robots y vehículos, especialmente en aquellos que requieren variar de
forma individual la velocidad de cada rueda, como en vehículos con
omniwheel o mecannum wheels.

PRECIO
Actualmente ambos controladores son dispositivos baratos ya que han
visto bajar su precio gracias al aumento de su popularidad. Es posible
encontrar un driver A4988 por 0.75€, y un DRV8255 por 1.15€, en
vendedores internacionales en eBay o AliExpress.

Con una diferencia de precio tan estrecha lo normal es que elijamos


el DRV8255, dado que tiene unas características técnicas superiores,

¿CÓMO FUNCIONA EL A4988 Y EL


DRV8825?
Como en la mayoría de los controladores de motores el componente
fundamental es un puente-H. En el caso del A4988 y DRV8825, destinados
a controlar motores paso a paso, se dispone de dos puentes-H (uno por
canal) constituidos por transistores MOSFET.
Sin embargo, a diferencia de controladores más simples como el
L298N o el TB6612FNG, que presenta una electrónica relativamente simple,
el A4988 y el DRV8825 tienen una electrónica considerablemente más
compleja.

A modo de ejemplo, la siguiente imagen tenemos el esquema del


DRV8255 y, cómo vemos, los puentes-H (remarcados en azul) representan
una parte muy pequeña del conjunto.

Uno de los motivos para esta complejidad es que únicamente


requieren dos señales digitales de control para hacer funcionar el
motor, y que incorporan las protecciones necesarias para su manejo.

El otro motivo de la complejidad de su electrónica es que incorporan


funciones especialmente diseñadas para el control de motores paso a
paso, como son el regulador de intensidad y el Microstepping. Veremos
estas funcionalidades a continuación.

REGULACIÓN DE INTENSIDAD (CHOPPING)


Ambos controladores disponen de reguladores de intensidad
incorporados. El motivo es que los motores paso a paso de cierto tamaño
y potencia, como por ejemplo los NEMA 17 o NEMA 23, necesitan tensiones
superiores a las que podrían soportar las bobinas por su corriente
nominal.

Por ejemplo, supongamos que tenemos un motor NEMA 17 con 1.2A


de intensidad nominal y 1.5 Ohm de resistencia por fase. Según la ley de
Ohm deberíamos aplicar 1.8V a cada bobina para que circule la intensidad
nominal de 1.2A. Sin embargo, con esa tensión el motor ni se movería.

Para el que el motor funcione correctamente necesitamos aplicar


una tensión superior. En este ejemplo, la tensión nominal podría ser 12V.
Pero si aplicáramos 12V directamente, nuevamente por la ley de Ohm,
pasarían 8A por la bobina, lo cual destruiría el motor en poco tiempo.

Por este motivo, los controladores incorporan un limitador de


intensidad, que permiten alimentar el motor a tensiones nominales
caseras. Por su parte el DRV8825 es una versión mejorada del A4988 y,
por tanto, tiene unas características ligeramente superiores.

Anuncio:

4-Axis DIY CNC Controller Kit -


Hardware & Software…
Anuncio Industrial CNC quality for the
Anuncio
DIY CNC control builder. Made in USA!…
centroidcnc.com

Learn more

En particular, el DRV8825 permite trabajar con tensiones superiores al


A4988 (45V frente a 35V), e intensidades superiores (2.5A frente a 2A).
Además, añade un nuevo modo de microstepping (1/32) que no está
presente en el A4988.

Por lo demás, aparte de unas pequeñas diferencias, ambos


dispositivos son similares en su montaje y uso. Incluso pueden ser
compatibles entre sí, es decir, bajo ciertas condiciones podemos usar
indistintamente uno u otro, e incluso una combinación de ambos de forma
simultánea.

Modelo A4988 DRV8825

Color Verde o Rojo Morado

Intensidad máxima 2A 2.5A

Tensión máxima 35V 45A

Microsteps 16 32

Rs típico 0.05, 0.1 o 0.2 0.1

I_max = Vref / ( 8 * Rs) I_max = Vref / ( 5 * Rs)


Fórmulas
Vref = I_max * 8 * Rs Vref = I_max * 5 * Rs

Ambos controladores pueden alcanzar altas temperaturas durante su


funcionamiento y es necesario disipar el calor para que el dispositivo no se
dañe. Para intensidades superiores 1A en el A4988 y a 1.5A en el DRV8825
es necesario añadir un sistema de disipación de calor, e incluso ventilación
forzada.

Disponen de protecciones contra sobreintensidad, cortocircuito,


sobretensión y sobretemperatura. En general, son dispositivos robustos
y ables siempre que realicemos la conexión correctamente, e
incorporemos disipación de calor si es necesario.

El A4988 y el DRV8825 son muy empleados en una gran variedad de


proyectos que requieren el uso de motores paso a paso, como máquinas
de CNC, plotters, robots que dibujan, impresoras 3D, y escáneres 3D.
superiores a las que es posible por su resistencia e intensidad máxima
admisible.

Por supuesto, la ley de Ohmn debe cumplirse en todo momento por lo


que, continuando con nuestro ejemplo, cuando alimentemos el motor a
12V por la bobina pasará inevitablemente 8A.

El limitador interrumpe la señal proporcionando una señal pulsada


PWM de forma que el valor promedio de la intensidad que atraviesa la
bobina es la intensidad nominal del motor. Terminando nuestro ejemplo,
el limitador de tensión aplicaría el pulso durante el 15% del tiempo y
mantendrá el motor apagado el 85% restante.

A este mecanismo de limitación de intensidad se le denomina


 Chopping.

Para regular la intensidad que proporcionara el limitador y ajustarlo al


valor del motor que vayamos a emplear ambas placas disponen de un
potenciómetro que regula la intensidad del limitador.

Una forma de estimar la intensidad del regulador es medir la tensión


(Vref) entre el potenciómetro y GND y aplicar una fórmula que depende
del modelo, que encontraréis en la tabla del principio de la entrada.

Estas fórmulas dependen el valor Rs de las resistencias ubicadas en


la placa que pueden variar en función del fabricante. Los valores típicos
también aparecen en la tabla, pero debéis comprobar el valor de las
resistencias que monta vuestra placa.

Por ejemplo, con los valores de Rs habituales las fórmulas se reducen


a:

Modelo Rs Fórmula reducida

A4988 50 I_max = 0,625 * V_ref

A4988 100 I_max = 1,25 * V_ref

A4988 200 I_max = 2 ,2* V_ref

DRV8825 100 I_max = 2 * V_ref

No obstante, el valor obtenido mediante esta medición es sólo una


aproximación y puede ser inexacto, por lo que lo emplearemos sólo como
una calibración inicial, y terminaremos el ajuste no midiendo la corriente
real que proporciona el controlador al motor mediante un amperímetro.

MICROSTEPPING
Como hemos dicho, el microstepping es una técnica que permite
obtener pasos inferiores al paso nominal del motor paso a paso que
vamos a controlar.
Cuando vimos las secuencias típicas de encendido de un paso a paso,
vimos que aplicando un control todo a nada a las bobinas teníamos varias
posibles combinaciones, de las cuales vimos las tres más habituales (1-
fase, 2-fases, media-fase). Pero nadie ha dicho que tengamos que
encender o apagar por completo las bobinas.

El microstepping hace variar la corriente aplicada a cada bobina


emulando un valor analógico. Si pudiéramos a ambas bobinas dos señal
eléctrica senoidal perfecta desfasadas 90º conseguiríamos un campo
magnético rotatorio perfecto en el interior del motor.

Por supuesto el controlador digital no genera valores analógicos


perfectos, si no valores discretizados ("a saltos"), por lo que la señal
eléctrica que aplica es igualmente una función senoidal discretizada.

El resultado es un campo magnético un campo magnético rotativo con


un paso inferior al paso nominal, que depende del número de niveles de
discretos que podemos emplear en las señales de excitación de la bobina.

Cuando funcionamos sin microstepping (Modo full step), los


controladores aplican una secuencia de 2-fases, por lo que aplican de
forma permanente el 71% de la corriente del limitador a cada bobina.
Únicamente varían el sentido en el que la corriente circula por la bobina.

Sin embargo, si aplicamos microstepping en cualquier de sus modos


de funcionamiento, el controlador llega a aplicar el 100% de la corriente
a una de las bobinas en un determinado paso. La cantidad de corriente
concreta aplicada a cada bobina varía con cada paso.
Por ejemplo, con resolución 1/4 de paso, en el primer paso de la
secuencia tendremos una bobina al 100% y la bobina B al 0%, en el
segundo paso la bobina A al 92% y la bobina B al 38%, en el tercer paso la
bobina A al 71%, y así sucesivamente.

El hecho de que sin microstepping la corriente aplicada es siempre el


71%, y si aplicamos microstepping (en cualquier resolución) la
 corriente aplicada llegará a ser del 100% en algún paso, es muy
importante a la hora de calibrar la intensidad que circula por las
bobinas.

Finalmente, la resolución con la que queremos que funcione el


controlador se controla aplicando tensión a los Pines M0, M1 y M2.
Estos pines están puestos a tierra mediante resistencias de Pull-Up, por lo
que si no conectamos nada estarán a Low, y sólo deberemos forzar los
pines en High.

Resolucion Pines M0, M1 y M2

A4988 DRV8825 MODE0 MODE1 MODE2

Full step Full step Low Low Low

1/2 step 1/2 step High Low Low

1/4 step 1/4 step Low High Low

1/8 step 1/8 step High High Low

- 1/16 step Low Low High

- 1/32 step High Low High

- 1/32 step Low High High

1/16 step 1/32 step High High High

Dejar todos los pines desconectados dará lugar a usar modo Full
 Step

ESQUEMA DE MONTAJE
El esquema de conexión de ambos controladores es muy similar.
Incluso, como hemos dicho, bajo ciertas consideraciones ambos
dispositivos son compatibles entre si.

En el caso del A4988 el esquema es el siguiente


Que visto desde Arduino quedaría de la siguiente forma.

En el caso del DRV8825 el esquema es muy similar, con la excepción de


que el pin Vdd se sustituye por el pin Fault.

El esquema desde Arduino sería idéntico al anterior.


Observar que el potenciómetro está ubicado en extremos
diferentes en ambos modelos. Por tanto a la hora de cambiar uno por
otro, porque es fácil equivocarse en la orientación, y dañar el dispositivo.

Comprobar la orientación del controlador durante el montaje y


 antes de dar la alimentación al sistema

PROCESO DE MONTAJE
El proceso de montaje del A4988 o el DRV8825 no es demasiado
complicado. La única parte que resulta un poco peliaguda es el proceso de
ajuste y calibración del regulador de intensidad.

Ambos controladores son bastante robustos y difíciles de romper


cuando están trabajando, si respetamos las necesidades de disipación de
calor (cuando sea necesario).

Pero son extremadamente sensibles a desconectar el motor


cuando el controlador está alimentado. Hacer esto causará, casi con
total seguridad, que dañemos el controlador.

En general, evitar conectar o desconectar cualquier cable mientras el


 controlador esté alimentado.

Por otro lado, el potenciómetro del regulador de intensidad no


tiene tope físico, por lo que es posible pasar de cero al máximo de valor
sin danos cuenta, y podríamos dañar accidentalmente el motor.

Para no dañar ni el controlador ni el componente, debemos seguir


siempre el proceso rigurosamente sin saltarnos ningún paso.

 Conectar el driver a tensión, sin el motor y sin microstepping


 Medir con un voltímetro la tensión entre GND y el potenciómetro

 Ajustar el potenciómetro hasta que la tensión sea el valor proporcionado


por la fórmula

 Apagar el montaje

 Conectar el motor, interponiendo en medio un amperímetro

 Realizar con cuidado el ajuste no del potenciómetro, hasta que la


intensidad sea la nominal del motor

 Apagar el montaje

 Retirar el amperímetro, y conectar el motor de nitivamente

 Conectar Arduino al montaje

Como hemos dicho, el hecho de que vayamos a usar posteriormente


microstepping in uye en el valor limite que debemos jar en el regulador
de intensidad.

Si no vamos a usar Microstepping, podemos aplicar aumentar el límite


del regulador de intensidad hasta el 100% de la intensidad nominal del
motor.

Si vamos a usar Microstteping, el valor que hemos medido es el 71%


del que luego circulará realmente por la bobina. Por tanto, en el
amperímetro debemos ajustar el 71% de la intensidad nominal del
motor.

EJEMPLO DE CÓDIGO
Aunque entender los pormenores del A4988 y el DRV8825 puede
haber tenido su di cultad, las ventajas de su uso claras. El código necesario
para su control es extremadamente sencillo, lo cual hace de ellos unos
componentes muy prácticos y útiles de usar.

Simplemente tenemos que indicar mediante dos salidas digitales el


instante en el que queremos que el motor avance un paso, y el sentido de
giro. La velocidad de giro se controla por el tiempo que dejamos
transcurrir entre paso y paso.

El siguiente ejemplo, hace girar el motor paso a paso una revolución


en un sentido, y dos en sentido contrario a una velocidad ligeramente
superior.

1 const int dirPin = 8;


2 const int stepPin = 9;
3
4 const int steps = 200;
5 int stepDelay;
6
7 void setup() {
8 // Marcar los pines como salida
9 pinMode(dirPin, OUTPUT);
10 pinMode(stepPin, OUTPUT);
11 }
12
13 void loop() {
14 //Activar una direccion y fijar la velocidad con stepDelay
15 digitalWrite(dirPin, HIGH);
16 stepDelay = 250;
17 // Giramos 200 pulsos para hacer una vuelta completa
18 for (int x = 0; x < steps * 2; x++) {
19 digitalWrite(stepPin, HIGH);
20 delayMicroseconds(stepDelay);
21 digitalWrite(stepPin, LOW);
22 delayMicroseconds(stepDelay);
23 }
24 delay(1000);
25
26 //Cambiamos la direccion y aumentamos la velocidad
27 digitalWrite(dirPin, LOW);
28 stepDelay = 150;
29 // Giramos 400 pulsos para hacer dos vueltas completas
30 for (int x = 0; x < 400; x++) {
31 digitalWrite(stepPin, HIGH);
32 delayMicroseconds(stepDelay);
33 digitalWrite(stepPin, LOW);
34 delayMicroseconds(stepDelay);
35 }
36 delay(1000);
37 }

Si te ha gustado esta entrada y quieres leer más sobre Arduino


 puedes consultar la sección Tutoriales de Arduino

Anuncio:

 Actuadores,Arduino,Arduino intermedio,Motores

PREVIOUS
CONTROLAR DOS MOTORES DC CON ARDUINO Y DRIVER
TB6612FNG

NEXT
CÓMO USAR UN ACELERÓMETRO EN NUESTROS PROYECTOS DE
ARDUINO

TAMBIÉN TE PUEDE GUSTAR


MEDIR TENSIÓN, INTENSIDAD Y POTENCIA CON ARDUINO Y INA219

PULSÍMETRO Y OXÍMETRO CON ARDUINO Y MAX30102

CÓMO USAR ARDUINO Y EL IMU 9 EJES L3GD20 + LSM303D


DETECTOR DE MOVIMIENTO CON ARDUINO Y RADAR DE MICROONDAS RCWL-0516

ENVIAR Y RECIBIR POR I2C DATOS EN FORMATO JSON EN ARDUINO

CÓMO IMPLEMENTAR UN CONTROLADOR PID EN ARDUINO

Únete a la conversación...

25  15  0     20

 newest  oldest

Maximus

¿Es posible que donde dices DRV8225, quieras decir DRV8825?

Genial, el artículo ... saludos


 Reply  3 years ago 

luisllamas

Muy posible, tengo una tendencia horrorosa a mezclar DRV8225


y DRV8825 y A4998 y A4988 XD
Está re-revisado, y creo que no me he dejado ninguna. Gracias
por el aviso!

Reply  3 years ago

manuel macugo

Buenas.
Primero que nada felicitarte por la currada que te has pegado con este
blog.
Y ahora la consulta.Compre un nema 23 para un proyecto con su arduino
uno R3, su shield y un driver DVR8825. Trato de ajustar el driver como tu
bien explicas pero no consigo que se mueva el dichoso motor. Hace un
ruidito cada segundo mas o menos y ahi se queda. Le he metido 0.7 V al
driver.
Gracias

 Reply  3 years ago 

luisllamas

¿A que te re eres con que les has metido 0.7V? (¿te re eres al
valor del potenciómetro? ¿has ajustado el regulador con un
amperímetro?)
¿Tu nema que valores nominales de tensión e intensidad
máxima tiene? ¿Que tensión alimentación le has puesto? ¿Has
medido la intensidad que está atravesando el motor?

Reply  3 years ago 

manuel macugo

Primero gracias por responder, y ahora te contesto por


orden tus preguntas. 1º y 2º Me re ero a que es el valor
que me da poniendo el positivo del polimetro en el
potenciometro y el negativo en GND. (por cierto que he
puesto mal el dato, son 0,98V) 3º Si, pero puesto en Voltios
y ajustando el potenciometro hasta que me dio esos 0,98
V. 4º Tension nominal por fase de 3,2V y de 2,8A 5º Tengo
el shield alimentado por una bateria de plomo 12 Voltios y
7 Amperios de capacidad. (como las de las motos) 6º Lo
he… Read more »

Reply  3 years ago 

luisllamas

¿Has mantenido en todo momento la precaución de


no desconectar el motor mientras está el montaje
encendido? (incluido durante la medición con el
amperímetro)
Si no, es posible que hayas dañado el driver
(porque por el resto de cosas que cuentas, debería
funcionarte, el resto parece que está bien)
Reply  3 years ago 

manuel macugo

No entiendo bien tu ultima contestacion.


Pero si te re eres a lo de manipular el
montaje mientras este tenia tension, ya te
digo que no (lo pones muy clarito en tu
expicacion). Apago todo, tanto la
alimentacion del driver, como el arduino. En
el codigo que tu pones de ejemplo, yo solo
cambio el pin de direccion (5) y el de pulso
(2).
Un saludo y gracias por contestar

Reply  3 years ago

luisllamas

Sí, me refería a eso, a manipular en tensión


(si tienes un amperimetro midiendo la
intensidad de fase del motor, puede ser que
se suelte, y eso es como desconectar el
motor, y el driver tiende a petar, lo digo por
triste experiencia jaja) Es que realmente, no
tengo muchas más ideas, si has respetado
eso, y el cableado, no debería fallar. Yo he
montado varios, y ningún problema. Cosas
que se me ocurren - Driver roto, que por lo
que has dicho pensemos que no - El motor
que estás usando necesita más tensión de
12V para funcionar. Por… Read more »

Reply  3 years ago

mundomorro

Crees que tenga problemas con un motor NEMA 23 de 2.3 A , con el


DRV8825 ?

 Reply  3 years ago

luisllamas

50 000 micro segundos?? Eso es muchisima espera para un Nema17 +


A4988. Has comprobado que está correctamente alimentado, y has
calibrado bien el regulador de intensidad?

 Reply  3 years ago

luisllamas

Tienes que realizar el proceso de calibrado de la intensidad. Tu motor tiene


una intensidad nominal de 1.7A.
No dices cuál es la Rs de tu A4988, pero con 0,5V tienes entre 1.25V y 0,3V.
Estas por debajo de la intensidad nominal, y por eso el motor no va todo lo
rápido que podría ir.

 Reply  2 years ago


Luis Alvarez

Hola Luis,en primer lugar me gustaría darte las gracias por compartir tus
conocimientos. Como dice Juan lo explicas todo super claro. Ahora mi
duda. Estoy utilizando el código que has puesto de ejemplo para intentar
mover un nema 17 con una ramps 1.4 cambio los valores de : const int
dirPin = 48; const int stepPin = 46; ya que utilizo el zocalo Z y según la
documentación de la ramps estos son los pines que utiliza. El motor no
hace nada (movimiento, ruido ....). Mi pregunta es, ¿Debería de funcionar? o
al utilizar un escudo como ramps hay que… Read more »

 Reply  2 years ago 

luisllamas

Bueno, lo primero decir que ahora mismo no tengo una Ramps,


así que respondo "a ojo" 😀 Según entiendo, tienes razón. El
Ramps no es más que un shield para conectar fácilmente los
componentes de la impresora, en particular los drivers de los
paso a paso. Así que sí, el código de esta entrada debería
funcionar. Mirando en el esquema de la ramps, los drivers de los
steppers tienen la entrada Enable (negada) conectada a Vcc a
través de una resistencia de Pull-up. En el eje Z, el pin
correspondiente es el A8.
https://uploads.disquscdn.com/images/b44ad5bd52d2ddd618f6
59342674388b2dcaf17b1eac55214c5ca8851a90e6e8.png Es
decir, prueba a de nir el… Read more »

Reply  2 years ago

luisllamas

Gracias a ti!

 Reply  2 years ago

luisllamas

No, puedes cambiarlo sin hacer reset. De hecho, el pin de dirección y el de


step, actúan en la electrónica del módulo controla los puentes H, pero
están "muy alejados" de la parte que controla la potencia. A efectos
prácticos, tiene la misma in uencia dar un paso en un sentido o en otro.

Las únicas consideraciones realmente que hay que tener en cuenta para no
dañar el módulo son:
- Nunca cambiar una conexión (mover cables) mientras esté alimentado.
- Añadir un condensador de >47uF para absorber picos de corriente.
- Poner las tierras en común.

 Reply  2 years ago

luisllamas

Hombre... son de 2.1A nominal y el A4988 da un máximo de 2A. Eso no es


casi nada de diferencia. El A4988 limitará la intensidad a sus 2A máximos
(que es lo que hacen estos drivers, limitar la corriente) y no deberías notar
prácticamente diferencia en el stepper.
Eso sí, metele un disipador bien gordo y si es posible un ventiladorcete no
le iría mal, porque trabajando a 2A se van a poner calentitos calentitos.

 Reply  2 years ago

juan C

hola, gracias por el post, una pregunta si tengo un motor nema 17 1.4 A y
mi fuente para motor es de 12v 6 A, es posible conectar al pololu ?

 Reply  2 years ago

luisllamas

Pues sin más información, no lo puedo saber. Toma mediciones en salida y


entrada, o prueba con otro driver u otro motor

 Reply  2 years ago

JOSE CAMPOS

hola felicitaciones por el post, una pregunta los pines reset y sleep en la
shield van conectados entre si pero no se ve que vayan conectados a otro
lado, es decir estan al aire, es correcto o me equivoco? gracias

 Reply  2 years ago

jose

Exactamente, ¿donde tomo Vref?

 Reply  2 years ago 

Luis

Entre la salida del potenciómetro en la placa y Gnd.

Reply  2 years ago

Raul Torralbo

Buenas Luis. Tengo una duda respecto al A4988. Me estoy montando una
CNC casera y comprobar la Vref, desde una tierra y el potenciometro,
siempre me da 5,02v, independientemente de a donde mueva el
potenciometro. Lo tengo montado en una shield y esa a su vez en un
arduino Uno. Solo tengo alimentado el arduino para modi car la Vref pero
no hay manera. Sabes si estoy haciendo algo mal? Muchas gracias.

 Reply  2 years ago 

marko

tengo el mismo problema pero a mi me da o.3 volts mueva el


potenciometro en cualquier direcccion los drivers son drv8825
Reply  2 years ago

Rafael Fernandez Diez

Es posible utilizar estos drivers para controlar dos simples motores CC al


igual que el conocido L298 o 293? Me falten los pines pwm para modular la
velocidad, o eso creo.

 Reply  1 year ago 

Luis

Podrías hacerlo, controlando con el pin enable y jugando con los


pasos para encender los motores DC en el sentido que quieres.
Pero ¿Para qué? Mejor usa el L298N como vimos en esta entrada
https://www.luisllamas.es/arduino-motor-corriente-continua-
l298n/

Reply  1 year ago

Kira

Hola, En primer lugar, muy buen artículo, se entiende a la perfección. Tengo


un problema y no sé cual puede ser el error... He cambiado los A4988 por
DRV8825, he ajustado los drivers con la Vref/Iref calculada con los motores,
muy comunes, Nema17 2,8v 1,5A. También he calculado los pasos por mm
según las correas que tengo y las poleas, he cambiado estos valores en
marlin multiplicandos por 2 y a la hora de poner en marcha me he dado
cuenta que moviendo en manual los ejes X e Y, de 0 a 300mm que es el
ancho de la… Read more »

 Reply  1 year ago

Juan

Hola,
Muchas gracias por el Blog, encontrar información precisa y estructurada
en español no es usual, por eso aprecio mucho tu esfuerzo. Mi duda (soy
un lego en arduino): Si deseas controlar dos motores (nema17) con dos
driver (drv8825) con una MEGA R3. ¿Como generas el código para que los
retardos(delays) de un bucle no afecten al segundo motor en un código
lineal como este?. Me puedes orientar en la tecnica adecuada para
controlar independientemente el giro de dos o más motores.

Muchas gracias.

 Reply  1 year ago

Gustavo

Hola tengo un problema cuando pongo tu programa en mi con guración el


motor empieza a hacer ruidos de ping pong, tengo un arduino uno con un
driver a4988, un nema 17, y querria saber como hacer para que le motor
cada vez que aprieto un pulsador avanza un número de pasos gracias, no
he encontrado información al respecto...
 Reply  1 year ago

carlos torres

buenas tardes tengo una duda la conexion es independiente de si el motor


es unipolar o bipolar?

 Reply  1 year ago

Hector

Como afecta el resto de codigo a los microdelays de los pasos, le limitaria la


velocidad?

 Reply  11 months ago 

Luis

Más microdelays, más precisión, pero necesitas más pasos para


girar lo mismo. Así que te limitará en función de la velocidad
máxima con al que puedas lanzar los steps al motor (que
depende de la carga de procesador que tenga tu programa)

Reply  11 months ago

Rodolfo

Buenas noches Luis, en DRV8825 el pin FAULT es una salida, por lo que no
puede conectarse directamente a Vdd, cuando se active esa salida se crea
un cortocircuito que puede dañar la salida. Por favor revisarlo. Saludos
cordiales

 Reply  11 months ago 

Luis

En realidad sí y no. El DRV8825 fue diseñado para ser compatible


con el A4988 y funcionar como reemplazo directo de este (el pin
Fault tiene una resistencia de 1K5).
Pero, es verdad que así no puedes usar el pin Fault.
La otra forma de alimentarlo es dejar el pin Fault, y alimentar el
Vdd por el puente Reset-Sleep.
En la entrada puse el primer modo de conexión, para no
complicarlo, y mostrar un esquema similar al que había puesto
para el A4988.
Gracias por tu aporte!

Reply  11 months ago

Motores Arduino | Aprendiendo Arduino

[…] Más información de estos drivers: https://www.luisllamas.es/motores-


paso-paso-arduino-driver-a4988-drv8825/ […]

 Reply  11 months ago

Alejandro
Hola!
Tengo un motor nema 17 que tiene como amperaje maximo 1,7 y drivers
DRV8825 los con gure a 0.85 pero cuando lo hago funcionar se calienta, el
disipador del driver tambien pero eso es normal, no?
Agrego que el driver esta sobre una ramps 1.4
Saludos

 Reply  3 months ago 

Luis

El driver es normal que se caliente. Un cierto calentamiento del


motor también. Ya lo que no sé es si es excesivo e indicador de
un problema o no. Es un tibio-caliente? o en plan podría freir un
huevo?

Reply  3 months ago

aponte ronald

una consulta, estoy usando una fuente externa para el motor y el arduino
lo alimento desde mi pc. debo unir la tierra de arduino y el negativo de la
fuente externa? tengo dudas en eso

 Reply  3 months ago 

Luis

Sí. Salvo casos muy extraños, lo normal es poner referencia de


tensión común (es decir, unir los GND)

Reply  3 months ago

Lr2

¿ Es posible dejar en una posicion un motor Nema con estos drivers sin que
consuma energia ? Por el tema del calor.

 Reply  3 months ago 

Luis

Para eso puede usar el pin enable. Ponerlo a HIGH desactiva las
salidas del driver

Reply  3 months ago


Excepto notación expresa, los contenidos de este sitio se ofrecen bajo
licencia Creative Commons License BY-NC-SA.

Más información

LEER CÓDIGOS 433MHZ DESDE ORDENADOR CON SDR Y RTL_433


30 MAYO, 2020

MEDIR TENSIÓN, INTENSIDAD Y POTENCIA CON ARDUINO Y INA219


10 MAYO, 2020

APLICACIONES MULTIPLATAFORMA CON ASP.NET CORE Y ELECTRON.NET


8 MAYO, 2020
LUIS
on Medir tensión, intensidad y potencia con Arduino y INA219

Hola Yonatan, gracias por indicarme la errata. Ya está corregido a 400mA

ANROSWELL HARRIS
on Crear y leer cheros Json fácilmente en C# con JsonNET

Compañero muchas gracias por este articulo, me fue de mucha utilidad...

Copyright ©2018, Todos los derechos reservados

Aviso legal Política de cookies

S-ar putea să vă placă și