Lezione 98-10: Semaforo con Arduino
I semafori sono uno di quei sistemi quotidiani a cui raramente pensiamo — finché non ne costruiamo uno. In questo progetto, userai un Arduino per simulare una vera sequenza di semaforo: verde acceso, poi giallo, poi rosso, ciascuno per la sua durata configurabile, ripetendosi all'infinito. È un progetto perfetto per principianti perché insegna la logica della temporizzazione sequenziale, il controllo di più uscite e la relazione tra ciò che scrivi nel codice e ciò che vedi nel mondo fisico.
Oltre alla dimostrazione in aula, la logica di temporizzazione che impari qui si ritrova ovunque:
- Costruire un modello realistico di semaforo per un plastico ferroviario o un diorama
- Creare un sistema di indicatori temporizzati per un'officina o un garage (ad es. segnali "via libera" / "attendi")
- Imparare le basi per i semafori pedonali con fasi attivate da pulsante
- Prototipare una sequenza di relè temporizzata per attività industriali o di domotica
- Insegnare ai bambini il sequenziamento, la temporizzazione e l'elettronica con un oggetto familiare e riconoscibile
La parte migliore: tutto funziona in modo autonomo una volta caricato. Programmi l'Arduino una volta dal computer, poi lo alimenti con una batteria o un adattatore e funziona per sempre — nessun PC necessario (nel video a 12:27).
Come funziona il semaforo
Un semaforo in realtà è solo una sequenza temporizzata di tre uscite. L'Arduino accende un LED alla volta, attende un numero prestabilito di secondi, lo spegne e passa al successivo. Il ciclo poi si ripete. Nella temporizzazione di esempio del video, il verde resta acceso per 3 secondi, il giallo per 1 secondo e il rosso per 3 secondi — ma tutti questi valori sono regolabili nel codice (nel video a 49:44).
Il motivo per cui la sequenza sembra realistica è che le durate rispecchiano il flusso del traffico reale: verde e rosso sono più lunghi perché i veicoli hanno bisogno di tempo per attraversare l'incrocio, mentre il giallo è breve perché è solo un avviso di transizione. Puoi regolarli per adattarli a qualsiasi scenario desideri.
Hardware e componenti
La lista dei componenti per questo progetto è minima:
- 1 × scheda Arduino (Uno, Nano o Mega — qualsiasi cosa con almeno 3 pin digitali)
- 3 × LED (rosso, giallo/arancione e verde — colori diversi rendono l'effetto evidente)
- 3 × resistori (da 300 Ω a 1 kΩ funzionano bene; il video usa 1 kΩ)
- 1 × breadboard
- Cavi jumper
- Opzionale: una batteria agli ioni di litio o un adattatore di alimentazione da 5 V per farlo funzionare in modo autonomo
Il video consiglia di usare tre LED di colori distinti in modo che l'effetto semaforo sia immediatamente visibile — altrimenti dovresti etichettarli (nel video a 02:04).
Comprendere la limitazione di corrente dei LED
Ogni LED necessita di un resistore limitatore di corrente in serie. Ecco perché: un LED ha una tensione diretta quasi fissa (tipicamente intorno a 2 V per i LED standard da 5 mm), e se lo colleghi direttamente a 5 V, la corrente aumenterà bruscamente e lo distruggerà. Il resistore assorbe la tensione in eccesso.
Usando la legge di Ohm, se il LED cade di 2 V e l'alimentazione è 5 V, allora 3 V devono cadere ai capi del resistore. Con una corrente target di circa 10 mA, il valore del resistore risulta essere circa 300 Ω (nel video a 04:41). In pratica, qualsiasi valore da 300 Ω fino a 1 kΩ funzionerà — valori più alti rendono semplicemente il LED più fioco.
Guida al cablaggio
Ogni LED è cablato in modo identico: l'anodo (gamba più lunga) si collega a un pin digitale dell'Arduino, e il catodo (gamba più corta, lato piatto del corpo del LED) si collega attraverso un resistore a massa.
Nel cablaggio del video, il LED rosso si collega al pin 2, il LED giallo/arancione al pin 3 e il LED verde al pin 4 (nel video a 50:50). Tutti e tre i resistori condividono una barra di massa comune sulla breadboard. L'ordine dei colori sulla breadboard non ha importanza — ciò che conta è che i numeri dei pin nel tuo codice corrispondano ai pin che hai effettivamente usato.
Un consiglio utile dal video: la resistenza può essere posizionata su entrambi i lati del LED. Puoi metterla tra il pin di Arduino e l'anodo del LED, oppure tra il catodo del LED e la massa — elettricamente è lo stesso (nel video a 51:52).
Spiegazione del codice
Il programma completo è disponibile sotto l'articolo. Qui ci concentreremo sulle parti che vorrai personalizzare.
All'inizio dello sketch, tre definizioni di pin mappano ciascun LED a un pin digitale. Se hai collegato i tuoi LED a pin diversi, modifica questi valori:
const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;
Poi vengono le costanti di temporizzazione. Queste controllano per quanto tempo ogni luce rimane accesa, in millisecondi. Il video utilizza 5000 ms per il verde, 1000 ms per il giallo e 5000 ms per il rosso come impostazione predefinita — ma durante la dimostrazione questi sono stati modificati in 3 s / 1 s / 3 s, e successivamente in 10 s / 3 s / 10 s (nel video a 56:27):
const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;
Per cambiare il ritmo del tuo semaforo, modifica semplicemente questi tre valori. Vuoi un incrocio lento e realistico? Prova 10000, 3000, 10000. Vuoi una demo veloce? Prova 1000, 300, 1000.
All'interno di loop(), la sequenza è semplice: accendi il verde, attendi, spegni il verde; accendi il giallo, attendi, spegni il giallo; accendi il rosso, attendi, spegni il rosso; poi torna al verde. Il monitor seriale stampa ogni cambio di stato così puoi verificare che la temporizzazione corrisponda a ciò che ti aspetti.
Dimostrazione dal vivo
Una volta caricato il codice, l'Arduino esegue il ciclo da solo. Nel video, il LED verde si accende per primo, poi dopo la sua durata il giallo si accende brevemente, poi il rosso, e il ciclo ricomincia immediatamente (nel video a 55:20).
Il monitor seriale rispecchia questo in testo — "green LED on", "green off", "yellow on", e così via — il che è un ottimo modo per confermare che i tuoi valori di temporizzazione funzionano come previsto. Quando sei pronto a farlo funzionare senza fili, scollega l'USB e collega una batteria agli ioni di litio o un adattatore da 5 V; l'Arduino continuerà a ciclare senza un computer (nel video a 56:11).
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 interruttore 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-6: Gioco LED altalena con 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: Misuratore di livello di tensione LED usando Arduino o luce scorrevole con potenziometro
Capitoli
- [00:00] Panoramica dei 10 progetti LED con Arduino
- [01:22] Introduzione al corso passo passo su Arduino
- [02:29] Cos'è un LED: simbolo, anodo e catodo
- [03:49] Calcolo della resistenza limitatrice di corrente del LED
- [49:25] Introduzione al progetto del semaforo
- [49:44] Spiegazione della temporizzazione del semaforo
- [50:34] Schema di collegamento per il semaforo
- [52:13] Spiegazione del codice per il semaforo
- [54:32] Dimostrazione dal vivo con monitor seriale
- [55:30] Modifica dei valori di temporizzazione
- [56:11] Esecuzione del semaforo a batteria
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