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.
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
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
- Lezione 98-1: Come accendere e spegnere un LED con Arduino
- Lezione 98-2: Come accendere e spegnere un LED usando un pulsante con Arduino
- Lezione 98-3: Come accendere/spegnere un LED a toggle usando un pulsante con Arduino
- Lezione 98-4: Dissolvenza di un LED usando Arduino: controllo della luminosità
- Lezione 98-5: Dissolvenza della luce quando viene premuto un pulsante usando Arduino
- Lezione 98-7: Luce scorrevole usando Arduino e 5 LED
- Lezione 98-8: Luce scorrevole con pulsante e LED con Arduino
- Lezione 98-9: Indicatore a barra del livello di tensione LED usando Arduino o luce scorrevole con potenziometro
- Lezione 98-10: Semaforo con Arduino
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
This code has not been parsed yet. Please return to the admin panel to parse it.
Cose di cui potresti avere bisogno
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Risorse e riferimenti
-
DocumentazioneDocumentazione per il kit di apprendimento SunFounder 3 in 1 IoT/Smart Car.docs.sunfounder.com
-
Esterno
-
Esterno
-
Esterno
File📁
Librerie Arduino (zip)
-
Codice sorgente del kit di apprendimento Smart Car 3-in-1 di SunFounder
3in1-kit-main-v2.zip12.80 MB
Manuale dell'utente
-
Manuale di assemblaggio SunFounder 3-in-1 Arduino Smart CarQuesto documento mostra l'assemblaggio passo dopo passo della SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB