.
Motor paso a paso con el módulo controlador DRV8825 y Arduino.
Indice
- Motor paso a paso con el módulo controlador DRV8825 y Arduino.
1.Motor paso a paso con el módulo controlador DRV8825 y Arduino.

// Definir las conexiones de los pines y los pasos por revolución del motor
const int pinDireccion = 2; // Pin que controla la dirección del motor
const int pinPaso = 3; // Pin que envía los pulsos de paso
const int pasosPorRevolucion = 200; // 200 pasos = 1 revolución completa (para motores paso a paso comunes)
void setup()
{
// Declarar los pines como salidas
pinMode(pinPaso, OUTPUT);
pinMode(pinDireccion, OUTPUT);
}
void loop()
{
// Establecer la dirección del motor en sentido horario (CW)
digitalWrite(pinDireccion, HIGH);
// Girar el motor lentamente
for(int x = 0; x < pasosPorRevolucion; x++)
{
digitalWrite(pinPaso, HIGH); // Generar pulso de inicio de paso
delayMicroseconds(2000); // Esperar 2000 microsegundos (2 ms) - pulso activo
digitalWrite(pinPaso, LOW); // Generar pulso de fin de paso
delayMicroseconds(2000); // Esperar 2000 microsegundos (2 ms) - pulso inactivo
}
delay(1000); // Esperar 1 segundo antes de cambiar de dirección
// Establecer la dirección del motor en sentido antihorario (CCW)
digitalWrite(pinDireccion, LOW);
// Girar el motor rápidamente
for(int x = 0; x < pasosPorRevolucion; x++)
{
digitalWrite(pinPaso, HIGH); // Generar pulso de inicio de paso
delayMicroseconds(1000); // Esperar 1000 microsegundos (1 ms) - pulso activo
digitalWrite(pinPaso, LOW); // Generar pulso de fin de paso
delayMicroseconds(1000); // Esperar 1000 microsegundos (1 ms) - pulso inactivo
}
delay(1000); // Esperar 1 segundo y repetir el ciclo
}
Explicación del funcionamiento:
Control de motor paso a paso:
- pinDireccion: Nivel HIGH = giro horario (CW), LOW = giro antihorario (CCW)
- pinPaso: Cada pulso (HIGH → LOW) hace avanzar el motor un paso
Velocidad de giro:
- Giro lento:
delayMicroseconds(2000)→ 2 ms entre flancos → Período total: 4 ms por paso - Giro rápido:
delayMicroseconds(1000)→ 1 ms entre flancos → Período total: 2 ms por paso
Secuencia completa:
- Gira 1 revolución completa en sentido horario (lentamente)
- Espera 1 segundo
- Gira 1 revolución completa en sentido antihorario (rápidamente)
- Espera 1 segundo
- Repite el ciclo infinitamente
Aplicaciones comunes:
- Impresoras 3D
- Máquinas CNC
- Robótica
- Posicionadores de precisión
- Sistemas de automatización
Nota: Este código está diseñado para controlar un motor paso a paso usando un driver como el A4988 o DRV8825. Los tiempos de pulso (2000µs y 1000µs) son ejemplos; ajústalos según las especificaciones de tu motor y driver.