DO IT FOR x SECONDS [SOLVED]

Ciao a tuti, avrei un problema di programmazione. Se il sensore analogico "A" rileva un evento sopra o sotto una certa soglia deve far partire una routine anzichè un'altra. Tale routine deve stare in ascolto su due porte digitali differenti per un 5 secondi e aspettare un ulteriore evento. Nel caso questo evento non si verificasse tornare al loop principale... Come posso risolvere.... anche in pseudocodice?

Esempio:

int sensore_a=0;
int sensore_b=0;
int sensore_c=0;

void setup(){
  //fai i settaggi opportuni...
}

void loop(){
  //fai qualcosa...

  sensore_a=analogRead(PINA);
  
  if(sensore_a>500){
     rimani in ascolto sulla porta digitale 2 per 5 secondi e se succede qualcosa accendi un led rosso
  }else if(sensore_a){
     rimani in ascolto sulla porta digitale 3 per 5 secondi e se succede qualcosa accendi un led verde 
  }
}

Qualche idea?

Potresti entrare quando arrivi ai tuoi if, in un loop che dura 5 secondi che calcolerai con la funzione millis, e poi ne esci con un break

Era proprio quello che cercavo. Stasera provo. Grazie.