Control Para Motores Paso A Paso Arduino Y A4988
int velocidad = 2;
int direccion = 3;
int reset = 9;
int pasos = 3500;
// the setup routine runs once when you press reset:void setup() {
// initialize the digital pin as an output.
pinMode(velocidad, OUTPUT);
pinMode(direccion, OUTPUT);
pinMode(reset, OUTPUT);
}
// the looproutine runs over and over again forever:
void loop() {
digitalWrite(reset, LOW); //Mientras reset este en LOW el motor permanecerá apagado y no sufrirá. El chip apagará todos lospuertos y no leerá comandos.
delay(100);
digitalWrite(reset, HIGH); //Cuando reset se encuentre en HIGH el motor arrancará y leerá los comandos enviados.
digitalWrite(direccion,HIGH);
for (int i = 0; i<pasos; i++) //Equivale al numero de vueltas (200 es 360º grados) o micropasos
{
digitalWrite(velocidad, HIGH); // This LOW to HIGH changeis what creates the
digitalWrite(velocidad, LOW); // al A4988 de avanzar una vez por cada pulso de energia.
delayMicroseconds(1700); // Regula la velocidad, cuanto mas bajo masvelocidad.
}
digitalWrite(reset, LOW); //Mientras reset este en LOW el motor permanecerá apagado y no sufrirá. El chip apagará todos los puertos y no leerá comandos.delay(100);
digitalWrite(reset, HIGH); //Cuando reset se encuentre en HIGH el motor arrancará y leerá los comandos enviados.
digitalWrite(direccion, LOW);
for (int i = 0;i<pasos; i++) //Equivale al numero de vueltas (200 es 360º grados) o micropasos
{
digitalWrite(velocidad, LOW); // LOW to HIGH hace que el motor avance ya que da la ordendigitalWrite(velocidad, HIGH); // al A4988 de avanzar una vez por cada pulso de energia.
delayMicroseconds(1700); // Regula la velocidad, cuanto mas bajo mas velocidad.
}
}
Regístrate para leer el documento completo.