Vous êtes sur la page 1sur 4

TP 7 feu tricolore avec bouton poussoir tache 2

https://www.tinkercad.com/things/fZo0EUOK2jB-magnificent-bojo/editel?
sharecode=xqSNTNH8EqcvK4clawaXoxpNzpUFjgWHo9jCdQeumy0

//FEU 1

const int Rouge1 = 13;

const int Orange1 = 12;

const int Vert1 = 11;

//FEU2

const int Rouge2 = 4;

const int Orange2 = 3;

const int Vert2 = 2;

//pieton

const int Rougepieton = 8;

const int Vertpieton = 9;

const int bouton = 10;

// variable qui enregistre l'état du bouton

int etatBouton;

void setup()

{
// initialisation de FEU1

pinMode(Rouge1, OUTPUT);

pinMode(Orange1, OUTPUT);

pinMode(Vert1, OUTPUT);

// initialisation de FEU2

pinMode(Rouge2, OUTPUT);

pinMode(Orange2, OUTPUT);

pinMode(Vert2, OUTPUT);

// feu pieton

pinMode(bouton, INPUT);

pinMode(Rougepieton, OUTPUT);

pinMode(Vertpieton, OUTPUT);

digitalWrite(bouton, HIGH); // Pullup interne sur le bouton

etatBouton = HIGH; // on initialise l'état du bouton comme "relaché"

void loop()

etatBouton = digitalRead(bouton); // Rappel : bouton = 2

if(etatBouton == HIGH) // test si le bouton a un niveau logique HAUT

// Seul Rouge1 et Vert2 seront alumés

digitalWrite(Rouge2, LOW);

digitalWrite(Vert1, LOW);

digitalWrite(Rougepieton, LOW);

digitalWrite(Vertpieton, HIGH);

digitalWrite(Rouge1, HIGH);

digitalWrite(Vert2, HIGH);

delay(3000);
// Seul Orange1 et Orange2 seront allumés

digitalWrite(Vert2, LOW);

digitalWrite(Rouge1, LOW);

digitalWrite(Rougepieton, HIGH);

digitalWrite(Rougepieton, LOW);

digitalWrite(Orange1, HIGH);

digitalWrite(Orange2, HIGH);

delay(1000);

// Seul Vert1 et Rouge2 seront allumés

digitalWrite(Orange1, LOW);

digitalWrite(Orange2, LOW);

digitalWrite(Vertpieton, LOW);

digitalWrite(Rougepieton, HIGH);

digitalWrite(Vert1, HIGH);

digitalWrite(Rouge2, HIGH);

delay(3000);

else // test si le bouton a un niveau logique différent de HAUT (donc BAS)

digitalWrite(Vert1, LOW);

digitalWrite(Rouge1, LOW);

digitalWrite(Rouge2, LOW);

digitalWrite(Vert2, LOW);

digitalWrite(Rougepieton, HIGH);

digitalWrite(Vertpieton, LOW);

digitalWrite(Orange1, HIGH);

digitalWrite(Orange2, HIGH);

delay(1000);

digitalWrite(Orange1, LOW);

digitalWrite(Orange2, LOW);
digitalWrite(Vert2, HIGH);

digitalWrite(Vert1, LOW);

digitalWrite(Rouge2, LOW);

digitalWrite(Rougepieton, LOW);

digitalWrite(Vertpieton, HIGH);

digitalWrite(Rouge1, HIGH);

delay(3000);

Vous aimerez peut-être aussi