MVONGO SERVICESMVONGO SERVICES
Retour aux cours Cours d'électronique · Débutant

Feu tricolore avec Arduino UNO

Reproduis le fonctionnement d'un vrai feu de circulation avec trois LEDs (rouge, jaune, verte) pilotées par un Arduino UNO. Un projet idéal pour apprendre à commander plusieurs sorties et gérer des temporisations.

Résumé du projet

Ce circuit simule un feu tricolore à l'aide d'un Arduino UNO et de trois LEDs (rouge, jaune, verte), chacune protégée par une résistance de 220 Ω. L'Arduino enchaîne les phases dans un ordre précis : rouge, rouge + jaune, vert, puis jaune, sans jamais arrêter le cycle.

C'est le premier projet parfait pour comprendre comment contrôler plusieurs broches de sortie, utiliser la fonction delay() et structurer un cycle répétitif dans la boucle loop().

Cycle complet

12 secondes

3 sorties

D2, D3, D4

Niveau

Débutant

Composants

6 éléments

Schéma du feu tricolore avec Arduino UNO et trois LEDs

Schéma de câblage : Arduino UNO — LED rouge (D2) — LED jaune (D3) — LED verte (D4) — résistances 220 Ω.

Fonctionnement

Le cycle du feu tricolore

Rouge (5 s)

La LED rouge s'allume : la circulation est arrêtée.

Rouge + jaune (1 s)

Le jaune s'allume en plus du rouge : on se prépare à passer au vert.

Vert (5 s)

Rouge et jaune s'éteignent, la LED verte s'allume : la circulation est autorisée.

Jaune (1 s)

Vert éteint, jaune allumé : signal de fin, on se prépare à s'arrêter.

Liste des composants

De quoi as-tu besoin ?

Arduino UNO

Carte microcontrôleur basée sur le ATmega328P. Elle pilote la séquence du feu tricolore en allumant et en éteignant chaque LED au bon moment.

LED rouge

Le feu rouge. Elle indique l'arrêt obligatoire. C'est la première lampe allumée dans le cycle.

LED jaune

Le feu orange. Elle annonce le changement d'état : elle s'allume brièvement avant le feu vert (et avant le retour au rouge).

LED verte

Le feu vert. Elle autorise la circulation. Elle reste allumée pendant la majeure partie du cycle.

Résistances 220 Ω

Protègent chaque LED en limitant le courant qui la traverse. Sans elles, les LEDs risquent de griller.

Plaque d'essai ou fils de connexion

La breadboard permet de réaliser les branchements proprement, et les fils (jumpers) relient les composants entre eux et à l'Arduino.

Câblage

Branchements sur l'Arduino UNO

Broches de l'Arduino
D2

Résistance 220 Ω de la LED rouge (broche 2)

D3

Résistance 220 Ω de la LED jaune (broche 2)

D4

Résistance 220 Ω de la LED verte (broche 2)

GND

Cathodes (−) des trois LEDs (via la ligne GND de la breadboard)

Les LEDs

LED rouge

Anode (+) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D2 (via sa résistance 220 Ω).

LED jaune

Anode (+) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D3 (via sa résistance 220 Ω).

LED verte

Anode (+) : Broche 1 de sa résistance 220 Ω · Cathode (−) : GND · Contrôlée par la broche D4 (via sa résistance 220 Ω).

Règle d'or

Toujours brancher la résistance en série avec chaque LED, côté anode (+). Une LED sans résistance peut être endommagée instantanément.

Programmation

Le code Arduino

Voici un code complet et commenté. Copie-le dans l'Arduino IDE, branche ta carte via USB, sélectionne le bon port et clique sur « Téléverser ».

// Feu tricolore avec Arduino UNO
const int LED_ROUGE = 2;
const int LED_JAUNE = 3;
const int LED_VERTE = 4;

const unsigned long TEMPS_ROUGE = 5000;      // 5 secondes
const unsigned long TEMPS_ROUGE_JAUNE = 1000; // 1 seconde
const unsigned long TEMPS_VERT = 5000;       // 5 secondes
const unsigned long TEMPS_JAUNE = 1000;      // 1 seconde

void setup() {
  pinMode(LED_ROUGE, OUTPUT);
  pinMode(LED_JAUNE, OUTPUT);
  pinMode(LED_VERTE, OUTPUT);

  // Toutes les LEDs éteintes au départ
  digitalWrite(LED_ROUGE, LOW);
  digitalWrite(LED_JAUNE, LOW);
  digitalWrite(LED_VERTE, LOW);
}

void loop() {
  // Phase 1 : feu rouge
  digitalWrite(LED_ROUGE, HIGH);
  digitalWrite(LED_JAUNE, LOW);
  digitalWrite(LED_VERTE, LOW);
  delay(TEMPS_ROUGE);

  // Phase 2 : rouge + jaune
  digitalWrite(LED_ROUGE, HIGH);
  digitalWrite(LED_JAUNE, HIGH);
  digitalWrite(LED_VERTE, LOW);
  delay(TEMPS_ROUGE_JAUNE);

  // Phase 3 : feu vert
  digitalWrite(LED_ROUGE, LOW);
  digitalWrite(LED_JAUNE, LOW);
  digitalWrite(LED_VERTE, HIGH);
  delay(TEMPS_VERT);

  // Phase 4 : feu jaune
  digitalWrite(LED_ROUGE, LOW);
  digitalWrite(LED_JAUNE, HIGH);
  digitalWrite(LED_VERTE, LOW);
  delay(TEMPS_JAUNE);
}

Pour aller plus loin : modifie les durées dans les constantesTEMPS_* pour accélérer ou ralentir ton feu, ou ajoute un bouton piéton et une LED verte clignotante avant le jaune.

Prêt à construire ton feu tricolore ?

Rassemble trois LEDs, trois résistances et un Arduino UNO, suis le schéma de câblage, téléverse le code et regarde ton feu fonctionner !