Uncategorized

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.

Arduino Uno board on a browser-based simulator canvas, set up for the blink LED example

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.

Add Component dialog listing Arduino Uno, Nano, Mega, Raspberry Pi Pico and ESP32 boards

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);
}

Arduino blink sketch in the simulator code editor: pinMode, digitalWrite and delay on pin 13

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 secondo delay(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.

Simulator editor toolbar showing the run button and sketch file tab

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.

Simulator canvas toolbar with board selector, serial monitor, oscilloscope and zoom controls

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

Leave a Reply

Your email address will not be published. Required fields are marked *