Corso base di Arduino: giochiamo con i LED

Collegando qualche diodo LED ad Arduino si può ottenere qualcosa di magico. È sufficiente impostare e programmare opportunamente le porte in uscita per realizzare sistemi luminosi anche molto complessi.

Avatar di Elettronica Open Source

a cura di Elettronica Open Source

banner prova1

Quando Arduino pilota un attuatore di qualsiasi tipo, come abbiamo avuto modo di vedere nella scorsa puntata, si parla di uscita digitale. L'uscita digitale è un particolare terminale dal quale possono essere prelevati solo due diverse tensioni. In Arduino, l'uscita digitale avviene secondo la logica positiva, con una tensione di 5 V per il livello logico alto (Vero) e una tensione di 0 V (rispetto alla massa comune) per un livello logico basso (Falso).

Opportunamente programmate dal firmware, tali porte di output riescono ad inviare al mondo esterno dei segnali elettrici. A tali porte di output possono essere collegati gli attuatori. Si tratta di dispositivi diversificati che concretizzano una azione visibile e pratica. Contempliamo tra essi i diodi LED, le lampade, i buzzer, i motori, i display, gli allarmi, i relay, etc. Negli esempi che seguono vedremo come ottenere i più disparati effetti semplici utilizzando proprio i diodi LED come dispositivi luminosi.

Primo esempio: due diodi LED lampeggianti in controfase

Il primo esempio è molto comune ed è tanto utilizzato nella realizzazione di sistemi usati nel modellismo o per le segnalazioni stradali. Si tratta di due diodi LED che lampeggiano a fasi alterne, ad una opportuna cadenza: quando si accende il primo l'altro risulta spento, e viceversa. Tutta la logica di funzionamento è contenuta nel programma, da preparare con attenzione. Un'attenta analisi prevede le seguenti funzionalità base, descritte tramite pseudo-linguaggio:

  1. Definisce due porte 6 e 7 in uscita
  2. Accende il primo LED su porta 6 e spegne il secondo su porta 7
  3. Pausa di attesa
  4. Accende il secondo LED su porta 7 e spegne il primo su porta 6
  5. Pausa di attesa
  6. Ritorna al punto 2

Si consiglia di avere particolarmente chiara la sequenzialità delle operazioni: una CPU lavora in maniera differente rispetto all'uomo e ogni azione deve essere dichiarata esplicitamente e singolarmente. Il seguente listato effettua il lampeggio alternato sulle due porte in questione:

figura 1 schema1
Schema elettrico

figura 2 codice
Codice sorgente primo esempio

Il programma è molto breve e semplice e rispetta l'analisi programmata.

Secondo esempio: semplice gioco di luci

Nel prossimo esempio si vedrà come realizzare un semplice gioco di luce utilizzando un ciclo iterativo "for" per processare diverse porte, in modo comodo ed efficace. Il programma ha lo scopo di accendere e spegnere, uno per volta, i sette diodi LED che fanno capo alle porte 1~7.

figura 3 schema2

Schema elettrico

figura 4 codice
Codice sorgente secondo esempio

Come si vede, utilizzando i cicli, è possibile semplificare enormemente il codice, dal momento che ogni istruzione è eseguita in modo ripetitivo. Si noti come le porte siano, stavolta, richiamate da una variabile e non esplicitamente da una costante numerica esplicita.

Si consiglia di provare decine di volte i programmi proposti, modificando ogni volta, di poco, il codice. Questo per padroneggiare al massimo la scrittura dei propri programmi.

Tom's Consiglia

Per chi inizia ora e voglia dotarsi di tutto l'occorrente, Arduino Uno si trova facilmente a un prezzo abbordabile.