Hola, tengo un programa sencillo
Una serie de leds, que se se encienden en secuencia al pulsar un botón
Luego con un segundo botón debería parar la secuencia
Y un tercer botón que haga la secuencia al reves
El problema que tengo es que al pulsar el boton de stop, no detiene la secuencia, sigue el loop de la secuencia
int pinLed1 = 13;
int pinLed2 = 12;
int pinLed3 = 11;
int pinLed4 = 10;
int pinLed5 = 9;
#define btnStart = 7;
#define btnStop = 6;
#define btnReverse =5;
int tiempo = 150;
float clickstart = 0;
float clickstop;
float clickreverse;
void setup() {
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(7, INPUT);
pinMode(6, INPUT);
pinMode(5, INPUT);
}
void loop() {
clickstart = digitalRead(7);
while(clickstart==HIGH){
start();
}
while(clickstop==HIGH){
clickstart==LOW;
stop();
reverse();
}
}
void start() {
digitalWrite(13,HIGH);
delay(tiempo);
digitalWrite(13,LOW);
delay(tiempo);
digitalWrite(12,HIGH);
delay(tiempo);
digitalWrite(12,LOW);
delay(tiempo);
digitalWrite(11,HIGH);
delay(tiempo);
digitalWrite(11,LOW);
delay(tiempo);
digitalWrite(10,HIGH);
delay(tiempo);
digitalWrite(10,LOW);
delay(tiempo);
digitalWrite(9,HIGH);
delay(tiempo);
digitalWrite(9,LOW);
delay(tiempo);
}
void stop() {
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
clickreverse=digitalRead(5);
}
void reverse() {
digitalWrite(9,HIGH);
delay(tiempo);
digitalWrite(9,LOW);
delay(tiempo);
digitalWrite(10,HIGH);
delay(tiempo);
digitalWrite(10,LOW);
delay(tiempo);
digitalWrite(11,HIGH);
delay(tiempo);
digitalWrite(11,LOW);
delay(tiempo);
digitalWrite(12,HIGH);
delay(tiempo);
digitalWrite(12,LOW);
delay(tiempo);
digitalWrite(13,HIGH);
delay(tiempo);
digitalWrite(13,LOW);
delay(tiempo);
}
La verdad no tengo idea que hacer, ya probé con diferentes metodos, una interrupción, sentencias if, etc.