Select Page

Arduino, giochiamo con 3 LED

da | 15 Lug 2015 | Arduino da Zero, Tecnologia | 0 commenti

Ora che hai assaggiato Arduino nel primo tutorial, è giunto il momento di fare sul serio! Ti avviso che da oggi i singoli tutorial saranno più corposi. Le informazioni da darti sono tantissime, per questo motivo ho deciso di strutturarle in modo che, anche se non hai intenzione di approfondire l’argomento, puoi sviluppare il progetto oggetto del tutorial senza alcun problema.

Progetto “Usiamo 3 LED”

Obiettivo
Accendere in sequenza tre LED rossi.

Cosa serve

  • Breadboard
  • 3 LED rossi
  • 3 resistenze da 330 Ohm
  • 10 jumper (4 neri, 2 bianchi, 2 gialli, 2 verdi)

Iniziamo subito aprendo il programma Arduino (o Arduino Studio), eliminiamo il codice proposto di default, copiamo e incolliamo il codice qui sotto con la stessa metodologia usata nell’articolo precedente:

/*
 * www.ilmanu.eu - Arduino partendo da ZERO
 * Articolo: Arduino, giochiamo con 3 LED
 * Tutorial: 2
 * Progetto: 1
 * Nome progetto: Usiamo 3 LED
 * Descrizione: Questo sketch fa lampeggiare il LED integrato di Arduino ONE con un’intermittenza di 1 secondo. Acceso per 1 secondo e spento per 1 secondo.
 */

// Per prima cosa definiamo i pin
int led1 = 10;
int led2 = 11;
int led3 = 12;

