processi simultanei?

buonasera a tutti! seguo da molto tempo il forum e possiedo da altrettanto tempo un arduino 2009.

vi espongo brevemente il mio problema: sto scrivendo il codice che mi permetterà di controllare temperatura, regolare delle ventole e accendere dei led in un computer.

ora: le ventole sono regolate in base alla temperatura grazie ala libreria PID. quindi io imposto la temperatura massima e lui provvede a mantenermela facendo girare più veloce o più lente queste benedette ventole. si pone però un problema: durante questo processo ho anche bisogno che i led si accendano per un'ora esatta ogni giorno e chiaramente sempre alla stessa precisa ora. il massimo della precisione la otterrei impostando un delay che però mi bloccherebbe il processo di rilevazione temperatura/regolazione ventole.

come faccio a fare in modo che questo avvenga? c'è la possibilità di impostare una specie di orologio fuori dal loop in modo che il sistema dei led si basi su questo?

non so se mi sono spiegato bene e mi scuso... ci riprovo: è come se l'arduino dovesse gestirmi 2 programmi diversi allo stesso tempo, due loop. il che presumo sia infattibile... quindi prevedevo l'uso di un orologio esterno ai loop, in modo che ogni processo possa richiamare l'ora ed eseguire ciò che deve eseguire ad ogni ciclo (sempre se necessario).

premetto che le mie conoscenze sono molto scarse, quindi magari è una cosa banalissima e che mi sfugge, o magari è una cosa molto complessa.

ringrazio in anticipo! Vincenzo

Cerca sul forum "millis", questo argomento è stato trattato un sacco di volte. Guarda anche l'esempio BlinkWithoutDelay.

PS: se segui il forum, mi pare strano che tu no n abbia mai visto queste discussioni, in media 1 volta a settimana si affronta l'argomento di far eseguire al'Arduino più compiti in momenti differenti oppure di pianificarli. :P

Se vuoi accendere un LED sempre alla stessa ora Ti serve un RTC. Ciao Uwe

la funzione millis() come supponevo non l'avevo proprio presa in considerazione. ho fatto alcune prove ma la storia dell'overflow dopo 50 giorni non mi è molto chiara, o meglio, non sono sicuro di poterla gestire alla perfezione e anche sballare il tutto di mezz'ora mi creerebbe dei problemi. il modulo rtc è definiticamente quello che mi ci vuole. grazie infinite ragazzi!

il problema non è l'overflow in se, ma il fatto che il clock può sbagliare anche di parecchi secondi al giorno, in pratica dopo una settimana altro che errore di mezzora :)

fai atenzione, che anche gli RTC più economici hanno questo problema!!!

Ho provato anche io a fare l'orologio con arduino prima di acquistare un RTC. Ero giunto ad avere un risultato soddisfacente anche usando il Delay che il codice impostava a 977 nei giorni pari ed a 978 nei giorni dispari. Ma tutto questo mi ha dato solo la soddisfazione di esserci riuscito perchè con 2,5€ investiti in un RTC completo di quarzo si è assotigliato di parecchio il codice ed è più semplice fare anche tutto il resto :)