Hola buen día, mi problema es el siguiente: "Encienda 3 leds con un pulsador, la secuencia es; encender led 1 luego espera 3 segundos, enciende led 2 espera 3 segundos, enciende led 3, la secuencia se puede detener en cualquier momento usando un segundo pulsador", ya use millis pero, a la hora de encender el tercer led, no lo hace, y no entiendo por que no, según mi logica todo esta correcto, hasta probe en usar un segundo tiempo para que el tercer retardo tenga un tiempo aparte de 6s y entre luego de que 3s se haya encendido el led 2.
Espero puedan me puedan ayudar..
Adjunte el codigo.
int led1 = 4;
int led2 = 5;
int led3 = 6;
int inicio = 2;
int paro = 3;
int a,b,c,d,e,f;
int estado1=0, estado2=0, estado3=0;
long tiempoantes=0;
long intervalo=3000;
void setup() {
pinMode(inicio, INPUT);
pinMode(paro, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
a = digitalRead(inicio);
b = digitalRead(paro);
unsigned long tiempoactual = millis();
if(b==0){
if(a==1){
estado1=1;
tiempoantes=tiempoactual; //Iguale el tiempo aquí porque, millis sobrepasaria el tiempo antes de pulsar el botón.
}
if(tiempoactual-tiempoantes>=intervalo && estado1==1){
estado2=1;
tiempoantes=tiempoactual;
}
if(tiempoactual-tiempoantes>=intervalo && estado2==1){
estado3=1;
tiempoantes=tiempoactual;
}
}
else if(b==1){
estado1=0;
estado2=0;
estado3=0;
}
digitalWrite(led1, estado1);
digitalWrite(led2, estado2);
digitalWrite(led3, estado3);
}