condizione vera solo se lo è per un intervallo di tempo superiore a X

Buongiorno, credo che il quesito sia banale ma essendo alla prima esperienza non ho ancora capito come verificare la condizione. In pratica vorrei che se un un relè apre un contatto solo se tale condizione permane per un tempo superiore ad x allora arduino fa Y.
La difficolta è nello scrivere " permane per un tempo >x" il resto è alla mia portata.
Ringrazio chi potrà aiutarmi.

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

Si potrebbe usare millis(), conosci? Memorizzi millis() in una variabile al momento di inizio condizione vera.
Inoltre alzo una flag
Successivamente entro in una while che fino a che non sono passati x secondi...
Verifica con un if se la condizione risulta falsa
Nel caso abbassa il flag e fa uscire dalla while
Dopo la while inserisco una if che se la flag é alta allora y
É solo una scelta, credo ce ne siano altre simili che non mi vengono in mente. Capita questa?

Grazie per la risposta, adesso me la studio e provo ad applicarla e ti saprò a dire.

Ciao e grazie

Non mi piace il while perch Ti blocca le altre attivitá nella funzione loop() e perché non serve.

Quando leggi il pin High eil flag zero memorizzi il valore di millis() in una variabile unsigned long e metti il flag su 1.

Se poi il Flag é 1, il pin ancora HIGH e i millis() attuali sotraendo il valore millis memorizzator maggiore alla durata di pressione pulsante minimo chiami una funzione ch eti esegue quello che vuoi fare.

Inoltre devi controllare se il pin é LOW e in quel caso cancellare il flag.

Tutto questo puó stare in loop() insieme ad altre funzioni che sono attive.

Ciao Uwe

Credo che tu possa risolvere semplicemente

basta dividere la cosa in tre parti

riconoscimento del tasto premuto

conteggio del tempo

esecuzione azione

nei miei precedenti post ho provato a scrivere più volte cose simili

prova a vedere tra i post di agosto una cosa del tipo tasto rele 1 e 2 a seconda del tempo

un titolo del genere....

Trovato un'altro post, più recente, dove si parlava di un problema simile

prova a trarre ispirazinoe da qui

https://forum.arduino.cc/index.php?topic=500242.0

Grazie a tutti per i consigli, vi terrò informati sui progressi.