Blog
Blink LED su Arduino nel Browser — Senza Scheda
Il primo progetto Arduino di tutti è lo sketch blink. È l’“Hello, World!” dei microcontrollori, ed esiste un motivo se sopravvive da decenni: dimostra che la tua scheda funziona, che il tuo codice gira e che il cablaggio fa quello che pensi — tutto con un piccolo LED.
Ecco la parte che la maggior parte dei tutorial non dice subito: non devi comprare nulla per impararlo. Puoi costruire ed eseguire tutto in un simulatore nel browser, guardare il LED lampeggiare e ordinare una scheda solo quando hai davvero capito cosa succede. È quello che faremo qui. Ti dirò anche dove la simulazione smette di coincidere con la realtà, perché smette.
Il circuito è la scheda
La maggior parte dei tutorial “costruisci un circuito” inizia con la lista dei componenti. Questo no, perché l’Arduino Uno porta già tutto il circuito sulla sua PCB: un piccolo LED (marcato L) è collegato a filo al pin digitale 13, con una resistenza di limitazione in serie direttamente sulla scheda. Niente da inserire, niente da saldare, niente che si può bruciare.

Se in seguito passerai a una scheda vera e vorrai un LED esterno invece di quello integrato, la ricetta è: anodo (la gamba lunga) → pin 13 passando per una resistenza da 220Ω, catodo (gamba corta) → GND. Va bene qualsiasi valore tra 220Ω e 1kΩ; i valori più bassi lo rendono più luminoso e più arrabbiato. Ma per ora, restiamo sul semplice.
Mettere la scheda sulla tela
Apri il simulatore e clicca su Aggiungi (o sul pulsante Componenti, dipende dalla vista). Compare un selettore di componenti con un campo di ricerca e una griglia di schede. Scrivi “Arduino Uno”, trascinalo sulla tela, fatto.

La scheda atterra sulla tela con le etichette dei pin visibili. Trova la scritta L accanto al pin 13 — è il tuo LED. Non sembrerà granché finché la simulazione non è in esecuzione.
Le quattro righe che contano
Passa all’editor di codice. Questo è l’intero sketch:
// Blink: toggle the onboard LED once a second
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

Gli sketch Arduino hanno sempre due funzioni. setup() viene eseguita una volta all’accensione; poi loop() gira per sempre, dall’inizio alla fine, in continuazione. Dentro, quattro righe fanno tutto il lavoro:
pinMode(13, OUTPUT)— dice al chip che il pin 13 serve a mandare fuori tensione, non a leggere segnali. Se la salti, il pin resta un ingresso; il LED può brillare debolmente o per niente, e questo confonde tutti la prima volta.digitalWrite(13, HIGH)— porta il pin a 5V. LED acceso.delay(1000)— resta lì a non fare nulla per 1000 millisecondi. Senza, il LED lampeggerebbe milioni di volte al secondo e ai tuoi occhi sembrerebbe fisso.digitalWrite(13, LOW)— porta il pin a 0V. LED spento, poi il secondodelay(1000)lo tiene così prima che il loop riparta.
Ed è davvero tutto il programma. Se ti sembra poco epico, bene — è proprio il senso del blink.
Premi Run
Premi il pulsante Run nella barra dell’editor. Il simulatore compila il tuo sketch e lo esegue su un chip AVR virtuale — la stessa famiglia che sta su un Uno vero.

Guarda il LED L sulla tela: un secondo acceso, un secondo spento. La barra della tela ti dà anche pausa, stop e reset, più un serial monitor e un oscilloscopio che per ora non ti servono, ma serviranno presto.

Quello che il simulatore non ti dirà
Una simulazione è un insegnante gentile, ma salta alcune lezioni che l’hardware vero insegna subito:
- I LED non muoiono nei simulatori. Collega un LED vero dritto a un pin senza resistenza e funzionerà — per poco. Poi si brucia, o danneggia lentamente il GPIO. Il simulatore fa girare felicemente quel circuito all’infinito, quindi prendi l’abitudine della resistenza adesso.
- Gli Uno veri lampeggiano all’avvio. Il bootloader fa lampeggiare il LED L alcune volte quando la scheda si accende. I principianti lo scambiano regolarmente per un errore del loro codice. È normale.
- Le schede clone variano. Sui cloni economici dell’Uno il LED L può essere di un altro colore, più fioco o su un pad leggermente diverso. La simulazione ti mostra una scheda ideale; il tuo cassetto no.
delay()blocca tutto. In questo sketch va benissimo. In un progetto vero con pulsanti o sensori, quei 1000ms congelati diventano un bug. Ricordati la sensazione di “perché non risponde mentre è in delay” — tornerà utile.
Errori che fanno perdere tempo a tutti
Ho visto fallire un sacco di primi sketch. Quasi sempre è uno di questi:
- Manca
pinMode()insetup(). Il classico. Tutto compila, non si accende niente. - LED esterno inserito al contrario. Gamba lunga al pin, gamba corta a terra. Se inverti, resta semplicemente spento — niente danni, niente luce, niente divertimento.
- Modifichi il codice ma non premi mai più Run. La simulazione non si riavvia da sola.
- Scrivi il pin come lettera o prendi il pin 12 per abitudine. Il LED integrato ascolta solo il pin 13.
Da qui dove andare
Quando il lampeggio da 1 secondo ti annoia — e ci vogliono circa due minuti — inizia a cambiare le cose. Porta i delay a 250ms e guardalo stroboscopare. Sposta un LED esterno sul pin 12 con la sua resistenza e riscrivi lo sketch di conseguenza. Prova analogWrite() su un pin marcato con la ~ (sono quelli abilitati alla PWM) e fai dissolvere il LED invece di commutarlo. Oppure aggiungi un pulsante e fai rispondere il LED al tuo dito.
Apri il simulatore gratuito e carica l’esempio Blink — il circuito e il codice di questo articolo sono già cablati. Niente account, niente installazioni. Quando il LED ti lampeggia di rimando, sei ufficialmente un programmatore embedded. Più o meno.