aiuto per gestione rampa PWM LED

ciao a tutti,
sto cercando di creare una rampa PWM per fare un fading da un valore ad un'altro.
La mia intenzione è di illuminare un acquario a led e di gestire una sorta di alba-tramonto con una sfumatura costante anzichè il passaggio drastico tra la luce giorno e la luce tramonto.
Ci sono molti esempi per farlo, ma tutti che usano la funzione delay() per creare le pause e questo mi bloccherebbe il programma in attesa che passi tutta la fase di fading.
La soluzione sarebbe usare millis o meglio ancora la libreria tween.h, altre non ne ho trovate che facciano al mio caso.
Purtroppo per questa libreria non ho trovato applicazioni o degli esempi abbastanza semplici per capire la logica di base. Leggendo tutti i files della libreria sono riuscito a capire poco (beata ignoranza...)
Qualcuno mi sa indicare un codice minimo da cui estrapolare la giusta sintassi?
E' mia intenzione poi che il mio code ad una certa ora passi da un luminosità ad un'altra in un arco di tempo da me definito per poi rimanere costante per un più lungo periodo, usa sorta di sole virtuale.
grazie a tutti!

Ciao,
Da quello che ho capito la funzione millis non è consigliata perché va in overflow dopo 50 giorni generando un Reset del contatore.
Alcuni utenti stanno sviluppando una nuova libreria che risolve in parte il problema spostabdo la data dell' overflow.

Qui trovi la discussione dedicata

http://arduino.cc/forum/index.php/topic,101938.0.html

Sí, dopo 49,4 Giorni i millis() ripartono da zero ma facendo il controllo if in modo giusto il overflow non comporta nessun errore nel tempo di ritardo.
L' unica limitazione é se il tempo di ritardo deve essere maggiore di 49 giorni.

Ciao Uwe

Dany_XIII:
Ciao,
Da quello che ho capito la funzione millis non è consigliata perché va in overflow dopo 50 giorni generando un Reset del contatore.
Alcuni utenti stanno sviluppando una nuova libreria che risolve in parte il problema spostabdo la data dell' overflow.

Qui trovi la discussione dedicata

http://arduino.cc/forum/index.php/topic,101938.0.html

La libreria secTimer è pronta e funzionante, usa lo stesso principio di millis (un contatore di 32 bit) ma contando i secondi invece che i millisecondi. Grazie a ciò la mia libreria è capace di gestire periodi temporali fino a più di 136 anni contro i 49,7 giorni della millis :wink:

Alternativamente alla libreria esistono anche in quella discussione un paio di modifiche da apportare ai file del core di Arduino che però funzionano solo per l'Arduino, a differenza della libreria che funziona con molti microcontrollori Atmel.

grazie!
passo subito a leggere e provare tutti i suggerimenti che mi avete dato.
Mi rimane la curiosità di non conoscere la libreria tween che sembra proprio dedicata alle rampe pwm, ma sembra che nessuno la usi.
Faccio un po' di prove e poi vi saprò dire...

grazie ancora!

Non conosco la libreria Tween né sono riuscita a trovarla in rete.
Non so dirti come opera.