Accendere un led con Arduino

Adesso che abbiamo acquisito le basi per programmare con Arduino e qualche nozione di base di elettronica, siamo pronti per mettere insieme i pezzi e creare un primo prototipo con un po’ di coding e un po’ di hardware. Passiamo subito in rassegna le componenti richieste.

Lista dei componenti

Per il nostro primo vero progetto Arduino ci serviranno:

  • Una scheda Arduino Uno
  • Una breadboard
  • due cavetti jumper (con connettori maschio-maschio)
  • un piccolo trancio di doppino telefonico (detto anche in gergo “ponticello”)
  • un led
  • una resistenza di almeno 220 ohm
  • un cavo usb per collegare Arduino al pc

I cavetti jumper

Per rendere più agevole il collegamento tra Arduino e il led ci serviremo di due cavetti jumper, ideali per la prototipazione su breadbord. In commercio ne esistono di varia lunghezza e dotati di vari tipi di connettore; nel nostro caso che ne basteranno due della lunghezza di circa 11 cm con connettori maschio-maschio.

Il doppino telefonico

Per collegare su breadboard componenti tra loro molto vicini, è molto utile utilizzare piccole sezioni dei cavetti ricavati da un qualunque doppino telefonico, dopo averle opportunamente spellate. Si potrà piegarle all’occorrenza per l’inserimento nei fori della breadborad

Il led

Il led (light emitting diod, diodo a emissione di luce) è un componente basato su un materiale semiconduttore che permette alla corrente elettrica di scorrere in una sola direzione. I led utilizzati di frequente nei prototipi Arduino, sono di tipo “passante”, nel senso che vengono collegati ad un circuito facendo passare i terminali da un lato all’altro della scheda; proprio per questo presentano terminali di una certa lunghezza (detti rispettivamente anodo, che si connette al polo positivo, e catodo, da connettere a quello negativo). I led di questo tipo più diffusi sono progettati per emettere luce rossa, gialla o verde e hanno una tensione di polarizzazione di circa 2 V e possono sostenere una corrente massima di 30 mA.

La resistenza

Per evitare di bruciare il led, utilizzeremo una resistenza che ha il compito di limitare il passaggio di corrente. Una resistenza di solito si presenta come una sorta di cilindretto ricoperto di strisce colorate, da cui escono due connettori. Le strisce colorate, in numero di quattro o cinque, hanno lo scopo di indicare il valore di resistenza, che in base alla loro combinazione, va ricalcolato in ohm. I valori vanno letti da sinistra a destra; ogni colore corrisponde a un numero, tranne per la striscia più a destra che indica il numero di zeri da aggiungere. La tabella seguente ci aiuterà a decodificare i valori di una resistenza:

ColoreValoreZeri
Nero0
Marrone10
Rosso200
Arancione3000
Giallo40000
Verde500000
Blue6000000
Viola70000000
Grigio800000000
Bianco9000000000
Tabella per la decodifica di una resistenza

Oltre ai questi valori viene indicata anche la tolleranza con altre tre opzioni:

  • oro, ±5% di tolleranza
  • argento, ±10% di tolleranza
  • nessun colore, ±20% di tolleranza

Prendendo ad esempio la resistenza come nella foto del circuito sotto, abbiamo:

  • una striscia gialla: 4
  • una striscia viola: 7
  • una striscia marrone: 0
  • una striscia dorata: ±5%

Mettendo insieme i valori abbiamo 47 a cui aggiungere uno zero, quindi 470 ohm, con ±5% di tolleranza. In questo caso il marrone era l’ultima striscia a destra prima di quella indicante il valore di tolleranza.

Una form per il calcolo del valore di una resistenza

Se vi siete già procurati un certo numero di resistenze, provate a capire da soli il loro valore in ohm e poi verificate il risultato utilizzando la form sotto

Striscia 1Striscia 2Striscia 3Striscia 4

Risultato:  

1.000 Ω ±5%

La breadboard

