Sto cercando di capire come usare la funzione millis() al posto di delay(). Ho fatto degli esempi e non capisco perchè uno di essi mi da dei risultati anomali. Nel prmo esempio ogni secondo la variabile i si incrementa di 1 (Funziona). Nel secondo esempio invece con un ciclo for assegno alla variabile i un valore compreso tra 0 e 19, ma non riesco a capire perchè usando la funzione millis ottengo un valore casuale, non va in ordine crescente. L'inizializzazione e il void setup sono comuni a tutti gli esempi.
questo funziona.. da quello che ho capito millis è un contatore e nn una pausa....
cioè ... nn ferma il programma ma si antoincrementa...
nel forum avevo vsto altri che ci stavano litigando ...
per cui bisogna cambiare la logica .. del programma.....
ritorno poi sul post del sensore di umidità.
Esatto, è necessario proprio modificare la logica del programma.
I cicli for, ad esempio, io li faccio sparire quando uso il millis().
Sto preparando un articolo dettagliato al riguardo che a breve dovrei postare ma il concetto è che NON bisogna fermare il ciclo loop con delay, for, while e varie.
Ogni sottociclo dovrebbe essere gestito da una ulteriore variabile di confronto con millis.
Si raggiunge un multitasking pressocchè reale...
Ciao nathanvi, per l'appunto stavo proprio cercando di eliminare un delay presente in un ciclo for che mi incasinava tutto, cerca il post sul sensore di umidità che ho messo, lì spiego il problema.