Como regresar tiempo?

Buenas tardes compañeros.
Tengo un problema, se supone que con el boton1, cuenta 10 segundos para encender el led,y si lo hace pero después de que lo suelto no se como regresar el tiempo a 0, porque el programa ya no vuelve a contar 10s. Y si me podrian orientar como meter una interrupcion, ojala cuente con su apoyo, muchas gracias.

este es el código que he realizado.

int boton1 =4;
int boton2 =5;

unsigned long inicioHigh;  //Para dar 5 segundos despues de que el boton1 este HIGH



void setup() {

 pinMode(4, INPUT);
 pinMode(5, INPUT);

 pinMode(11, OUTPUT);
 pinMode(12, OUTPUT);
 
   inicioHigh=millis();   //para el tiempo del primer reelevador

}

void loop() {

if (digitalRead(boton1) == HIGH && digitalRead(boton2) ==LOW){  //si el boton1 esta accionado
 

   unsigned long tiempoTranscurrido=millis()-inicioHigh;   //contar 10s
   if(tiempoTranscurrido>=10000)
   digitalWrite(11, LOW);
   
   
}

if (digitalRead(boton1) == LOW && digitalRead(boton2) == HIGH){   //si el boton 2 esta accionado
 
 digitalWrite(12, LOW);
 
}

else {
 digitalWrite(11, HIGH);
 digitalWrite(12, HIGH);
}

}

Tendrías que reinicializar inicioHigh=millis. Así reseteas tu contador e tiempo

Oye muchas gracias, ya logre lo que quería hacer.
Aquí dejo el código, por si les sirve de algo. Hasta presionar el boton1, comienza a contar 6 segundos y activa el relevador1, después hasta presionar el boton2, se activa el relevador2. y si los dos estan sin presionar, el contador se reinicia.
muchas gracias.

int boton1 =4;
int boton2 =5;

unsigned long time;
unsigned long t = 0;

unsigned long inicioHigh; //para reinciar el contador

int Dt= 6000; //Para dar 6 segundos despues de que el boton1 este HIGH

void setup() {

pinMode(4, INPUT);
pinMode(5, INPUT);

pinMode(11, OUTPUT);
pinMode(12, OUTPUT);

inicioHigh=millis();

//para el tiempo del primer reelevador

}

void loop() {
time = millis();

if (digitalRead(boton1) == LOW && digitalRead(boton2) == LOW){ //Se reinicia el contador a 0

inicioHigh=millis();

}

if (digitalRead(boton1) == HIGH && digitalRead(boton2) ==LOW) {

if (time - inicioHigh > Dt){ //al presionar el boton1, cuenta 6 segundos

digitalWrite(11, LOW);

}
}

if (digitalRead(boton1) == LOW && digitalRead(boton2) == HIGH){ //Al presionar el boton2, se accion el relevador2

digitalWrite(12, LOW);

}

else {
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}

}

Moderador:
Tienes varios mensajes y aun no sabes usar etiquetas.
Por favor lee las normas del foro y edita tu códigos usando etiquetas. No preguntes como se hace, solo lee las normas y corrige tu post#2, el inicial ya lo he modificado.