Progetto Arduino #01 · Livello base

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().

Difficoltà Principiante
Tempo necessario 10–15 minuti
Concetti OUTPUT · HIGH · LOW · 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.

In poche parole:
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 HIGH e LOW;
  • utilizzare delay() per creare una temporizzazione;
  • comprendere il funzionamento di setup() e loop().

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
Non hai ancora Arduino e i componenti?

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.

PIN 13  →  Resistenza 220 Ω  →  LED  →  GND

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
Schema collegamento Arduino Blink con LED e resistenza
Schema originale del progetto Arduino Blink.
Nota: molte schede Arduino possiedono già un LED integrato collegato al pin 13. È quindi possibile provare lo sketch anche senza costruire immediatamente il circuito esterno.

Codice Arduino Blink

Questo è lo sketch utilizzato nel progetto originale, riscritto con commenti più chiari per capire cosa succede a ogni istruzione.

Arduino Blink blink.ino
// =====================================================
// 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

1

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.

2

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.

3

Attesa di un secondo

Arduino mantiene questa condizione per 1000 millisecondi.

delay(1000);

La funzione delay() utilizza i millisecondi: 1000 ms = 1 secondo.

4

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
Concetto chiave:
setup() viene eseguita una volta sola. loop(), invece, viene ripetuta continuamente finché Arduino rimane alimentato.

Come caricare lo sketch su Arduino

  1. Collega Arduino Uno al computer tramite USB.
  2. Apri Arduino IDE.
  3. Inserisci lo sketch mostrato sopra.
  4. Seleziona la scheda Arduino corretta.
  5. Seleziona la porta seriale utilizzata dalla scheda.
  6. Premi il pulsante Carica.
  7. 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

Da questo primo progetto portiamo a casa 5 concetti:
  • pinMode() configura il comportamento di un pin;
  • OUTPUT indica 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