Piccolo problema

Salve a tutti! Vorrei qualche consiglio di programmazione: come posso far si che arduino esegua un comando solo se per 5 secondi i valori che gli arrivano da un sensore risultano maggiori di 3? Grazie in anticipo

… la prima volta che ricevi un valore > 3 ti segni il tempo (usi la funzione millis()) ed alzi una flag, ogni volta che ricevi un valore, se > 3, se la flag è già alzata, non fai nulla, se <= 3 azzeri la flag. Nello stesso tempo (sempre nel loop()), controlli se la flag è alzata, se lo è controlli se dal tempo che hai memorizzato sono passati i 5 secondi e se si … esegui quello che devi eseguire.

Più difficile a dirsi che a farsi …

Guglielmo

E per verificare che dal primo millis siano passati 5 secondi devi riscrivere millis()?

Studiati bene come si usa la millis(), prima QUI, poi QUI ed infine leggi anche QUI e QUI ... vedrai che ti sarà tutto più chiaro :wink:

Guglielmo

PowaFux:
E per verificare che dal primo millis siano passati 5 secondi devi riscrivere millis()?

Ovvero, vai per differenza. millis() - oldmillis sai quanti millisecondi sono passati. 5000 = 5 secondi