
Vidéo
Schéma du circuit

Code source
1void setup() {
2 pinMode(2,OUTPUT);
3 pinMode(3,OUTPUT);
4 pinMode(4,OUTPUT);
5}
6void loop() {
7 digitalWrite(2,HIGH);
8 digitalWrite(3,LOW);
9 digitalWrite(4,LOW);
10 delay(2000);
11 digitalWrite(2,LOW);
12 digitalWrite(3,HIGH);
13 digitalWrite(4,LOW);
14 delay(300);
15 digitalWrite(2,LOW);
16 digitalWrite(3,LOW);
17 digitalWrite(4,HIGH);
18 delay(2000);
19 digitalWrite(2,LOW);
20 digitalWrite(3,HIGH);
21 digitalWrite(4,LOW);
22 delay(300);
23}FAQ
Combien de temps le feu orange doit-il rester allumé ?▾
Sur les feux de signalisation réels, le feu orange reste généralement allumé pendant 3 à 4 secondes. Dans le projet, cette durée est réglée à l'aide de la fonction delay() ; en prolongeant la durée des feux rouge et vert et en raccourcissant celle du feu orange, on obtient un cycle proche de la réalité.
Pourquoi utilise-t-on une résistance de 330 Ω au lieu de 220 Ω ?▾
Une résistance de 330 Ω réduit légèrement le courant (environ 9 à 10 mA) ; les LED restent bien visibles et le courant total prélevé sur les broches est moindre. Cela fonctionne également avec une résistance de 220 Ω, mais les LED sont alors un peu plus lumineuses.
Puis-je ajouter un bouton « piéton » ?▾
Oui. Tu peux ajouter un bouton-poussoir et une résistance de pull-down de 10 kΩ, puis lire la valeur avec la fonction digitalRead. Lorsque tu appuies sur le bouton, tu peux faire passer le cycle au rouge et allumer une LED verte distincte pour les piétons ; pour cela, utiliser la fonction millis() plutôt que delay permet de détecter instantanément l'action du bouton.
L'ordre des LED est perturbé, que dois-je faire ?▾
Compare une à une les désignations des broches dans le code (rouge, jaune, vert) avec les câbles du circuit. Le plus simple est d'allumer chaque LED à l'aide d'un code de test distinct afin de vérifier à quelle broche elle est connectée.
