LINK: https://wokwi.com/projects/347184797098967635
CÓDIGO
#define VELOCIDAD 2000
//Grupo 16
int direccion= 9;
int pasos = 13;
int pulsador=12;
int reset=10;
int led=11;
int ledRojo=7;
int val = 0; //val se emplea para el estado del botón
int state = 0; // 0 es led apagado y 1 es encendido
int old_val = 0; // almacena el antiguo valor de val
int totalPasos = 200;
void setup() {
//Se define los pines de entrada y salida
pinMode(pulsador, INPUT);
pinMode(led, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(direccion, OUTPUT);
pinMode(pasos, OUTPUT);
pinMode(reset, OUTPUT);
}
void loop() {
val= digitalRead(pulsador); // se lee el estado del Boton
if ((val == HIGH) && (old_val == LOW)){
state=1-state;
delay(10);
}
old_val = val; // valor del antiguo estado
if (state==1){
digitalWrite(led, HIGH); // enciende el LED
digitalWrite(ledRojo, LOW);//se encenderá cuando complete la vuelta,
//mientras tanto el ledRojo se encontrara apagado
//Para fijar la dirección (dirPin)
digitalWrite(reset, LOW);
delay(2000);
digitalWrite(reset, HIGH);
digitalWrite(direccion, HIGH);
for(int i=0; i<totalPasos; i++){ // cuenta los pasos y cuando llega a 200 deja de rotar y se enciende el led rojo como alerta de que ya termino
digitalWrite(pasos, HIGH);
digitalWrite(pasos, LOW);
delayMicroseconds(VELOCIDAD);
}
digitalWrite(ledRojo, HIGH);
}
else(state);{
digitalWrite(led,LOW); // apagar el LED
digitalWrite(ledRojo, LOW);
}
}