void setup() {
  // Impostiamo i pin come uscite
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() {
  // E qui scriviamo il codice
  
  digitalWrite(led1, HIGH);  // Accendi il led1 (quello collegato al pin 10)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)
  digitalWrite(led1, LOW);   // Spegni il led1 (quello collegato al pin 10)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)
  
  digitalWrite(led2, HIGH);  // Accendi il led2 (quello collegato al pin 11)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)
  digitalWrite(led2, LOW);   // Spegni il led2 (quello collegato al pin 11)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)

  digitalWrite(led3, HIGH);  // Accendi il led3 (quello collegato al pin 12)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)
  digitalWrite(led3, LOW);   // Spegni il led3 (quello collegato al pin 12)
  delay(1000);               // Aspetta 1 secondo (1000 millisecondi)
}

Una volta che hai incollato il codice nell’editor del programma Arduino ti conviene salvare, decidi dove e dai un nome a questo sketch (pr_02 potrebbe andar bene). Ora clicca sull’icona “Verifica”; se dopo la compilazione non hai ricevuto nessun messaggio d’errore possiamo passare a preparare la breadboard.

Ciò che abbiamo in mente è ben rappresentato dalla figura qui a fianco. Ovviamente la colorazione dei jumper è indifferente, le resistenze non hanno un “verso giusto” (quindi non aver paura di sbagliare il verso del posizionamento), ma presta attenzione ai LED; anodo(+) a destra e catodo(-) a sinistra. La “gambetta” più lunga è l’anodo(+) cioè il positivo. Come puoi notare, tutti e tre i LED sono collegati tra loro tramite catodo(-) e collegati al pin GND di Arduino (jumper neri). Ogni singolo anodo(+) è invece collegato ad una resistenza da 330 Ohm e ad un pin diverso di Arduino. Pin 10 per il LED di destra (jumper verdi), pin 11 per il LED centrale (jumper gialli) e pin 12 per il LED di sinistra (jumper bianchi). Ora che hai preparato tutto collega Arduino al computer (se non lo hai ancora fatto) e ritorna sul programma (sketch) che hai già scritto e salvato. Clicca sull’icona “Verifica” e ad operazione completata (senza errori!) clicca sull’icona “Carica” per trasferire il programma su Arduino. Fatto! Ora si accende il primo LED a destra, rimane acceso per 1 secondo e poi si spegne, a seguire il LED centrale fa la stessa cosa e quello a sinistra pure. Poi il ciclo si ripete. Anche se il progetto funziona ti consiglio di fare qualche prova cambiando i valori dell’attesa e comunque di proseguire la lettura di questo tutorial, le nozioni non sono poche e le informazioni che ho ancora da darti neppure 😉

Approfondimenti

Perchè la resistenza da 330 Ohm?

Una delle domande più frequenti è proprio quella di chiedersi come scegliere il valore della resistenza. Senza entrare troppo nel dettaglio tecnico, devi sapere due cose fondamentali, la legge di Ohm e la caduta di tensione per i LED.

Legge di Ohm
Una resistenza di valore R percorsa da una corrente I vede cadere ai propri capi una tensione V pari a: V = R x I

Esprimendo V in volt e I in ampere, la resistenza risulta in ohm; nel nostro caso, avendo I in milliampere (mA) il valore della resistenza risulta in chiloohm(kohm).

Il colore dei LED
La tensione di polarizzazione diretta (Vf) necessaria ad accendere i LED è diversa a seconda del colore

  • Rosso: Vf=1,8
  • Arancio: Vf=2
  • Giallo: Vf=2,1
  • Verde: Vf=2,2
  • Blu: Vf=3,2
  • Bianco: Vf=3,2

Per conoscerela caduta di tensione su R (che è la resistenza di limitazione applicata a ciascun LED) applichiamo il Principio di Kirchhoff alle maglie secondo cui in un circuito che riceve una certa tensione, questa è uguale alla somma delle cadute di tensione su tutti gli elementi che si trovano in serie (cioè che sono percorsi dalla stessa corrente). Nella nostra “maglia” la tensione fornita è quella uscente dall’I/O digitale di Arduino (Vo); conosciamo la caduta di tensione sul Led rosso (Vf) che è 1,8 volt, quindi possiamo scrivere che:
Vo=Vf+Vr e che quindi Vr=Vo-Vf dove Vr è la caduta sulla resistenza.
Ne deriva che quest’ultima vale:
Vr=5V-1,8V=3,2V
Applicando la legge di Ohm “rigirata” in funzione della resistenza, calcoliamo R, imponendo una corrente di 10mA:
R=Vr/I e quindi R = 3,2 V / 10 mA = 0,32 Kohm = 320 ohm
Utilizzando resistenze della serie E12, il valore più vicino è 330 ohm ed è proprio quello che abbiamo utilizzato per i 3 LED.

Analisi dello sketch

Il momento di capire ciò che scriviamo e che “ordiniamo” ad Arduino è arrivato. Il listato è semplice e chiaro, si nota subito una parte iniziale con i commenti generali. I caratteri /*dichiarano l’inizio di un commento su più righe, mentre i caratteri */ ne dichiarano la fine. I caratteri // dichiarano l’inizio di un commento su una sola riga, ovviamente non ha bisogno di una dichiarazione di fine commento.
Dopo i commenti definiamo i pin utilizzati; consiste nel dire ad Arduino a quali contatti digitali corrispondono le variabili. Stabiliamo che led1 corrisponde al piedino 10 (int led1 = 10;), led2 al piedino 11 e led3 al piedino 12.
Nella parte del setup (void setup()) usiamo l’istruzione pinMode. L’istruzione  pinMode dev’essere impartita contenendo il nome della variabile e la modalità: per esempiopinMode(led1, OUTPUT); significa che led1, assegnata in fase di definizione al contatto 10 di Arduino, diverrà un’uscita.
Segue la creazione del loop (void loop()), ovvero il ciclo che vedrà l’avvicendarsi delle istruzioni di assegnazione dei livelli logici ai piedini specificati; queste istruzioni sono digitalWrite e delay. La prima assegna il livello logico al piedino di uscita digitale (ad esempio con digitalWrite(led1, HIGH); dico ad Arduino di assegnare il livello logico HIGH a led1, quindi al piedino 10) e la seconda stabilisce il tempo che deve trascorrere prima di passare alla successiva (ad esempio con delay(1000); dico ad Arduino di attendere 1000 millisecondi prima di passare alla prossima istruzione).

La prassi corretta

Tutto parte da un’idea, per concretizzarla esiste una prassi corretta. Anche se ci vorrebbe un articolo dedicato, vedo di ridurre tutto ai minimi termini e rimandarne l’approfondimendo. Quando hai un’idea di progetto la prima cosa da fare è quella di scriverla, una descrizione dettagliata. In elettronica si disegnano gli schemi a blocchi per descrivere le funzionalità del circuito e poi si converte ogni blocco nel circuito elettronico corrispondente; con i microcontrollori si descrive la serie di operazioni che vengono eseguite, anche in base agli eventi e alle rilevazioni dei sensori, fino a creare il flusso logico (diagramma di flusso o flow-chart) completo. Cliccando sull’imagine qui a fianco potrai vedere il flow-chart del progetto realizzato in questo tutorial.

Sommario tutorial

Tutorial

0

L’elettronica oggi

Introduzione e presentazione di Arduino UNO, caratteristiche hardware e il software di gestione. Inizia qui il tuo viaggio nell’elettronica con Arduino.

Tutorial

1

Arduino, sporchiamoci le mani

Iniziamo ad usare la nostra scheda Arduino UNO, in 3 minuti facciamo lampeggiare un LED interno. Non hai bisogno di nessun materiale aggiuntivo!

Tutorial

2

Arduino, giochiamo con 3 LED – questo tutorial

E’ arrivato il momento di fare sul serio… Con questo tutorial impari a gestire le uscite di Arduino UNO e far accendere e spegnere 3 LED.

L’autore

Classe 1973, adoro cani, rapaci e animali in genere. Mi piace tutto ciò che è tecnologia, mi piace l’informatica, internet e l’elettronica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Newsletter

Pin It on Pinterest

Condividi

Condividi questo articolo con tutti i tuoi amici!

Shares