lunes, 13 de febrero de 2023

Motor paso a paso controlado con Arduino

El A4988 es un controlador (driver) de motores paso a paso, para su uso desde un microcontrolador Arduino o similar. Estos controladores permiten controlar 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.











const int dirPin = 8;
const int stepPin = 9;
const int steps = 200;
int stepDelay;
void setup() {
   // Marcar los pines como salida
   pinMode(dirPin, OUTPUT);
   pinMode(stepPin, OUTPUT);
}
void loop() {
   //Activar una direccion y fijar la velocidad con stepDelay
   digitalWrite(dirPin, HIGH);
   stepDelay = 250;
   // Giramos 200 pulsos para hacer una vuelta completa
   for (int x = 0; x < steps * 1; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
   //Cambiamos la direccion y aumentamos la velocidad
   digitalWrite(dirPin, LOW);
   stepDelay = 150;
   // Giramos 400 pulsos para hacer dos vueltas completas
   for (int x = 0; x < steps * 2; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
}


Este driver A4988 también se puede utilizar colocado en una placa STEPPER Drivers Modular que simplifica sensiblemente las conexiones, tal como indica la siguiente imagen.











 


No hay comentarios: