Feu de circulation avec Arduino

De L'abscisse - FabLab et Hackerspace de Dijon
Aller à : navigation, rechercher

Faire clignoter plusieurs LED.

Présentation

Voici un montage qui permet de faire clignoter 3 LED à la manière d'un feu de circulation.

Coût

Faible

Niveau de difficulté

Vert.png

Outillage nécessaire

  • Arduino

Composants nécessaires

  • 3 résistance de 1kΩ
  • 1 LED verte
  • 1 LED jaune
  • 1 LED rouge
  • des fils de connexion

Schémas

Feu tricolore schéma.png
Feu tricolore bb.png

Code source

https://gitlab.com/coagul/arduino/blob/master/beginner/_001_feu_tricolore/_001_feu_tricolore.ino

/*
  Clignotement à tour de rôle d'un feu tricolore
  
  Orange allumée pendant 1 seconde (la LED orange devra être la première LED à s'allumer)
  Rouge allumée pendant 3 secondes (comme dans la vraie vie, orange devra s'éteindre et la LED rouge s'allume en second)
  Verte allumée pendant 3 secondes (après rouge, on passe au vert)
 
  Cette exemple est dans le domaine public

  Câblage :

  La broche 13 est reliée à la LED verte (LED → la résistance → GND)
  La broche 12 est reliée à la LED orange (LED → la résistance → GND)
  La broche 11 est reliée à la LED verte (LED → la résistance → GND)

*/

// déclare 3 variables nommées verte, orange, rouge de type entier, permet de faire référence aux différentes broches de sortie dans le programme
int verte = 13;
int orange = 12;
int rouge = 11;

// le setup regroupe les instructions qui seront exécutées au démarrage du programme y compris quand on presse le bouton reset
void setup() {                
  // on initialise les 3 broches de l'Arduino en tant que sortie
  pinMode(verte, OUTPUT);
  pinMode(orange, OUTPUT);
  pinMode(rouge, OUTPUT);
}

// contient les instructions que l'on souhaite voir exécutées encore et encore tant que l'Arduino est alimenté
void loop() {
  digitalWrite(orange, HIGH);   // allumer la LED orange (HIGH est le niveau de voltage, état haut)
  delay(1000);                  // 1000 millisecondes, attendre une seconde
  digitalWrite(orange, LOW);    // éteindre la LED orange (LOW est le niveau de voltage, état bas)
  digitalWrite(rouge, HIGH);    // allumer la LED rouge
  delay(3000);                  // attendre 3 secondes
  digitalWrite(rouge, LOW);     // éteindre la LED rouge 
  digitalWrite(verte, HIGH);    // allumer la LED verte 
  delay(3000);                  // attendre 3 secondes
  digitalWrite(verte, LOW);     // éteindre la LED verte
}

Variantes

Pour aller plus loin voici des variantes possibles du montage :

  • faire varier le temps entre les changements d'état
  • changer l'ordre d'allumage des LED

Liens

Fichiers liés au montage
https://gitlab.com/coagul/arduino/tree/master/beginner/_001_feu_tricolore

Auteurs

Licence de la page

Attribution - Partage dans les Mêmes Conditions 3.0 non transposé (CC BY-SA 3.0)

Vous êtes libre de :

  • partager — reproduire, distribuer et communiquer l’œuvre
  • remixer — adapter l’œuvre
  • d’utiliser cette œuvre à des fins commerciales

Selon les conditions suivantes :

  • Attribution — Vous devez attribuer l’œuvre de la manière indiquée par l’auteur de l’œuvre ou le titulaire des droits (mais pas d’une manière qui suggérerait qu’ils vous approuvent, vous ou votre utilisation de l’œuvre).
  • Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de distribuer votre création que sous une licence identique ou similaire à celle-ci.

http://creativecommons.org/licenses/by-sa/3.0/deed.fr