Arduino e Led

Nel nostro primo progetto arduino, abbiamo fatto lampeggiare un led collegando un pin direttamente ad un uscita digitale di Arduino e l’altro direttamente a massa del circuito (polo negativo).

Questo va bene per la caratteristica del pin 13 di Arduino: il pin 13 è un pin dalle caratteristiche particolari che Arduino ci offre per arrivare più velocemente ai nostri primi risultati: non necessita di configurazione.

Arduino e Led, Introduzione

Normalmente però sopratutto quando i led da attivare sono più di uno, dobbiamo inserire una resistenza per stabilire correttamente la corrente che deve passare sul nostro diodo per una corretta illuminazione ed evitare di bruciare il led e/o le porte di Arduino (il nostro pin 13 è equipaggiato di una resistenza di 1 kOhm in serie, oltre ad essere accoppiato ad un piccolo led presente nella board che si illumina in base dello stato del pin).

Arduino led pin 13
Il pin13 ha un led che ne mostra lo stato integrato nella scheda

Se togliamo il led ed avviamo arduino il nostro programma infatti funzionerà lo stesso e potremo seguirne il funzionamento (il lampeggiamento) sul led montato nella scheda.

Se l’inserimento viene fatto quindi su altri pin, che non sono il 13, è necessario inserire una resistenza di protezione altrimenti, anche se non brucieremo magari il led, ne ridurremo drasticamente il periodo di vita.

resistenze, arduino led
Alcune di resistenze

Per approfondimenti su cosa sono le resistenze e come si usano vi rimando al link di un altro articolo nel nostro sito: La Resistenza, mentre per quanto riguarda l’accensione dei nostri led abbiamo bisogno di conoscere alcuni parametri che li caratterizzano per conoscere come dimensionare correttamente il nostro resistore.

Arduino e led: attenzione ai Consumi

Un diodo led acceso consuma dai 15 ai 20 mA circa mentre la caduta di tensione ai suoi capi varia a seconda del colore e del tipo di diodo led, nell’elenco possiamo vedere la caduta di tensione ai capi dei led dei principali colori:

  • colore rosso: 1,8 V
  • colore giallo: 1,9 V
  • colore verde: 2,0 V
  • colore arancio: 2,0 V
  • colore blu: 3,0 V
  • colore bianco: 3,0 V

Adesso che conosciamo questi valori tramite la legge di Ohm possiamo calcolare la dimensione corretta da scegliere per il nostro resistore tramite la formula:

R = (5 – 1,8) / 0,02 = 160 Ohm

Per capire questa formula dobbiamo pensare che la tensione sul pin di Arduino nello stato HIGH è di 5 volt, di questi 5 volt 1,8 cadono ai capi del nostro led quindi per arrivare a massa (0 volt) altri 3,2 (che sono appunto 5 – 1,8…) dovranno cadere ai capi della nostra resistenza mantenendo un passaggio di corrente corretta per far lavorare il nostro diodo (0,02 A cioè 20 milliampere).

Spero di non avervi creato confusione… (in questo caso potete fare domande nei commenti e sarò felice di rispondervi ndr).

Quando dovremo comperare la nostra resistenza però non potremo chiedere una resistenza da 160 Ohm in quanto non è possibile trovarne normalmente in commercio, il valore che possiamo recuperare è di 180 Ohm ma resistenze fino ad un 1K andranno benissimo lo stesso.

Arduino e led, mettiamoci all’opera

Per provare queste nostre nuove conoscenze realizzeremo un piccolo circuito che potrà disporre di più di un led, nell’esempio che andiamo a vedere ne sono stati utilizzati tre, con rispettive tre resistenze da 220 Ohm (queste avevo in casa :)).

Arduino Led, connessione arduino e led
Circuito Arduino e tre Led

Il programma che andremo ad eseguire ad eseguire su questo progetto sarà una versione “un po’ potenziata” del blink.ino che abbiamo usato nel primo progetto: invece di accendere e spegnere un singolo led dovrà essere in grado di accendere i tre led uno in sequenza all’altro.

Il codice:

/* Blink 123 */

int led1 = 11;
int led2 = 10;
int led3 = 9;

void setup() {
   pinMode(led1, OUTPUT);
   pinMode(led2, OUTPUT);
   pinMode(led3, OUTPUT);
}

void loop() {
   digitalWrite(led1, HIGH);
   digitalWrite(led3, LOW);
   delay(1000);
   digitalWrite(led2, HIGH);
   digitalWrite(led1, LOW);
   delay(1000);
   digitalWrite(led3, HIGH);
   digitalWrite(led2, LOW);
   delay(1000);
}

Ad occhio nudo probabilmente riuscirete a notare come ogni istruzione sia stata ripetuta tre volte.

A differenza di blink.ino dichiariamo tre variabili (una per ogni led) ed assegnamo a queste variabili il numero del pin di uscita digitale di Arduino che utilizzeremo per pilotare il led (11, 10 e 9 nel mio caso).

Nella funzione di setup() configuriamo i tre pin indicati prima come OUTPUT (uscita) per poter accendere i led.

La funzione loop() accende un led e spegne il quello precedentemente acceso, poi attende un secondo come in blink.ino e ripete lo stesso blocco di operazioni per gli altri due led, per poi ripetersi all’infinito accendendo i tre led in maniera consecutiva.

Al primo avvio di Arduino forse avete notato che andiamo a spegnere un led che non era acceso:

digitalWrite(led3, LOW);

Non fa nulla tanto se spegniamo qualcosa che è già spento… spento rimane! Questa istruzione però sarà utile in tutti gli altri cicli dopo il primo perchè spegnerà il led 3 ovvero l’ultimo che abbiamo acceso nel loop.

Ecco il video del programma in esecuzione:

Spero vi sia piaciuto. Ciao!

10 commenti su “Arduino e Led”

  1. il circuito a tre led è sbagliato, il gnd oltre che puntare alla striscia del positivo..che dice poco.. connette al anodo e quindi collegandolo cosi com è non può funzionare dalla scheda esce +5v ed il led deve trovarsi tra positivo e negativo per accendersi.

    Rispondi
  2. Buongiorno
    mi servirebbe un aiuto visto che sono un principiante. Ho trovato una centralina per il presepe e io l’ho costruita e vorrei usarla per dei plastici ma alle uscite con effetto luce è collegato un solo led. A me servirebbe aumentare il numero di led per ogni uscita mantenendo l’effetto progettato. Come dovrei fare per aumentare la potenza di uscita?

    Rispondi

Lascia un commento