He emparejado L297 y L298 para hacer un controlador paso a paso bipolar. Mis esquemas son:
Heconectadolospinesnúmero4y5dedirecciónrespectivamenteenArduino.Estoyusandounafuentedealimentaciónde5VdeunadaptadordeCC
Elcódigoqueestoyusandoes:
#definestepPin4#definedirPin5voidsetup(){Serial.begin(9600);Serial.println("Starting stepper exerciser.");
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
digitalWrite(dirPin, HIGH);
digitalWrite(stepPin, LOW);
}
void loop() {
int i, j;
for (i=1000; i>=200; i-=100) {
Serial.print("Speed: ");
Serial.println(i);
for (j=0; j<2000; j++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(i);
digitalWrite(stepPin, LOW);
delayMicroseconds(i);
}
delay(500);
digitalWrite(dirPin, !digitalRead(dirPin));
for (j=0; j<2000; j++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(i);
digitalWrite(stepPin, LOW);
delayMicroseconds(i);
}
delay(1000);
Serial.println("Switching directions.");
digitalWrite(dirPin, !digitalRead(dirPin));
}
}
Estoy usando motores bipolares 5V NEMA17, la hoja de datos se puede encontrar aquí: hoja de datos
Las especificaciones del motor son aquí
También probé L297 con L293d, pero las cosas no están funcionando como deberían.
Lo más probable es que los problemas estén relacionados con el oscilador o el pin del reloj (es posible que el pulso no se esté generando). Antes de publicar la pregunta, tuve una búsqueda rápida en Google que me mostró que no era la única que enfrentaba este problema. / p>