Tengo un pololu a4988 para controlar un motor paso a paso, pero no funciona, no manda señal a las bobinas del motor. He intentado regulando el potenciómetro pero tampoco consigo que funcione.
Lo tengo conectado como en el esquema que adjunto.
El pin 48 (enable) esta en LOW
El pin 46 (MS1) esta en LOW
El pin 44 (MS2) esta en LOW
El pin 42(MS3) esta en LOW
hola buenas.soy novato en esto pero muy muy novato en esto.aun asi estoy intentando hacerme una cnc con 3 a4988. y lo que si te puedo decir es que para mover un motor .necesito usar los pines dir , steep y rest.
usa este codigo modificandolo segun tu configuracio y ya nos cuentas:
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 loop routine 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 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, 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 change is 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 mas velocidad.
}
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
{