Cerca codice

Lezione 98-6: Gioco LED See Saw con Arduino

Lezione 98-6: Gioco LED See Saw con Arduino

Il progetto LED altalena è un classico esercizio per principianti che insegna uno dei concetti più importanti della programmazione Arduino: far alternare due uscite in un ritmo temporizzato. Usando solo due LED, due resistori e qualche filo jumper, costruirai un circuito in cui un LED verde e un LED rosso si accendono a turno, imitando il movimento su e giù di un'altalena del parco giochi. È una costruzione semplice, ma introduce i blocchi fondamentali — definizioni dei pin, costanti di temporizzazione e chiamate sequenziali a digitalWrite() — che compaiono in quasi ogni sketch Arduino che scriverai.

due LED con resistore su breadboard collegati ad Arduino
due LED con resistore su breadboard collegati ad Arduino

Poiché il modello altalena è in realtà solo "accendi una cosa, spegnila, accendi l'altra cosa, spegnila, ripeti", la stessa struttura si estende a dozzine di usi pratici. Ecco alcune idee per stimolare la tua immaginazione:

  • Luci indicatrici alternate — una coppia "sicuro / allarme" su un pannello di controllo che si scambia avanti e indietro.
  • Simulazione di passaggio a livello — due lampade che lampeggiano in alternanza mentre si avvicina un treno.
  • Cartello direzionale a due corsie — un display a freccia "vai da questa parte / vai da quella parte" per un vialetto o un parcheggio.
  • Decorazione natalizia — LED rossi e verdi che si scambiano di posto per un effetto lampeggiante festoso.
  • Fondamento di apprendimento — le competenze di temporizzazione e sequenziamento qui acquisite sono le stesse che userai in seguito per semafori, luci pedonali e animazioni multi-LED.

Come funziona l'effetto altalena

Un LED è un diodo che emette luce, e il suo simbolo è un triangolo che punta verso una linea. La linea piatta è il catodo (negativo), e il retro del triangolo è l'anodo (positivo). Su un LED fisico, il gambo più lungo è l'anodo e il gambo più corto, con il lato piatto, è il catodo. La corrente fluisce dall'anodo al catodo, quindi l'anodo si collega verso il pin del tuo Arduino e il catodo si collega attraverso un resistore a terra (nel video a 02:29).

Il resistore è importante. Un tipico LED piccolo vuole circa 2 V ai suoi capi e circa 10 mA di corrente. Se il tuo Arduino fornisce 5 V, i restanti 3 V devono essere dissipati dal resistore. Usando la legge di Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. Va bene qualsiasi valore da circa 300 Ω fino a 1000 Ω — valori più alti rendono semplicemente il LED più fioco (nel video a 03:49).

Per l'altalena, i due LED sono cablati in modo identico: ogni anodo va al proprio pin Arduino, e ogni catodo passa attraverso il proprio resistore a una barra di terra condivisa. L'unica differenza tra i due è a quale pin sono collegati.

Hardware e componenti

  • 1 × scheda Arduino (Uno, Nano, Mega o simile)
  • 2 × LED — uno rosso, uno verde (vanno bene due colori qualsiasi)
  • 2 × resistori, da 300 Ω a 1000 Ω (220 Ω o 330 Ω sono scelte comuni)
  • 1 × breadboard
  • Fili jumper (fili DuPont)
  • Cavo USB per programmazione e alimentazione

Tutto qui — niente pulsanti, niente potenziometri, niente sensori. Questa è deliberatamente la lista di componenti più essenziale possibile, così puoi concentrarti interamente sulla logica del codice.

Guida al cablaggio

Schema Arduino per due LED altalena
Schema Arduino per due LED altalena
Cablaggio Arduino per due LED altalena
Cablaggio Arduino per due LED altalena

Il cablaggio è simmetrico e facile da seguire. Inserisci entrambi i LED nella breadboard. Collega l'anodo (gambo più lungo) del LED verde al pin 2 di Arduino e l'anodo del LED rosso al pin 3 di Arduino. Ogni catodo (gambo più corto) si collega a un'estremità del proprio resistore, e l'altra estremità di entrambi i resistori si unisce a una barra comune che va al pin GND di Arduino (nel video a 27:45).

