#12 – Controlliamo un Led con Arduino!

Adesso che conosciamo bene come alimentare la scheda Arduino e i comportamenti corretti da tenere quando comandiamo i pin, è giunto il momento di realizzare il nostro primo circuito: controlleremo un led con Arduino.

In questo articolo, utilizzeremo come alimentazione direttamente quella dell’USB che utilizzeremo per programmare la scheda.

Circuiti con Arduino

Per realizzare in modo semplice circuiti con Arduino, senza dover ricorrere al saldatore, esistono diverse soluzioni.

Nella prima fase di test del circuito, utilizzeremo una “tavoletta” che viene chiamata breadboard.

Breadboard

Ne esistono di varie dimensioni. Tutte però presentano lo stesso schema di collegamenti sotto la superficie:

Collegamenti tra i pin, rappresentati con linee continue verdi

Bisogna quindi prestare attenzioni a non creare cortocircuiti. Collegheremo la scheda in questo modo:

Collegamento Arduino a breadboard

La scelta della linea del + o del è arbitraria, purché non crei cortocircuiti. Se si possiede una breadboard come nella seconda figura, se necessario, collegare l’alimentazione anche nell’altra metà come segue:

Collegamento alimentazione completo breadboard

Per effettuare i collegamenti, utilizzare i jumpers (se presenti nella confezione della breadboard).

Per i collegamenti con le schede (o anche sulla stessa breadboard), utilizziamo dei cavetti jumper dupont. Sono perfetti perché compatibili con gli ingressi/uscite di schede e sensori.

Così facendo, non dovremo saldare fili alle schede, e potremo riutilizzarle in pochi secondi.

Controllare il led integrato

Tutte le schede Arduino UNO hanno un led comandabile direttamente sulla scheda. All’inizio, ci occuperemo di controllare questo led con Arduino.

Questo led ha un pin che è definito dalla costante LED_BUILTIN.

Apriamo quindi l’Arduino IDE, e scriviamo il seguente codice:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT); //Configuriamo il pin interno
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH); //Accendiamo il led
  delay(1000); //Aspettiamo 1 secondo
  digitalWrite(LED_BUILTIN, LOW); //Spegnamo il led
  delay(1000); //Aspettiamo 1 secondo
}

Come risultato, il led resterà acceso per un secondo, e poi spento per un secondo.

Colleghiamo adesso la scheda al PC, e inviamo il programma con il pulsante Invia.

Controllare un led esterno

Come abbiamo già visto, non possiamo collegare direttamente il led al pin. Occorre utilizzare una resistenza.

Come vedremo più avanti, il led è un particolare tipo di diodo. Per chi non ha mai sentito parlare di questo componente, possiamo dire a grandi linee che si comporta come un “circuito aperto” fino ad una tensione fissata, e poi come un “cortocircuito”.

Come vedremo, questa tensione dipende dal colore del led, e va in genere da 1.8V (rosso) a 3.5V (blu).

Poiché forniamo 5V dal pin di Arduino, il led si mangerà la sua tensione di attivazione, e la restante tensione andrà sulla resistenza. Nel caso pessimo, sulla resistenza abbiamo 5V – 1.8V = 3.2V.

Poiché vogliamo che la corrente massima utilizzata sia 20mA, utilizziamo la legge di Ohm per trovare la resistenza:

$latex R >= \frac{V}{i} = \frac{3.2V}{0.020A} = 160\Omega $

Procediamo ad effettuare i collegamenti sulla breadboard come segue:

Collegamento con led (è stata utilizzata in simulazione una resistenza di $latex 250\Omega $)

N.B.: come vedremo successivamente parlando dei diodi, la corrente scorre in una sola direzione attraverso il led. Se il led non si dovesse accendere, provate a girarlo!

Adesso utilizziamo il codice precedente, solo che al posto di LED_BUILTIN, utilizzeremo una nostra costante:

#define PIN_LED 2 //Definiamo il pin dove è collegato il led

void setup() {
  pinMode(PIN_LED, OUTPUT); //Configuriamo il pin come uscita
}

void loop() {
  digitalWrite(PIN_LED, HIGH); //Accendiamo il led
  delay(1000); //Aspettiamo 1 secondo
  digitalWrite(PIN_LED, LOW); //Spegnamo il led
  delay(1000); //Aspettiamo 1 secondo
}

Il risultato sarà il seguente:

Lampeggiamento led con Arduino (è stata utilizzata in simulazione una resistenza di $latex 250\Omega $)

Adesso che abbiamo realizzato il nostro primo circuito, impariamo come comunicare con Arduino.