1. La Logica del Semaforo: Sequenza e Tempi
Obiettivo: Coordinare tre LED (Rosso, Giallo, Verde) | Stati: Sequenza ciclica
Per simulare un semaforo reale, dobbiamo gestire tre pin digitali diversi. La sequenza corretta prevede che solo un LED alla volta sia acceso (nella versione semplificata):
- 1 ROSSO acceso: Stop (es. 5 secondi)
- 2 VERDE acceso: Via (es. 5 secondi)
- 3 GIALLO acceso: Pre-avviso di stop (es. 2 secondi)
LABORATORIO
Realizzare un Semaforo Virtuale
Progettiamo il circuito su Tinkercad utilizzando tre LED e tre resistenze.
Componenti Necessari
- 1 Scheda Arduino Uno
- 1 Breadboard
- 3 LED (Rosso, Giallo, Verde)
- 3 Resistenze da 220 Ω
- Cavi Jumper
1 Montaggio del Circuito
Sulla breadboard, posiziona i tre LED. Ricorda: l'Anodo (gamba lunga) va verso i pin di Arduino, il Catodo (gamba corta) va verso la massa (GND).
- LED Rosso: Anodo al Pin 12 tramite resistenza.
- LED Giallo: Anodo al Pin 11 tramite resistenza.
- LED Verde: Anodo al Pin 10 tramite resistenza.
- Tutti i Catodi: Collegali alla linea blu della breadboard, che a sua volta va al GND di Arduino.
2 Il Codice: Gestione dei Tempi
In questo sketch, useremo variabili per rendere il codice più leggibile. Copia questo testo nell'editor di Tinkercad:
// Definiamo i pin
int rosso = 7;
int giallo = 4;
int verde = 1;
void setup() {
// Configuriamo i tre pin come uscite
pinMode(rosso, OUTPUT);
pinMode(giallo, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop() {
// STATO 1: Rosso acceso
digitalWrite(rosso, HIGH);
digitalWrite(giallo, LOW);
digitalWrite(verde, LOW);
delay(5000); // 5 secondi
// STATO 2: Verde acceso
digitalWrite(rosso, LOW);
digitalWrite(giallo, LOW);
digitalWrite(verde, HIGH);
delay(5000); // 5 secondi
// STATO 3: Giallo acceso
digitalWrite(rosso, LOW);
digitalWrite(giallo, HIGH);
digitalWrite(verde, LOW);
delay(2000); // 2 secondi
}
3 Analisi della Sequenza
loop(), dobbiamo spegnere esplicitamente i LED che non servono. Se accendi il Verde senza spegnere il Rosso, avrai entrambi accesi contemporaneamente!
4 Avvia la Simulazione
Clicca su "Avvia simulazione". Osserva i LED: la sequenza dovrebbe ripetersi all'infinito. Prova a modificare i valori nei delay() per cambiare la durata di ogni colore, proprio come farebbe un ingegnere del traffico!
Sfida Extra
Riesci a modificare il codice per far sì che il Giallo lampeggi invece di rimanere fisso? Dovrai aggiungere altri digitalWrite e delay più brevi all'interno della sezione dedicata al giallo.