Go Down

Topic: Quesito su loop e diversi analogRead() (Read 553 times) previous topic - next topic

franceslup

Salve a tutti, ho una piccola curiosità sulla quale non ho ancora avuto modo di provare di persona...
Sto per costruire una piccola stazione barometrica sfruttando tre sensori...
Uno di Temperatura, uno di umidità e uno di pressione atmosferica.
Volevo sapere... è possibile nel ciclo loop leggere i 3 valori di questi sensori con delay differenti?
Ad esempio,
leggere la temperatura ogni minuto e leggere la pressione atmosferica ogni ora...
Leggere la pressione atmosferica molto spesso è poco utile anche perchè vorrei vedere quanto aumenta o cala nell'ardo di due o tre ore consecutive e di conseguenza visualizzare su un display se c'è rischio di precipitazioni o meno...
Vi ringrazio

LucaGilardi

certamente :) il metodo più semplice e immediato che mi viene in mente è quello di utilizzare il delay e una variabile "contatore" per esempio, leggi la temperatura ogni minuto (delay di un minuto). dopo aver letto la temperatura incrementi una variabile. Quando questa variabile ha memorizzato il numero 60 (minuti = 1 ora) la riazzeri e misuri la pressione :)
altri metodi li puoi gestire con la libreria di leo o con la millis

Ciao, se ti servono altre info chiedi pure :)
Luca

leo72


Salve a tutti, ho una piccola curiosità sulla quale non ho ancora avuto modo di provare di persona...
Sto per costruire una piccola stazione barometrica sfruttando tre sensori...
Uno di Temperatura, uno di umidità e uno di pressione atmosferica.
Volevo sapere... è possibile nel ciclo loop leggere i 3 valori di questi sensori con delay differenti?
Ad esempio,
leggere la temperatura ogni minuto e leggere la pressione atmosferica ogni ora...
Leggere la pressione atmosferica molto spesso è poco utile anche perchè vorrei vedere quanto aumenta o cala nell'ardo di due o tre ore consecutive e di conseguenza visualizzare su un display se c'è rischio di precipitazioni o meno...
Vi ringrazio

Certo. Allo scopo ho pubblicato da tempo 2 librerie, una si chiama "looper" ed una "leOS".
La prima è uno schedulatore che si occupa al posto tuo di eseguire dei compiti ad intervalli scadenzati. La richiami in fondo al loop() e questa controlla se deve eseguire qualcosa.
La seconda esegue sempre delle funzioni ad intervalli regolari come la prima ma con la differenza che lo fa in modo del tutto indipendente dal loop() principale sfruttando dei meccanismi di automazione basati sull'HW del microcontrollore (timer e/o watchdog)

franceslup

Grazie mille :D appena posso mi metto all'opera...

Go Up