Feux de signalisation routière Arduino

Le feu tricolore Arduino est une excellente activité d’apprentissage du microcontrôleur pour les débutants. Il vous permettra de mieux appréhender l’environnement de programmation Arduino IDE et de comprendre le principe des broches numériques à usage général. Voyons le schéma de montage d’un feu de signalisation Arduino Uno à l’aide d’une planche à pain et présentons un projet simple qui peut être utilisé pour des cours avec des enfants.


Ce dont vous aurez besoin

  • Arduino Uno / Arduino Nano / Arduino Mega
  • multicolore LEDs
  • resistances
  • bouton-poussoir
  • breadboard
  • fils de connexion

Matériel supplémentaire sur ce sujet:

  1. Allumer et éteindre LED avec bouton-poussoir
  2. Comment faire clignoter une LED Arduino
  3. Jeu Arduino avec LEDs « Répétez la séquence »

Feux de circulation a base Arduino

Feu tricolore de circulation Arduino Uno
Feu tricolore de circulation a base Arduino Uno

Pour commencer, nous allons assembler un circuit simple de feux de signalisation sur une planche à pain afin de comprendre le code et de comprendre l’algorithme des feux de signalisation aux intersections. Il sera également utile aux enfants de comprendre le mode de fonctionnement des feux de signalisation sur la route dans la vie réelle. Connectez les LEDs à l’Arduino en utilisant le schéma ci-dessus et chargez le code suivant dans la carte.

Programme pour feu de circulation avec Arduino

#define RED1    2
#define ORANGE1 3
#define GREEN1  4
#define RED2    9
#define ORANGE2 10
#define GREEN2  11

int pause = 3000;

void setup() {
   pinMode(RED1, OUTPUT);
   pinMode(ORANGE1, OUTPUT);
   pinMode(GREEN1, OUTPUT);
   pinMode(RED2, OUTPUT);
   pinMode(ORANGE2, OUTPUT);
   pinMode(GREEN2, OUTPUT);
}

void loop() {
   digitalWrite(RED1, HIGH);
   digitalWrite(ORANGE1, LOW);
   digitalWrite(GREEN1, LOW);
   digitalWrite(RED2, LOW);
   digitalWrite(ORANGE2, LOW);
   digitalWrite(GREEN2, HIGH);
   delay(pause);

   digitalWrite(RED1, HIGH);
   digitalWrite(ORANGE1, HIGH);
   digitalWrite(GREEN1, LOW);
   digitalWrite(RED2, LOW);
   digitalWrite(ORANGE2, HIGH);
   digitalWrite(GREEN2, LOW);
   delay(pause);

   digitalWrite(RED1, LOW);
   digitalWrite(ORANGE1, LOW);
   digitalWrite(GREEN1, HIGH);
   digitalWrite(RED2, HIGH);
   digitalWrite(ORANGE2, LOW);
   digitalWrite(GREEN2, LOW);
   delay(pause);

   digitalWrite(RED1, LOW);
   digitalWrite(ORANGE1, HIGH);
   digitalWrite(GREEN1, LOW);
   digitalWrite(RED2, HIGH);
   digitalWrite(ORANGE2, HIGH);
   digitalWrite(GREEN2, LOW);
   delay(pause);
}

Explication du code pour feu de signalisation routière avec piéton:

  1. les broches avec LEDs sont nommées en utilisant la directive #define;
  2. les LEDs sont allumées toutes les trois secondes; l’intervalle peut être modifié en changeant la valeur de la variable int pause = 3000; dans le programme.
Feu de signalisation routière avec bouton-poussoir
Feu de signalisation routière avec bouton-poussoir

L’exemple suivant reproduit le fonctionnement des feux de signalisation aux passages pour piétons où le mode de fonctionnement est changé en appuyant sur le bouton et où il est nécessaire d’utiliser la boucle while dans le programme. Il est nécessaire d’ajouter un bouton d’horloge au circuit et d’activer le mode feux de signalisation lorsque le niveau du signal sur la sortie numérique (analogique) à laquelle le bouton est connecté est élevé.

Programme pour feu de circulation avec bouton-poussoir

#define RED1    2
#define ORANGE1 3
#define GREEN1  4
#define RED2    9
#define ORANGE2 10
#define GREEN2  11
#define BOUTON  7
int pause = 3000;

void setup() {
   pinMode(RED1, OUTPUT);
   pinMode(ORANGE1, OUTPUT);
   pinMode(GREEN1, OUTPUT);
   pinMode(RED2, OUTPUT);
   pinMode(ORANGE2, OUTPUT);
   pinMode(GREEN2, OUTPUT);
   pinMode(BOUTON, INPUT);
}

void loop() {
   digitalWrite(RED1, HIGH);
   digitalWrite(ORANGE1, LOW);
   digitalWrite(GREEN1, LOW);
   digitalWrite(RED2, LOW);
   digitalWrite(ORANGE2, LOW);
   digitalWrite(GREEN2, HIGH);

while (digitalRead(BOUTON) == HIGH) {
      digitalWrite(RED1, HIGH);
      digitalWrite(ORANGE1, HIGH);
      digitalWrite(GREEN1, LOW);
      digitalWrite(RED2, LOW);
      digitalWrite(ORANGE2, HIGH);
      digitalWrite(GREEN2, LOW);
      delay(pause);

      digitalWrite(RED1, LOW);
      digitalWrite(ORANGE1, LOW);
      digitalWrite(GREEN1, HIGH);
      digitalWrite(RED2, HIGH);
      digitalWrite(ORANGE2, LOW);
      digitalWrite(GREEN2, LOW);
      delay(pause);

      digitalWrite(RED1, LOW);
      digitalWrite(ORANGE1, HIGH);
      digitalWrite(GREEN1, LOW);
      digitalWrite(RED2, HIGH);
      digitalWrite(ORANGE2, HIGH);
      digitalWrite(GREEN2, LOW);
      delay(pause);
   }
}

Explication du code pour Arduino feu tricolore avec piéton:

  1. la boucle while n’est exécutée que lorsque le bouton-poussoir est pressé;
  2. les broches avec les LEDs et le bouton sont nommés.

Conclusion. Programmation feux tricolores à base microcontrôleur Arduino. Vous pouvez implémenter le clignotement de la lumière verte du feu de signalisation Arduino dans le programme. Et le projet de feux de signalisation lui-même peut être amélioré en remplaçant le bouton poussoir par un télémètre à ultrasons hc-sr04.





7 Replies to “Programmation feu de signalisation routière Arduino”

  1. Vraiment j ai trouvé sa très géniale j ai même fait un exercice sur la dessus et sa donne parfaitement

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.