Arduino Blink: facciamo lampeggiare un LED
Il primo progetto ideale per imparare Arduino: collegheremo un LED, lo accenderemo e spegneremo tramite software e capiremo come funzionano pin digitali, setup(), loop() e delay().
Arduino Blink è probabilmente il programma più conosciuto nel mondo Arduino. È semplice, ma racchiude alcuni dei concetti fondamentali che utilizzeremo praticamente in ogni progetto successivo.
Lo scopo è far accendere un LED per un secondo, spegnerlo per un secondo e ripetere continuamente questa sequenza.
Attraverso questo piccolo circuito inizieremo a capire una delle idee fondamentali dell’elettronica programmabile: Arduino può modificare lo stato delle proprie uscite in base alle istruzioni contenute nel programma.
Arduino imposta il pin 13 a livello HIGH, aspetta un secondo, lo porta a LOW, aspetta un altro secondo e ricomincia da capo.
Cosa imparerai
Con questo progetto vedremo come:
- utilizzare un pin digitale di Arduino come uscita;
- accendere e spegnere un LED via software;
- utilizzare
pinMode(); - utilizzare
digitalWrite(); - comprendere la differenza tra
HIGHeLOW; - utilizzare
delay()per creare una temporizzazione; - comprendere il funzionamento di
setup()eloop().
Materiale necessario
Per realizzare Arduino Blink servono pochissimi componenti.
- Arduino Uno o scheda compatibile
- 1 LED
- 1 resistenza da 220 Ω
- 1 breadboard
- Cavetti jumper
- Cavo USB per Arduino
Un kit completo è una soluzione pratica per iniziare perché comprende Arduino, breadboard, LED, resistenze e molti dei componenti che utilizzeremo nei progetti successivi.
Vedi il kit Arduino Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.Schema di collegamento
Utilizzeremo il pin digitale 13 come uscita. La resistenza limita la corrente che attraversa il LED e ne evita il danneggiamento.
Polarità del LED
Il LED è un componente polarizzato e deve quindi essere collegato nel verso corretto.
| Terminale LED | Collegamento |
|---|---|
| Anodo (+) – normalmente gamba lunga | Verso la resistenza e il pin 13 |
| Catodo (−) – normalmente gamba corta | GND |
Codice Arduino Blink
Questo è lo sketch utilizzato nel progetto originale, riscritto con commenti più chiari per capire cosa succede a ogni istruzione.
// =====================================================
// PROGETTIARDUINO.COM
// Progetto 01 - Arduino Blink
// Facciamo lampeggiare un LED collegato al pin 13
// =====================================================
void setup() {
// Imposta il pin digitale 13 come uscita
pinMode(13, OUTPUT);
}
void loop() {
// Accende il LED
digitalWrite(13, HIGH);
// Attende 1 secondo
delay(1000);
// Spegne il LED
digitalWrite(13, LOW);
// Attende 1 secondo
delay(1000);
}
Come funziona il programma
setup()
La funzione setup() viene eseguita una sola volta
quando Arduino viene acceso o resettato.
pinMode(13, OUTPUT);
Con questa istruzione diciamo al microcontrollore che il pin digitale 13 deve funzionare come uscita.
Accensione del LED
All’interno di loop() portiamo il pin 13 allo stato HIGH.
digitalWrite(13, HIGH);
Il pin viene portato a livello logico alto e il LED si accende.
Attesa di un secondo
Arduino mantiene questa condizione per 1000 millisecondi.
delay(1000);
La funzione delay() utilizza i millisecondi:
1000 ms = 1 secondo.
Spegnimento del LED
Portiamo ora il pin a livello LOW.
digitalWrite(13, LOW);
Il LED si spegne. Dopo un altro delay(1000),
loop() ricomincia dall’inizio.
Il ciclo completo
| Fase | Pin 13 | LED | Durata |
|---|---|---|---|
| 1 | HIGH | Acceso | 1 secondo |
| 2 | LOW | Spento | 1 secondo |
| 3 | Il ciclo ricomincia | ||
setup() viene eseguita una volta sola.
loop(), invece, viene ripetuta continuamente
finché Arduino rimane alimentato.
Come caricare lo sketch su Arduino
- Collega Arduino Uno al computer tramite USB.
- Apri Arduino IDE.
- Inserisci lo sketch mostrato sopra.
- Seleziona la scheda Arduino corretta.
- Seleziona la porta seriale utilizzata dalla scheda.
- Premi il pulsante Carica.
- Attendi il completamento del caricamento.
Dopo pochi istanti il LED inizierà a lampeggiare automaticamente.
Risultato
Se tutto è collegato correttamente, il LED:
- rimane acceso per 1 secondo;
- rimane spento per 1 secondo;
- ripete continuamente la sequenza.
Abbiamo quindi trasformato poche righe di software in un’azione fisica eseguita da un componente elettronico.
Il LED non lampeggia? Controlli da fare
| Problema | Possibile causa | Controllo |
|---|---|---|
| LED sempre spento | Polarità invertita | Inverti il LED e verifica anodo e catodo |
| LED non reagisce | Collegamento errato | Controlla pin 13 e GND |
| Sketch non viene caricato | Scheda o porta errata | Controlla le impostazioni dell’Arduino IDE |
| LED esterno non funziona | LED o collegamenti breadboard | Prova prima il LED integrato della scheda |
Prova a modificare il progetto
Una volta ottenuto il primo lampeggio, puoi iniziare a sperimentare.
Lampeggio più veloce
delay(200);
Il LED cambia stato ogni 200 millisecondi.
Lampeggio più lento
delay(3000);
Il LED rimane acceso e spento per 3 secondi.
Aggiungere un secondo LED
Un passo successivo consiste nel collegare un secondo LED a un altro pin digitale e controllare i due LED indipendentemente.
Download e simulazione
Puoi scaricare lo sketch originale oppure provare il circuito tramite la simulazione utilizzata nel progetto.
Domande frequenti
Cos’è Arduino Blink?
Blink è uno dei programmi introduttivi più semplici per Arduino. Accende e spegne ciclicamente un LED e permette di imparare l’utilizzo delle uscite digitali.
Perché viene utilizzato il pin 13?
Arduino Uno dispone di un LED integrato associato al pin 13, caratteristica che rende questo pin particolarmente comodo per i primi esperimenti.
A cosa serve la resistenza da 220 Ω?
La resistenza limita la corrente che attraversa il LED quando utilizziamo un LED esterno.
Cosa significano HIGH e LOW?
Sono i due stati logici utilizzati dalle uscite digitali. Nel nostro progetto HIGH accende il LED e LOW lo spegne.
Posso cambiare la velocità del lampeggio?
Sì. Basta modificare il valore passato alla funzione
delay(). Il valore è espresso in millisecondi.
Cosa devi ricordare
pinMode()configura il comportamento di un pin;OUTPUTindica che il pin viene utilizzato come uscita;digitalWrite()modifica lo stato di un’uscita digitale;delay()introduce un’attesa espressa in millisecondi;loop()continua a ripetere le istruzioni.
Hai completato il tuo primo progetto Arduino 🎉
Adesso utilizziamo quello che abbiamo imparato per fare qualcosa di più interessante: accendere automaticamente un LED quando diminuisce la luce.
Progetto 02 → Crepuscolare con Arduino
