Buenas noches,
Estoy en el desarrollo de un proyecto en el cual utilizo un switch para seguir cierto orden en el programa.
Mi duda va en que quiero colocar un 'timeout' en los cases, de tal manera que si por ejemplo estoy en el case 1, o case 2 y demoro más de 10 segundos, vuelva al case 0.
He intentado buscar si hay algún código similar, o intentar pensarlo por mi mismo mediante diagramas y demás, pero me ha ganado la paciencia.
Les dejo un código de prueba para que vean a lo que me refiero.
Como ven, son 3 botones y los 3 imprimen distintos mensajes. Utilicé un switch para que la persona presione el primer botón, luego el segundo y el tercero, en ese orden.
-Lo que quiero hacer es que si la persona presionó el primer botón, pasaron mas de 10 segundos y no presionó el segundo botón, tenga que volver a presionar el primer botón nuevamente.
-Lo mismo en el otro case, si la persona demoró más de 10 segundos y no presionó el tercer botón, tenga que volver a presionar el primer botón nuevamente.
Gracias.
int var = 0;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
void loop() {
switch(var){
case 0:
if(digitalRead(2) == HIGH){
Serial.print("Se presiono el primer boton");
var++;
}
break;
case 1:
if(digitalRead(3) == HIGH){
Serial.print("Se presiono el segundo boton");
var++;
}
break;
case 2:
if(digitalRead(4) == HIGH){
Serial.print("Se presiono el tercer boton");
var = 0;
}
break;
}
}