#define x_paso 15    // Define el Pin de STEP para Motor de eje X
#define x_dire 2    // Define el Pin de DIR  para Motor de eje X
#define x_habi 4    // Define el Pin de ENABLE  para Motor de eje X
#define FINAL_DE_CARRERA 13

int retardo = 3000;   // Menor numero el giro es mas rapido
int tiempo = 100;   // durante cuanto timpo da el giro el motor (vueltas)
void setup() {
  pinMode(x_paso, OUTPUT); pinMode(x_dire, OUTPUT); pinMode(x_habi, OUTPUT);
}

void loop() {
  giro(x_paso, x_dire, x_habi,, 1);
  delay(1000);
  giro(x_paso, x_dire, x_habi, 0);
  delay(1000);

  int final_de_carrera = digitalRead(FINAL_DE_CARRERA);

  // Verificar si el final de carrera está activado
  if (final_de_carrera == LOW) {
    // Detener el motor
    digitalWrite(x_paso, LOW);
    return; // Salir de la función loop()

  }

  // Si el final de carrera no está activado, continuar con el movimiento del motor

  digitalWrite( x_dire ,HIGH); // Establecer la dirección del motor en sentido horario

  // Generar un pulso de paso
  digitalWrite( x_paso,HIGH);
  delay(1); // Retardo de 10 milisegundos
  digitalWrite(x_paso, LOW);
  delay(2); // Retardo de 10 milisegundos
}

void giro(int paso_, int dire_, int habi_, int dir) {
  digitalWrite(habi_, LOW);  // Habilita el Driver
  if ( dir == 0) {
    digitalWrite(dire_, LOW);   // direccion de giro 0
    for (int i = 0; i < tiempo; i++) { // da  pasos por un tiempo
      digitalWrite(paso_, HIGH);
      delayMicroseconds(retardo);
      digitalWrite(paso_, LOW);
      delayMicroseconds(retardo);
    }
  }
  if ( dir == 1) {
    digitalWrite(dire_, HIGH);   // direccion de giro 1
    for (int i = 0; i < tiempo; i++) { // da  pasos por un tiempo
      digitalWrite(paso_, HIGH);
      delayMicroseconds(retardo);
      digitalWrite(paso_, LOW);
      delayMicroseconds(retardo);
    }
  }
  digitalWrite(habi_, HIGH);   // quita la habilitacion del
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
A4988
drv1:ENABLE
drv1:MS1
drv1:MS2
drv1:MS3
drv1:RESET
drv1:SLEEP
drv1:STEP
drv1:DIR
drv1:GND.1
drv1:VDD
drv1:1B
drv1:1A
drv1:2A
drv1:2B
drv1:GND.2
drv1:VMOT
stepper1:A-
stepper1:A+
stepper1:B+
stepper1:B-
led1:A
led1:C
r1:1
r1:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r