lunedì 24 novembre 2014

Giochi di luci con i Led ed Arduino UNO R3 per Natale - 2a parte

Ciao e ben ritrovato sul blog Aspettando il Bus.
Oggi continueremo con la seconda parte della descrizione del modulo con 14 LED collegato ad Arduino UNO R3. Se hai perso la prima parte dell'articolo puoi seguire questo link e se hai dei dubbi sulla sua realizzazione ho creato una pagina con le FAQ.

Bene iniziamo con lo sketch che si chiama "prova14":

Sketch Prova14 (parte 1) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 1) per il modulo a 14 LED di Paolo Luongo

Una piccola premessa: quando ho pensato a come realizzare uno sketch semplice e didattico ho avuto diversi dubbi sulla sua realizzazione. Alla fine ho scelto la via più semplice (credo) e vorrei iniziare con la tecnica del bottom-up ossia dal particolare al generale. Se preferisci la descrizione Top-down basta andare alla fine di questo articolo e ... tornare indietro. Ovviamente le foto riguardano l'ambiente IDE di Arduino.

Tutto si basa su due semplici funzioni: Accendi() e Spegni(). Sono un diverso modo di richiamare il più noto comando digitalWrite() e permettono di poter leggere il programma in modo più semplice per noi Italiani. La variabile PinUscita è il numero del pin di Arduino UNO R3 che vogliamo controllare e avrà un valore intero compreso fra 0 e 13.

Sketch Prova14 (parte 2) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 2) per il modulo a 14 LED di Paolo Luongo
Ecco le prime due funzioni che utilizzano Accendi() e Spegni().
Gioco1 riceve come argomento il valore ritardo, espresso in milli secondi (mS), che sarà il tempo di attesa dopo l'accezione del LED: Accendi() metterà a livello alto (5 Volt) l'uscita k, poi ci sarà un ritardo di ritardo mS e Spegni() rimetterà l'uscita k a livello basso (0 Volt).
Quando l'uscita sarà a 5 Volt il LED corrispondente si illuminerà. Quando l'uscita sarà a 0 Volt il LED sarà spento.
Il comando for farà assumere alla variabile k tutti i valori interi compresi fra 0 e 13. In questo modo si illumineranno i LED dall'uscita 0 alla 13.
Gioco2() si comporta in modo analogo ma attiverà i LED dall'uscita 13 alla 0.

Sketch Prova14 (parte 3) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 3) per il modulo a 14 LED di Paolo Luongo
Le funzioni Gioco1() e Gioco2() si possono utilizzare in modo indipendente o racchiudere in un'altra funzione Gioco3() che le utilizza in sequenza. A questo punto avremo ben 3 comandi: Gioco1(),Gioco2() e Gioco3() con cui fare le nostre animazioni per Natale.

Sketch Prova14 (parte 4) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 4) per il modulo a 14 LED di Paolo Luongo
Gioco4() si occupa di accendere e lasciare accesi i LED collegati alle uscite 0 fino a 13, mentre Gioco5() li spegne con lo stesso ordine.

Sketch Prova14 (parte 5) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 5) per il modulo a 14 LED di Paolo Luongo
Gioco6() racchiude le due precedenti funzioni con un ritardo fra una accensione e la seguente di 125 mS.

Sketch Prova14 (parte 6) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 6) per il modulo a 14 LED di Paolo Luongo
Gioco8() utilizza la funzione Gioco5() già vista prima con la variante di Gioco7() per un nuovo effetto.

Sketch Prova14 (parte 7) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 7) per il modulo a 14 LED di Paolo Luongo
Qui le cose si fanno più interessanti: si gioca con due LED accesi contemporaneamente, facendoli "rimbalzare".

Sketch Prova14 (parte 8) per il modulo a 14 LED di Paolo Luongo
Sketch Prova14 (parte 8) per il modulo a 14 LED di Paolo Luongo
Ed ecco il programma principale.
La nota funzione setup() setta i pin di Arduino UNO R3 in uscita.
Il programma principale si limita a lanciare le varie funzioni realizzate.
Ti invito a sperimentare e a realizzarne di tue.

Bene io avrei finito con la descrizione. Se vuoi farmi vedere i tuoi giochi di luce, realizzati col mio circuito, non devi fare altro che passarmi il link della tua realizzazione.
Ne parlerò nella terza e ultima parte dei questo progettino per Natale.

Ora devo scappare... è in arrivo il Bus. :-)

Continua leggendo la terza parte o gli altri articoli del Blog.

Ciao
Paolo :-)

2 commenti:

Giuseppe Lobascio ha detto...

sign Paolo ho l'impressione che lei il software ce l'ha nel sangue io spero di potere avere ancora chiarimenti da lei lei che e di grande aiuto sto tentando ancora di fare un progettino ma aime spero di non aver cominciato troppo tardi con gli anni progetto molto untile proverò a modificarlo un pò arrivederci

Paolo PerCdS ha detto...

Egregio Sig. Giuseppe, la ringrazio per il complimento. Dia tempo al tempo e vedrà che anche nelle sue vene scorrerà tanto buon software. Mi auguro che segua ancora il blog e mi dia ogni tanto utili suggerimenti. Nel frattempo... buone vacanze!
Cordialmente
Paolo
:-)