Problema con funzione Millis - [RISOLTO]

torn24:
Ciao, io userei una variabile flag che assume i valori 0 e 1, e un timer con millis() che riporta la variabile flag allo stato iniziale.

Faccio un piccolo esempio :

byte flag=1; //Variabile globale

unsigned long tempo;

void loop(){

if(flag){ // Eseguo o non eseguo a seconda del valore di flag 1 eseguo, 0 non eseguo

}// End if
 
    if(condizione di pausa){

flag=0; // Interrompe l'esecuzione del codice dall if(flag)
                  tempo=millis();
    }

/***********************************/
 
  if(flag==0){// Esegue solo se è in pausa

if(millis()-tempo>=Pausa){ // Se la pausa è trascorsa
         
                flag=1; // La pausa è finita il programma ripete
                          // e questo pezzo di codice non viene eseguito fino alla prossima pausa
          }

}// End if
}



Se hai bisogno di due pause distinte, ti creerai due variabili flag, esempio flag1 e flag2, e due tempo1 tempo2, con due codici coem esempio postato.

Se ti è stato di aiuto metti per favore un punto di carma :)

Grazie della risposta, ma non riesco a capire i passaggi:

if(flag){                                 //devo inserire questo?
    if (valore <= h) { 
      digitalWrite (LED, HIGH);
    }. 

   }// End if
   
    if(condizione di pausa){ // devo anche dichiarare questa variabile?

                  flag=0; // Interrompe l'esecuzione del codice dall if(flag)
                  tempo=millis();
    }