Poiché entrambi i LED condividono la stessa barra di terra, è necessario un solo filo di terra dalla breadboard verso l'Arduino. I due fili di segnale — uno al pin 2, uno al pin 3 — sono le uniche connessioni che cambiano tra i due LED.

Spiegazione del codice

Lo sketch è volutamente breve, così ogni riga ha un significato. Ecco le parti che vorrai effettivamente modificare:

Definizioni dei pin

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

Queste due costanti dicono all'Arduino a quali pin sono collegati i LED. Se hai cablato i tuoi LED a pin diversi — diciamo pin 8 e pin 9 — questo è l'unico punto che devi cambiare. La parola chiave const significa che il valore è fisso per tutta la durata del programma e non può essere sovrascritto accidentalmente in seguito.

Costante di temporizzazione

const int ON_TIME = 500;

Questo singolo valore controlla per quanto tempo ciascun LED rimane acceso, in millisecondi. Il valore predefinito di 500 significa che ogni LED è acceso per mezzo secondo, quindi un ciclo completo verde-poi-rosso dura un secondo. Riducilo a 200 per un lampeggio veloce, oppure aumentalo a 1000 per un ritmo lento e deliberato di un secondo per LED (nel video a 30:17). Poiché entrambi i LED condividono questa costante, rimangono sempre sincronizzati — l'altalena resta in equilibrio.

Configurazione

All'interno di setup(), i due pin vengono dichiarati come uscite con pinMode(), e il monitor seriale viene avviato a 9600 baud così puoi osservare i messaggi sullo stato dei LED scorrere. Questo viene eseguito una sola volta, all'accensione della scheda.

Il Loop

La funzione loop() è dove avviene l'altalena. Esegue quattro azioni in sequenza: accende il LED verde, attende ON_TIME millisecondi, lo spegne, poi fa lo stesso per il LED rosso. Quando il loop raggiunge la fine, ricomincia automaticamente dall'inizio — questo è l'intero comportamento "altalena". Non c'è nessuna variabile di stato e nessuna condizione da verificare, perché il pattern è puramente sequenziale.

Progetto dal vivo e dimostrazione

Una volta caricato il codice, vedrai il LED verde accendersi per mezzo secondo, poi il LED rosso, poi di nuovo verde, all'infinito. Aprendo il monitor seriale (Strumenti → Monitor Seriale, o Ctrl+Shift+M) vengono stampati "Green LED ON" e "Red LED ON" mentre il pattern viene eseguito, il che è un modo pratico per confermare che la temporizzazione corrisponda a quella impostata.

Prova a cambiare ON_TIME in 200 e a ricaricare — i LED si alterneranno visibilmente più velocemente. Impostalo a 1000 e l'altalena diventa un'alternanza lenta e deliberata. Puoi anche scollegare l'Arduino dalla USB e alimentarlo con una batteria o un adattatore da 5 V; lo sketch funziona allo stesso modo perché è già memorizzato nella memoria della scheda.

Progetti correlati da questo video

Capitoli

  • [00:00] Panoramica dei 10 progetti LED con Arduino
  • [01:22] Introduzione al corso passo passo su Arduino
  • [02:29] Comprendere i LED: simbolo, anodo e catodo
  • [03:49] Calcolo della resistenza in serie al LED con la legge di Ohm
  • [27:32] Introduzione al progetto LED altalena
  • [27:45] Schema di collegamento per il progetto altalena
  • [28:28] Spiegazione del codice dell'altalena
  • [30:06] Dimostrazione dell'altalena con temporizzazioni diverse
  • [30:47] Panoramica del progetto luce scorrevole
  • [36:41] Luce scorrevole controllata da pulsante
  • [42:25] Indicatore a barra di tensione LED con potenziometro
  • [49:25] Progetto semaforo con Arduino

Immagini

Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
330_ohm_resistor
330_ohm_resistor
due LED con resistenza su breadboard collegati ad Arduino
due LED con resistenza su breadboard collegati ad Arduino
938-Lessson 98-LED-6: Arduino code two LED, See-saw
Lingua: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

File📁

Librerie Arduino (zip)

Manuale dell'utente