Lezione 98-7: Luce da passeggio utilizzando Arduino e 5 LED
Una luce camminante (chiamata anche luce "a inseguimento" o "Knight Rider") è uno dei classici progetti Arduino per principianti — e per una buona ragione. Ti insegna come controllare più uscite in sequenza, come temporizzare gli eventi e come ragionare sulle resistenze limitatrici di corrente, il tutto producendo qualcosa di visivamente soddisfacente. In questo progetto collegherai cinque LED a un Arduino e li programmerai in modo che ciascuno si accenda a turno, creando l'illusione di una singola luce che "cammina" lungo la fila.
Una volta compreso lo schema, puoi riutilizzarlo in un numero sorprendente di realizzazioni concrete:
- Illuminazione decorativa: un bordo a inseguimento per uno scaffale, una cornice o un modello.
- Indicatori di direzione: un effetto freccia sequenziale per un veicolo di scena o una e-bike.
- Display di avanzamento o stato: una fila di LED che avanza man mano che un processo si completa.
- Oggetti di scena per giochi e tabelloni: un "bersaglio mobile" o un indicatore di livello.
- Strumento didattico: la dimostrazione più chiara possibile di uscite digitali e temporizzazione.
Lo stesso cablaggio a cinque LED viene riutilizzato in diversi altri progetti di questo corso, quindi l'hardware che costruisci qui diventa una piattaforma riutilizzabile.
Come funziona la luce camminante
Il principio è esattamente lo stesso dell'accensione di un singolo LED — viene semplicemente ripetuto cinque volte (nel video a 30:47). Ogni LED è collegato al proprio pin di Arduino attraverso la propria resistenza limitatrice di corrente, e tutte le resistenze condividono una barra di massa comune. Lo sketch poi porta un pin HIGH, attende, lo porta LOW, attende e passa al pin successivo. Poiché è sempre acceso un solo LED alla volta, l'occhio percepisce la sequenza come movimento.
I due valori di temporizzazione sono ciò che dà carattere all'effetto. Il tempo di accensione controlla quanto a lungo ogni LED rimane acceso, e il tempo di spegnimento controlla l'intervallo prima che si accenda il LED successivo. Un tempo di accensione breve con un tempo di spegnimento lungo produce un singolo punto che viaggia rapidamente; un tempo di accensione lungo con un tempo di spegnimento breve produce una scansione più fluida e continua (nel video a 35:00).
Hardware e componenti
- 1 × scheda Arduino (Uno, Nano o simile)
- 5 × LED (di qualsiasi colore; mescolare i colori rende l'effetto più facile da leggere)
- 5 × resistenze — da 300 Ω a 1 kΩ funzionano bene
- 1 × breadboard
- Cavi jumper
- Cavo USB o pacco batteria per l'alimentazione
Se in seguito vuoi aggiungere una variante con pulsante, ti serviranno anche un pulsante momentaneo e due cavi jumper aggiuntivi.
Scegliere il valore della resistenza
Un LED ha una tensione diretta di circa 2 V e richiede circa 10 mA per la massima luminosità (nel video a 03:49). Con un'alimentazione a 5 V, la resistenza deve dissipare i restanti 3 V. Applicando la legge di Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. In pratica va bene qualsiasi valore da 300 Ω fino a circa 1 kΩ — maggiore è la resistenza, più debole è il LED, ma più sicuro ed efficiente è il circuito (nel video a 05:33).
Guida al cablaggio
Inserisci i cinque LED nella breadboard con i loro anodi (il piedino più lungo) rivolti nella stessa direzione. Collega ciascun catodo (il piedino più corto, con il lato piatto) alla propria resistenza, e unisci l'estremità opposta di tutte e cinque le resistenze a una barra di massa comune. Poi collega un jumper da ciascun anodo a un pin di Arduino.
In questa realizzazione i LED sono assegnati ai pin 3, 4, 5, 6 e 7 (nel video a 31:29). I numeri dei pin sono definiti all'inizio dello sketch, quindi se preferisci una disposizione diversa devi cambiare solo quelle cinque righe.
Spiegazione del codice
Lo sketch è volutamente semplice, in modo che un principiante possa seguire ogni riga. Solo il blocco in cima deve essere modificato per la propria configurazione.
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30; // the time each LED waits in the OFF state
int onTime = 100; // the time each LED is ON
Definizioni dei pin. Le cinque righe const int associano ciascun LED a un pin fisico di Arduino. Poiché sono dichiarate const, i valori non possono essere modificati in seguito nel programma — questa è un'abitudine di sicurezza che previene riassegnazioni accidentali. Se colleghi i tuoi LED a pin diversi, cambia i numeri qui e nient'altro.
onTime e offTime. Questi due interi sono le uniche variabili di "comportamento" del progetto, e sono quelle con cui vorrai sperimentare:
onTime— per quanto tempo (in millisecondi) ogni LED rimane acceso. Valori più grandi fanno sembrare ogni passo più lento e più deliberato.offTime— la pausa dopo che un LED si spegne prima che il successivo si accenda. Valori più piccoli fanno viaggiare la luce più velocemente.
Prova onTime = 200 e offTime = 200 per un inseguimento uniforme a velocità media, oppure onTime = 30 e offTime = 30 per un effetto molto veloce, quasi sfocato (nel video a 36:06).
La funzione setup() viene eseguita una sola volta e imposta semplicemente tutti e cinque i pin in modalità OUTPUT. La funzione loop() ripete poi lo stesso schema in quattro passaggi per ogni LED: porta il pin HIGH, attende onTime, portalo LOW, attende offTime. Quando il quinto LED termina, il loop riparte dal primo, producendo una camminata infinita.
Progetto dal vivo e dimostrazione
Con i valori predefiniti i LED avanzano lungo la fila a un ritmo rilassato. Caricando lo sketch con onTime e offTime impostati a 200 ms si ottiene una marcia costante e uniforme; abbassandoli entrambi a 30 ms la luce sfreccia lungo la fila quasi troppo velocemente per seguirla (nel video a 36:21).
Due esperimenti utili da provare una volta che funziona:
- Rendi il tempo di accensione più breve del tempo di spegnimento per creare un punto viaggiante ben distinto.
- Rendi il tempo di accensione più lungo del tempo di spegnimento per creare un bagliore morbido e sovrapposto.
Lo stesso cablaggio a cinque LED viene riutilizzato nel progetto successivo, dove un pulsante fa avanzare la luce un passo alla volta. Quel montaggio è trattato in Lezione 98-8: Luce camminante con pulsante e LED con Arduino.
Se preferisci pilotare la fila da un ingresso analogico invece che da un pulsante, vedi Lezione 98-9: Misuratore di livello di tensione a LED con Arduino o luce camminante con potenziometro.
Andare oltre
Una volta che la camminata di base funziona, un passo successivo naturale è far rimbalzare la luce avanti e indietro invece di saltare dall'ultimo LED al primo. È un puro esercizio di codice — nessun hardware aggiuntivo — ed è un buon modo per esercitarsi con cicli e array. Puoi anche combinare questo progetto con la versione con pulsante per costruire un display avanzato manualmente.
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 con Arduino: controllo della luminosità
- Lezione 98-5: Dissolvenza della luce quando si preme un pulsante con Arduino
- Lezione 98-6: Gioco LED altalena con Arduino
- Lezione 98-8: Luce camminante con pulsante e LED con Arduino
- Lezione 98-9: Misuratore di livello di tensione a LED con Arduino o luce camminante con potenziometro
- Lezione 98-10: Semaforo con Arduino
Capitoli
- [00:00] Panoramica dei dieci progetti con LED
- [01:22] Introduzione al corso passo passo su Arduino
- [02:29] Cos'è un LED e come identificarne i pin
- [03:49] Calcolo della resistenza limitatrice di corrente
- [30:47] Introduzione al progetto della luce camminante
- [31:06] Schema di cablaggio per cinque LED
- [32:52] Analisi del codice della luce camminante
- [34:39] Dimostrazione e modifica dei valori di temporizzazione
- [36:41] Far avanzare la luce con un pulsante (tutorial separato)
- [42:25] Barra di tensione a LED con potenziometro (tutorial separato)
- [49:25] Semaforo con Arduino (tutorial separato)
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