#define STEP_PIN 4 // Pin de paso (STEP) conectado al controlador A4899
#define DIR_PIN 7 // Pin de dirección (DIR) conectado al controlador A4899
#define ENABLE_PIN 8 // Pin de habilitación (ENABLE) conectado al controlador A4899
#define ENDSTOP_PIN 2 // Pin del final de carrera
void setup() {
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(ENABLE_PIN, OUTPUT);
pinMode(ENDSTOP_PIN, INPUT_PULLUP); // Configurar el pin del final de carrera como entrada con pull-up
digitalWrite(ENABLE_PIN, LOW); // Habilitar el controlador
}
void loop() {
// Leer el estado del final de carrera
int endstopState = digitalRead(ENDSTOP_PIN);
// Verificar si el final de carrera está activado
if (endstopState == LOW) {
// Detener el motor
digitalWrite(STEP_PIN, LOW);
return; // Salir de la función loop()
}
// Si el final de carrera no está activado, continuar con el movimiento del motor
digitalWrite(DIR_PIN, HIGH); // Establecer la dirección del motor en sentido horario
// Generar un pulso de paso
digitalWrite(STEP_PIN, HIGH);
delay(1); // Retardo de 10 milisegundos
digitalWrite(STEP_PIN, LOW);
delay(2); // Retardo de 10 milisegundos
}