Drivers NEMA paso a paso (WIP)

Conectar un motor paso a paso directamente es engorroso, para eso existen estos drivers que simplifican la conexión y ofrecen un control adicional sobre el mismo como: micropasos, límite de corriente o protección contra sobrecargas. Hay tres modelos de drivers en el mercado (A4988, DVR8825, TMC2208, TMC2209) que tienen características un tanto diferentes.
Precauciones
- Utilizar un destornillador adecuado para calibrar el potenciómetro con cuidado ya que es muy sensible.
- Conectar el condensador correctamente o explotará.
- Hay que ajustar el potenciómetro a la intensidad del motor e incluso menos o se puede dañar tanto el driver como el motor como la placa.
Esquema A4988:

Especificaciones:
- VDD: 3.3v-5v
- VMOT: 8v-35v
- Intensidad máxima: 1A sólo, 2A con disipador.
- Resolución: paso completo, 1/2 de paso, 1/4 de paso, 1/8 de paso y 1/16 de paso.
- Protección por alta temperatura, cortocircuito, sobre tensión y sobre intensidad.
- Generan ruido en el motor, pero es muy económico.
Cómo se conecta:
- ENABLE: sirve para activar o desactivar el motor. Si se pone en LOW o no conectado el motor estará activo y si está en HIGH se desactivará para evitar el constante consumo en reposo.
- MS1, MS2, MS3: son los micropasos. Dependiendo de cuáles estén alimentados estarán configurados los micropasos.
- RESET y SLEEP: debe tener un puente para que no esté el driver en suspensión.
- STEP: es el pin que recibe los pasos.
- DIR: es el que recibe en qué dirección va a girar (LOW o HIGH)
- VMOTOR: es la alimentación positiva que va a usar para el motor.
- GND: el negativo de la batería.
- 2B, 2A, 1B, 1A: donde se conectan los dos polos del motor siguiendo los colores.
- VDD: alimentación lógica de la placa.
- GND: a GND de la placa.
Es necesario poner un condensador de al menos 100 uF y más del voltaje a utilizar para evitar dañar el driver y estabilizar la corriente.
Esquema DVR8825:

Especificaciones:
- VDD: 2.3v-5.5v
- VMOT: 8.2v-45v
- Intensidad máxima: 1A sólo, 2.5A con disipador.
- Resolución: paso completo, 1/2 de paso, 1/4 de paso, 1/8 de paso, 1/16 de paso y 1/32 de paso.
- Protección por alta temperatura, cortocircuito, sobre tensión y sobre intensidad.
- Genera menos ruido en el motor que el driver A4988, pero es un poco más costoso.
Esquema TMC2209:

Especificaciones:
- VDD: 3v-5v
- VMOT: 4.75v-36v
- Intensidad máxima: 2A
- Resolución: paso completo hasta 1/256 pasos.
- Protección por alta temperatura, cortocircuito, sobre tensión y sobre intensidad.
- Conexión UART.
- Standby current reduction: reducción de corriente en espera.
- StealthChop2: para un funcionamiento silencioso con el motor parado y a altas velocidades. sin pérdida de torque, también llamado modo silencioso.
- CoolStep: controla la corriente para disminuir drásticamente el calentamiento de los motores y controladores, reduciendo la tensión de manera inteligente cuando no existe carga.
- StallGuard: detecta la carga del motor, reduciendo el consumo de corriente, se usa para eliminar los sensores de fin de carrera (sensorless homing).
- SpreadCycle: funcionamiento más suave al parar el motor y volver a acelerar, también ofrece un rendimiento superior en los micropasos, también conocido como modo fuerza.
- DcStep: permite el movimiento a alta velocidad sin perder pasos.
- MicroPlyer: mayor suavidad en micropasos.
- Funcionamiento ultra silencioso, pero más costoso que los drivers A4988 y DRV8825.
Este driver es el tope de gama de todos los demás superando incluso a los TMC2100, TMC2130 y TMC2208.
Calibración A4988:
Alimentamos por VDD 5V y GND de pla placa y ahora con la punta negativa del polímetro a GND y la positiva enganchada al destornillador del potenciómetro.
Vref = Imotor * 8 * RS
Si motor es de 1.7A le ajustaremoa a 1.5A. Y si la resistencia es de R100 será 0.1 de RS. Entonces:
Vref = 1.5A * 8 * 0.1 o sea dará 1.2V en el potenciómetro.
Calibración DVR8825:
Alimentamos por VDD 5V y GND de pla placa y ahora con la punta negativa del polímetro a GND y la positiva enganchada al destornillador del potenciómetro.
Vref = Imotor * 5 * RS
Si motor es de 1.7A le ajustaremoa a 1.5A. Y si la resistencia es de R100 será 0.1 de RS. Entonces:
Vref = 1.5A * 5 * 0.1 o sea dará 0.75V en el potenciómetro.
Calibración DVR8825:
Alimentamos por VDD 5V y GND de pla placa y ahora con la punta negativa del polímetro a GND y la positiva enganchada al destornillador del potenciómetro.
Vref = Imotor / 0.707
Si motor es de 1.7A le ajustaremoa a 1.5A. El RS típico es de 0.11 ohm. Entonces:
Vref = 1.5A / 0.707 o sea dará 2.12V en el potenciómetro.
Código para mover el motor una vuelta:
Definimos pin analógico de entrada:
#define pinInfra A0
Devuelve valores según esté cerca un objeto
Serial.println(analogRead(pinInfra));
Notas
- No requiere de librerías.
- Emplear un disipador para evitar quemar el driver.