Soy extremadamente novato en arduino y estoy intentando aprender a controlar motores paso a paso.
He hecho este programa:
#define xstep 2 // Step pin
#define xdir 5 // Direction pin
#define xhab 8 // Enable pin
#define pul1 12 // Input pin 1
#define pul2 13 // Input pin 2
int retardo = 10;
void setup() {
pinMode(xstep, OUTPUT);
pinMode(xdir, OUTPUT);
pinMode(xhab, OUTPUT);
pinMode(pul1, INPUT);
pinMode(pul2, INPUT);
}
void loop() {
digitalWrite(xhab, LOW); // Habilita el driver
digitalWrite(xdir, LOW); // Define la dirección
for (int i = 0; i < 20; i++) { // limita la rotación a 20 pasos
digitalWrite(xstep, HIGH);
delay(retardo);
digitalWrite(xstep, LOW);
delay(retardo);
}
digitalWrite(xhab, HIGH); // deshabilita el driver
}
La idea es que el motor de 20 pasos y se pare, pero no para nunca, no se que hago mal, he buscado en foros y he hecho muchas pruebas, no cambia nada, nunca se para.
Tu motor no se detiene porque el loop() se repite continuamente. Si solo quieres hacer algo una vez al inicio del programa, pon ese código en el setup().