Problema con funzione Millis - [RISOLTO]

Riflettendo sul tuo codice iniziale, mi sembra che il problema che non lo fa funzionare correttamente sia la mancata aggiornamento della variabile tempo con la funzione millis()

Non so se è corretto prova a vedere, potrebbero esserci degli errori.

byte flag1=1,flag2=1;

void loop () {

  pul_p = digitalRead (PULSANTEP);
  pul_m = digitalRead (PULSANTEM);

  diminuisci();
  aumenta();
  salva();

  t = SHT2x.GetTemperature();
  h = SHT2x.GetHumidity();

  if (valore <= h) {
    if(flag1){// Eseguo una sola volta
       
        tempo_1=millis(); 
        flag1=0; //evita che venga ripetuto questo codice

    }
    if (millis() - tempo_1 > (pausa_1)) {
      digitalWrite (LED, HIGH);
      flag2=1; // Predispone la pausa a umidità maggiore
    }
  }

  if (valore > h) {
    if(flag2){// Eseguo una sola volta
         tempo_2=millis();
         flag2=0;

   }
    if (millis() - tempo_2 > (pausa_1)) {
      digitalWrite (LED, LOW);
      flag1=1; // predispone la pausa a umidità minore
    }
  }
}