La breadboard si presenta come un pannellino rettangolare di plastica, ricoperto di fori divisi in righe e colonne (contrassegnate da numeri e lettere). Al suo interno delle piste metalliche collegano le colonne, permettendoci di creare dei circuiti semplicemente inserendo dei connettori nei fori corrispondenti alle linee elettriche che vogliamo mettere in comunicazione. Nella foto del circuito sotto, tutti i fori della colonna 15 dalla riga a alla riga j sono collegati, così come per la colonna 16. La breadboard usata nella foto, inoltre presenta altri due gruppi di fori, in alto e in basso, che sono invece collegati in senso orizzontate.

Creazione del circuito per accendere il led con Arduino

Per creare il circuito di accensione del led, procediamo (come da foto sotto), nel modo seguente:

  • Colleghiamo un cavetto jumper al pin digitale 12 di Arduino (trovate i pin digitali facilmente grazie all'etichetta "DIGITAL", in particolare il pin 12 si trova vicino al pin cotrassegnato come GND e al pin 13)
  • Colleghiamo il cavetto jumper già collegato al pin 12 al foro che si trova lungo la colonna 15 della riga j della breadboard
  • Colleghiamo un jumper al pin GND
  • Colleghiamo l'altra estremità del cavetto collegato al pin GND al foro corrispondente alla colonna 16 e alla riga j della breadbord
  • Inseriamo i due poli della resistenza in due fori della colonna 16 della breadboard
  • Facciamo lo stesso con il ponticello ma alla colonna 15
  • Inseriamo il terminale lungo del led al foro 15 e quello corto al foro 16 della riga a della breadboard
  • Colleghiamo Arduino al pc tramite il cavo usb
Circuito di accensione led con Arduino
Circuito di accensione led con Arduino

Il programma per accendere il led con Arduino

Il programma che caricheremo su Arduino, dopo aver impostato la comunicazione seriale e il pin collegato al led, rimarrà in attesa di input; digitando il carattere 'A' sul monitor seriale, verrà eseguita la funzione digitalWrite che prende in input il pin e il valore del voltaggio da impostare sul pin. In questo caso utilizziamo la costante HIGH per inviare 5 v al pin, causando l'accensione del led. Inserendo invece il carattere 'S', il flusso di esecuzione si posizionerà sul secondo case dell'blocco switch, in cui viene passata la costante LOW alla funzione digitalWrite, causando lo spegnimento del led. La chiamata alla funzione delay alla fine del blocco if, ritarda di 300 millisecondi l'esecuzione del loop di Arduino. Se viene immesso qualunque altro carattere, il blocco default scrive sulla seriale che il comando non è stato riconosciuto.

#define LED_PIN 12

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(LED_PIN, OUTPUT);
  Serial.println("In attesa di un comando... (A - accende il led; B - spegne il led");
}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available())
  {
    int stato = Serial.read();

    switch(stato)
    {
      case 'A':
        digitalWrite(LED_PIN, HIGH);
        Serial.println("Led acceso");
        break;
        
      case 'S':
        digitalWrite(LED_PIN, LOW);
        Serial.println("Led spento");
        break;
        
      default:
        Serial.println("Comando non riconosciuto");
        break;        
    }

    delay(300);
  }
}

Non ci resta che provare a immettere un input sul monitor seriale e sperimentare cosa succede al led e quali messaggi vengono stampati sul monitor.

Provate a immettere in una volta una lunga sequenza di 'A' e di 'S' e a spiegarne il comportamento.

Conclusioni

In questo articolo abbiamo costruito un primo circuito molto semplice e funzionante con Arduini, mettendo insieme le conoscenze di coding acquisite nei precedenti tutorial e alcune nozioni basilari di elettronica. Abbiamo fatto uso di alcune componenti di uso comune, imprescindibili nella costruzione di prototipi, come la breadboard, le resistenze e i led. Abbiamo anche fatto in modo di interagire con il circuito tramite input di comandi tramite monitor seriale. Vedremo prossimamente altri esempi di circuiti per Arduini assemblati con altri componenti di uso comune come sensori, led rgb, display, buzzer, motori ecc.

Lascia un commento

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

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