Giochi di luce con Arduino – quinto gioco

Il natale è appena passato e siamo nel pieno delle festività, gli ultimi giorni del 2011 tra preparativi e attesa del Capodanno ho preparato un altro gioco luminoso per le tue decorazioni.

Luci di natale con Arduino

Il gioco di luci che puoi realizzare con questo sketch è quello mostrato nel video seguente:

Il suo funzionamento come quello del quarto gioco è molto semplice e l’effetto lo troverai sicuramente interessante.

Prima di tutto devi modificare la variabile totalgame portando il suo valore a 5 per indicare allo sketch la presenza di un nuovo gioco:

int totalGame=5;

Successivamente modifica la funzione loop() aggiungendo il codice che seleziona e gestisce il nuovo gioco da inserire:

if (game == 5) {
   for ( int i=minpin; i<=maxpin; i++) { 
      SoftPWMSetFadeTime(i, 0, 0);
   }
   game_five();
}

Non ti resta che inserire il gioco vero e proprio, ossia la funzione game_five() in fondo al tuo sketch in cui ci sono le linee di codice che consentono ad Arduino di eseguire la sequenza luminosa propria di questo effetto:

void game_five() {
  
   for ( int i=minpin; i<=maxpin; i++) { 
      if (digitalRead( pinButton ) == HIGH) { break; }
      SoftPWMSetPercent(i, 0);
   }
   delay(100);
   for ( int i=minpin; i<=maxpin; i++) { 
      if (digitalRead( pinButton ) == HIGH) { break; }
      SoftPWMSetPercent(i, 100);
   }
   delay(100);
  
 }

Come anticipavo le linee di codice presenti in questo gioco luminoso sono poche, al pari di quelle previste per il gioco precedente. Ecco come funziona:

linea 01: definisci la funzione game_five() di tipo vooid, in quanto non accetta e non restituisce alcun valore alla funzione chiamante ( loop );

linea 03: costruisci un ciclo di tipo for dal minpin al max pin in cui ad ogni incremento del valore di i esegui le istruzioni contenute tra parentesi;

linea 04: definisci un controllo basato sulla pressione del tasto che utilizzi per cambiare gioco luminoso, alla pressione del tasto la condizione di if è verificata e lo sketch interrompe il ciclo for per passare oltre, mantenendo premuto il tasto superi i delay settati alle linee 07 e 12 e rimandi il controllo alla funzione loop(); potrsti definire in modo differente la funzione game_five() e utilizzare un comando di return invece del break, questo eviterebbe di dover attendere i due delay, essendo il return immediato. Ti lascio questa variante come esercizio e possibile miglioramento dello sketch;

linea 05: è il primo cuore del gioco ossia la funzione SoftPWMSetPercent(pin,%) imposta per ciascun pin utilizzato dalle tue serie di luce il valore 0%, ossia le spegne;

linea 07: attendi il tempo stabilito di 100 millisecondi prima di continuare con lo sketch;

Le linee 08-12 eseguono la stesa sequenza di quelle appena viste con la differenza che alla linea 10 invece di spegnere la serie corrispondente al pin i la accendi portando la percentuale a 100%;

Se tutte le modifiche allo sketch sono andate a buon fine, puoi uplodare lo sketch sul tuo Arduino e premere il pulsante 5 volte per osservare il nuovo effetto.

Buone feste.

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/giochi-di-luce-con-arduino-quinto-gioco.html

Lascia un commento

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.