Problema con funzione Millis - [RISOLTO]

Mi sembra un po' complesso, due variabili tempo e due flag. In fondo la richiesta iniziale è un debounce di 15 secondi sia in attacco che in rilascio: «una pausa di 15 secondi prima di dare il consenso di accensione, la pausa deve avvenire anche quando il valore torna sotto quello impostato»

Un timer per debounce si fa con una riga ('tout' segue 'tin' con un ritardo di 'pausa' millisecondi solo se la variazione di 'tin' dura almeno 'pausa'):

if(tin == tout) tempo = millis(); else if(millis() - tempo >= pausa) tout = tin;

Quindi basta dare il giusto valore all'ingresso del timer per ottenere il giusto valore ritardato all'uscita:

byte tin = (valore <= h);
if(tin == tout) tempo = millis(); else if(millis() - tempo >= pausa) tout = tin;
digitalWrite(LED, tout);