Oggi ti presento l’ottavo gioco di luce che puoi realizzare con Arduino, siamo oramai quasi alla fine di queste festività e ancora in aria di festeggiamenti voglio aiutarti ad ultimare la tua realizzazione.
Probabilmente la utilizzerai solo l’anno prossimo nella sua completezza, e tutto il 2012 potrai reperire il materiale di recupero per realizzarla al meglio.
L’ottavo gioco che realizzerai è molto soft, il suo scopo qando l’ho immaginato è stato quello di poter trasmettere serenità e armonia osservandolo, proprio in vista della fine di questi giorni di ferie e di rientro a lavoro ho pensato che fosse d’obligo rilassarti per iniziare al meglio l’anno lavorativo.
Ed ecco la funzione che utilizzerai per il tuo ottavo gioco di luci con Arduino:
void game_eight() { for ( int i=minpin; i<=maxpin; i++) { if (digitalRead( pinButton ) == HIGH) { break; } SoftPWMSetPercent(i, 100); } delay(fadeUp*3); for ( int i=minpin; i<=maxpin; i++) { if (digitalRead( pinButton ) == HIGH) { break; } SoftPWMSetPercent(i, 0); } delay(fadeDown*3.5); }
Inizio subito a descriverti il funzionamento di questo nuovo gioco di luce:
linea 01: definisci la nuova funzione game_eight();
linea 03: inizia il solito ciclo for, in questa linea il ciclo lo imposti dal pin minimo (minpin) al pin massimo (maxpin) e questo significa che il gioco che stai realizzando parte dal pin più basso per arrivare al pin maggiore eseguendo per ciascun pin la stessa operazione, come un treno di luci dalla pima all’ultima serie;
linea 04: definisci il controllo sulla pressione del pulsante che hai definito per effettuare il cambio del gioco luminoso;
linea 06: per ciascun pin incrementa la percentuale di luminosità fino al 100%;
linea 08: imposta un tempo di attesa tra un cclo for ed il successivo pari a 3 volte il tempo di fadeUp definito per gli altri giochi;
linee 09-13: eseguono le stesse operazioni viste per le righe precedenti, l’unica variazione significativa è data dalla percentuale impostata dalla linea 12, in cui indichi alla SoftPWM di spegnere la serie di luci collegata ad un dato pin portando il valore a 0%;
linea 14: imposta un tempo di attesa pari a 3,5 volte il fadeUp impostato per tutti gli altri giochi.
Non resta che modificare la variabile totalGame in modo che anche questo ottavo gioco di luce sia contemplato tra quelli selezionabili:
int totalGame=8;
e aggiungere nella funzione di loop() le linee di codiche che insegnino allo sketck a gestire il nuovo gioco di luce:
if (game == 8) { for ( int i=minpin; i<=maxpin; i++) { SoftPWMSetFadeTime(i, fadeUp*3, fadeDown*3 ); } game_eight(); }
Avrai subito notato che non si discosta molto dalle impostazioni date per i precedenti giochi di luce, la differenza principale è alla linea 03: in cui la SoftPWMSetFadeTime imposta i valori di incremento e decremento della siddolvenza con tempi tripli rispetto a quelli degli altri giochi.
Ecco svelato il trucco con cui questo gioco si rivela il più lento ed anche il più rilassante.
Se lo ritieni comunque troppo veloce non devi far altro che aumentare il valore di moltiplicazione del fadeUp e del fadeDown portandolo da 3 a 4,5,….
Ti consiglio di aumentare proporzionalmente anche i fattori di moltiplicazione delle linee 08 e 14 nella funzione game_eight();
Buone feste.
4 commenti
1 ping
Vai al modulo dei commenti
ciao mauro ,complimenti per il sito ci sto passando ore intere nel leggere i tuoi post,mi sono appassionato da pochi giorni ad arduino,sono in possesso di un kit base arduino uno,vorrei provare con il pilotaggio di una strisci led smd,mi puoi aiutare nel realizare il collegamento della stessa e lo sketch,io possiedo una striscia led rgb con il telecomando per i vari giochi di luce ma vorrei ottenere la stessa cosa con arduino e qualche pulsante da circuito stampato per variare i giochi.ma francamente non so da dove iniziare.
spero non sia troppo grande la mia richiesta di aiuto,nel caso mi potresti indirizzare su testi da comprare per imparare la programmazione
grazie ancora e complimenti per il sito stupendo.
Autore
Ciao Alberto,
nulla é troppo grande se hai voglia di fare, se sei un makers 🙂
Pilotare delle strisce di led non é complicatissimo ma ti occorrono alcune info su cosa dia un driver per led, che tipo di strisce possiedi e quali caratteristiche elettriche esse possiedano.
Quelle che conosco io sono strisce della 3M da 5m in cui il ed cono connessi tra loro a 3 a 3 in parallelo e puoi accendere tutte insieme o dividere i gruppi di 3 interrompendo il circuito e saldando nuovi terminali da collegare ad arduino.
Certo è che questo tipo di strisce hanno bisogno di driver di potenza per led di cui trovi qualche articolo sul blog.
So dell’esistenza di strisce di led programmabili di cui futura elettronica ha trattato in qualche articolo dei mesi scorsi, forse trovi la versione PDF gratuita sul loro sito.
Per i giochi di luce proprio l’anno scorso per il natale ho realizzato 8 giochi di luce con arduino, prova a leggere quegli articoli, scoprirai come é semplice con arduino realizzare ciò che vuoi.
Mauro
Ciao Mauro, ho letto molti tuoi post e grazie a te mi sono appassionato ad Arduino e al suo potenziale, ma la mia inesperienza nel campo programmazione non mi aiuta a realizzare progetti che ho in mente.
A tal proposito ti chiedo come posso creare questo effetto dissolvenza su una striscia a led ws2813 e temporarizzarla attraverso un RTC, il quale gestirebbe la partenza della dissolvenza dal minimo al massimo in un determinato periodo(per dire in mezz’ora) ed ad una ora precisa farebbe il contrario?
Ti ringrazio in anticipo per l’attenzione
Carlo
Autore
Ciao Carlo,
il progetto è fattibile, ti consiglio di leggere gli articoli dedicati ai neopixel ed ai led tipo WS2812.
Una volta che hai compreso, da questo articolo, come realizzare i giochi di luce che desideri il passo ad applicarli ai WS2812B ti sarà semplice.
Per la condizione oraria posso consigliarti uno dei miei articoli sulla gestione dell’RTC ( consiglio il DS3231 ) ed almeno un articolo dedicato ad una centralina.
[…] Ottavo Gioco […]