
Video
Schema circuito

Codice sorgente
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Semaforo
4// ─────────────────────────────────────────
5// Ciclo di semaforo con LED rosso, giallo e verde: rosso 2 s, giallo 0.3
6// s, verde 2 s, giallo 0.3 s, poi ricomincia.
7//
8// Pin:
9// D2 -> LED rosso
10// D3 -> LED giallo
11// D4 -> LED verde
12// Ogni LED con una resistenza da 330 ohm
13
14void setup() {
15 pinMode(2,OUTPUT); // Rosso
16 pinMode(3,OUTPUT); // Giallo
17 pinMode(4,OUTPUT); // Verde
18}
19
20void loop() {
21 // Rosso acceso, attendere 2 s
22 digitalWrite(2,HIGH);
23 digitalWrite(3,LOW);
24 digitalWrite(4,LOW);
25 delay(2000);
26 // Giallo acceso, attendere 0.3 s
27 digitalWrite(2,LOW);
28 digitalWrite(3,HIGH);
29 digitalWrite(4,LOW);
30 delay(300);
31 // Verde acceso, attendere 2 s
32 digitalWrite(2,LOW);
33 digitalWrite(3,LOW);
34 digitalWrite(4,HIGH);
35 delay(2000);
36 // Giallo acceso, poi di nuovo rosso
37 digitalWrite(2,LOW);
38 digitalWrite(3,HIGH);
39 digitalWrite(4,LOW);
40 delay(300);
41}
42FAQ
Per quanto tempo deve rimanere accesa la luce gialla del semaforo?▾
Nei semafori reali, la luce gialla rimane accesa in genere per 3–4 secondi. Nel progetto, questa durata viene impostata tramite la funzione delay(); se si impostano tempi più lunghi per il rosso e il verde e più brevi per il giallo, si ottiene un ciclo simile a quello reale.
Perché si utilizza una resistenza da 330 Ω invece che da 220 Ω?▾
Una resistenza da 330 Ω riduce leggermente la corrente (circa 9–10 mA); i LED rimangono comunque ben visibili e la corrente totale assorbita dai pin è inferiore. Funziona anche con una resistenza da 220 Ω, ma in questo caso i LED risultano leggermente più luminosi.
Posso aggiungere un pulsante per i pedoni?▾
Sì. Puoi aggiungere un pulsante e una resistenza pull-down da 10 kΩ e leggere il valore con digitalRead. Quando si preme il pulsante, puoi far passare il ciclo al rosso e accendere un LED verde separato per i pedoni; in questo caso, l'uso di millis() al posto di delay garantisce che il pulsante venga rilevato immediatamente.
L'ordine dei LED è scombussolato, cosa devo fare?▾
Confronta una per una le definizioni dei pin nel codice (rosso, giallo, verde) con i cavi del circuito. Il modo più semplice è accendere ogni LED con un codice di test separato e verificare a quale pin è collegato.
