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.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/giochi-di-luce-con-arduino-quinto-gioco.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.