Introduction
Vous avez toujours voulu construire un feu tricolore sans avoir les composants sous la main ? Avec Velxio, vous pouvez simuler un feu tricolore complet basé sur Arduino directement dans votre navigateur. Ce projet utilise trois LED (rouge, jaune, verte) connectées à un Arduino Uno pour reproduire la séquence classique d’un feu tricolore : rouge → jaune → vert → jaune → rouge. C’est un projet idéal pour les débutants afin d’apprendre les sorties numériques, le timing et la logique séquentielle.
Présentation du circuit
Examinons le circuit. Le schéma ci-dessous montre le câblage complet :

Composants
- Arduino Uno – le cerveau de l’opération.
- LED rouge – connectée à la broche numérique 13.
- LED jaune – connectée à la broche numérique 12.
- LED verte – connectée à la broche numérique 11.
- Résistances – chaque LED nécessite une résistance de limitation de courant (généralement 220Ω) en série avec son anode. Dans Velxio, les LED intégrées possèdent déjà des résistances internes, vous n’avez donc pas besoin de les ajouter manuellement.
Détails du câblage
Chaque LED a deux pattes : l’anode (patte la plus longue, marquée comme broche “A”) et la cathode (patte la plus courte, marquée comme broche “C”). Le câblage est simple :
- LED rouge : Anode vers la broche 13 de l’Arduino via un fil rouge (
#ff0000). Cathode vers GND de l’Arduino via un fil noir. - LED jaune : Anode vers la broche 12 de l’Arduino via un fil jaune (
#ffaa00). Cathode vers GND. - LED verte : Anode vers la broche 11 de l’Arduino via un fil vert (
#00ff00). Cathode vers GND.
Les trois LED partagent la même connexion GND sur l’Arduino. Il s’agit d’une configuration de masse commune.
Explication du code
Examinons maintenant le code qui fait changer les lumières. Ouvrez l’éditeur de code dans Velxio :

// Traffic Light Simulator
// Red -> Yellow -> Green -> Yellow -> Red
const int RED_PIN = 13;
const int YELLOW_PIN = 12;
const int GREEN_PIN = 11;
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(YELLOW_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
}
void loop() {
// Red light
digitalWrite(RED_PIN, HIGH);
delay(3000);
digitalWrite(RED_PIN, LOW);
// Yellow light
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
// Green light
digitalWrite(GREEN_PIN, HIGH);
delay(3000);
digitalWrite(GREEN_PIN, LOW);
// Yellow light again
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
}
Comment ça fonctionne
- Définitions des broches : Nous définissons des constantes pour les trois broches :
RED_PIN = 13,YELLOW_PIN = 12,GREEN_PIN = 11. Elles correspondent au câblage. - Configuration : Dans
setup(), nous configurons les trois broches enOUTPUTavecpinMode(). Cela indique à l’Arduino d’envoyer une tension à travers ces broches. - Boucle : La fonction
loop()s’exécute indéfiniment. Elle suit cette séquence :- Allumer la LED rouge (
HIGH), attendre 3 secondes, l’éteindre (LOW). - Allumer la LED jaune, attendre 1 seconde, l’éteindre.
- Allumer la LED verte, attendre 3 secondes, l’éteindre.
- Allumer à nouveau la LED jaune, attendre 1 seconde, l’éteindre.
- Ensuite, la boucle recommence depuis le feu rouge.
- Allumer la LED rouge (
Cela crée le motif familier d’un feu tricolore.
Concepts clés pour les étudiants
- Sorties numériques :
digitalWrite(broche, HIGH)met une broche à 5V (allumé),LOWla met à 0V (éteint). - Temporisation avec
delay():delay(millisecondes)met le programme en pause. Attention : pendant quedelay()s’exécute, l’Arduino ne peut rien faire d’autre. - Logique séquentielle : L’ordre des opérations est important. Le code s’exécute ligne par ligne, donc les lumières changent dans une séquence prévisible.
- Masse commune : Toutes les LED partagent la même connexion à la masse. C’est typique dans les circuits numériques.
Pièges courants et conseils de débogage
- Mauvais numéros de broches : Vérifiez que les numéros de broches dans le code correspondent au câblage. Si la LED rouge est sur la broche 13 mais que vous avez écrit
12, elle ne s’allumera pas. - Orientation des LED : Les LED sont polarisées. L’anode (longue patte) doit être connectée à la broche de l’Arduino, et la cathode (courte patte) à GND. Dans Velxio, le composant LED est correctement orienté par défaut.
- Résistances manquantes : Dans la réalité, utilisez toujours une résistance de limitation de courant (220Ω–1kΩ) en série avec chaque LED pour éviter tout dommage. Les LED intégrées de Velxio incluent des résistances, mais si vous utilisez des composants personnalisés, ajoutez-les.
- Blocage par
delay(): Si vous souhaitez ajouter des boutons ou des capteurs plus tard,delay()bloquera le programme. Envisagez d’utilisermillis()pour une temporisation non bloquante.
Extensions suggérées
Une fois que le feu tricolore de base fonctionne, essayez ces améliorations :
- Ajouter un bouton piéton : Utilisez un bouton poussoir pour demander un signal de passage. Lorsqu’il est pressé, le feu tricolore passe au rouge, puis une LED blanche (passage piéton) s’allume.
- Utiliser
millis()au lieu dedelay(): Réécrivez le code pour utilisermillis()pour la temporisation. Cela permet à l’Arduino de vérifier les pressions de bouton pendant l’attente. - Ajouter un buzzer : Connectez un buzzer piézo à une broche et faites-le biper lorsque le feu vert est sur le point de passer au jaune.
- Simuler un passage piéton : Ajoutez deux LED supplémentaires (rouge et verte) pour un passage piéton, et coordonnez-les avec les feux tricolores.
Essayez par vous-même
Prêt à construire votre propre feu tricolore ? Ouvrez l’exemple dans Velxio et commencez à expérimenter :
Ouvrir l’exemple de feu tricolore sur Velxio
Vous pouvez modifier le code, changer la temporisation ou ajouter d’autres LED. Le simulateur fonctionne entièrement dans votre navigateur – aucun téléchargement, aucun matériel nécessaire. Utilisez la barre d’outils pour compiler et exécuter votre code :


Si vous devez ajouter de nouveaux composants, ouvrez le sélecteur de composants :

Et si vous souhaitez utiliser des bibliothèques, le gestionnaire de bibliothèques est à un clic :

Bonne simulation !