Vous êtes sur la page 1sur 5

Projet 1: Les feux de circulation

Afin de mettre en pratique l'utilisation de variables, voici un petit exercice.


L’objectif de cet exercice est de créer deux feux de circulation et de les faire fonctionner
de manière synchrone.
Voici les phases de deux feux de circulation que tu dois recréer:

Circuit :
Liste des composants
 2 LEDs rouges
 2 LEDs jaunes ou oranges
 2 LEDs vertes
 6 résistances de 220 à 470Ω

Afin de faciliter l'identification de chaque LED, nous allons renommer les broches
comme suit:
Feu 1:
LED rouge connectée sur la broche 4 et renommée LED_ROUGE1
LED jaune connectée sur la broche 5 et renomméeLED_JAUNE1
LED verte connectée sur la broche 6 et renommée LED_VERTE1

Feu 2:
LED rouge connectée sur la broche 8 et renommée LED_ROUGE2
LED jaune connectée sur la broche 9 et renommée LED_JAUNE2
LED verte connectée sur la broche 10 et renommée LED_VERTE2

Enfin, nous utiliserons deux variables iTemps1 et iTemps2 pour définir les temps
d'allumages. Avant de regarder le code à la page suivante, essaie de faire l'exercice seul.
DÉBUT DU PSEUDOCODE FEU_CIRCULATION

Configuration
Placer les broches 4, 5, 6, 8, 9 et 10 en sortie

Répéter
Éteindre del verte #1
Éteindre del rouge #2
Éteindre del jaune #1
Éteindre del jaune #2
Allumer del rouge #1
Allumer del verte #2
Attendre 6 secondes

Éteindre del verte #2


Allumer del jaune #1
Allumer del jaune #2
Attendre 2 secondes

Éteindre del rouge #1


Éteindre del jaune #1
Éteindre del jaune #2
Allumer del verte #1
Allumer del rouge #2
Attendre 6 secondes

Éteindre del verte #1


Allumer del jaune #1
Allumer del jaune #2
Allumer del rouge #2
Attendre 2 secondes

Jusqu’à (ce qu’on enlève l’alimentation)


FIN DU PSEUDOCODE FEU_CIRCULATION

//===========================================================================

// Nom: FEU_CIRCULATION .C

//

// Description : Faire fonctionner deux feux de circulation d’une manière synchrone

//
// Cible: Microcontrôleur de la compagnie MICROCHIP
//
// Compilateur: Arduino, version : 1.8.13
//
/ /Utilisation:
//
// Pseudo-code: Feu_Circulation.doc
//
// Restriction: Aucune
//
// Historique:
// 1-R0 / 2022.01.24 / M. Rachedi / Création;

//========================================================================

// ---------------------------------------------------------------------------------------------------------------------------
// Déclaration des constantes
// ---------------------------------------------------------------------------------------------------------------------------

//FEU 1
const int LED_ROUG1 = 4; // La broche 4 devient le feu rouge 1
const int LED_JAUNE1 = 5; // La broche 3 devient le feu jaune 1
const int LED_VERTE1 = 6; //La broche 2 devient le feu vert 1

//FEU2
const int LED_ROUGE2 = 8; // La broche 8 devient le feu rouge 2
const int LED_JAUNE2 = 9; // La broche 9 devient le feu jaune 2
const int LED_VERTE2 = 10; // La broche 10 devient le feu vert 2

// -----------------------------------------------------------------------------------------------------------------
// Déclaration des variables
//--------------------------------------------------------------------------------------------------------------------

//TEMPS
int iTemps1 = 2000; // Le temps de pause est fixé à 2 secondes
int iTemps2 = 6000; // Le temps de pause est fixé à 6 secondes

void setup() {
//-----------------------------------------------------------------------------------------------------------------
// Déclaration de la direction des ports d'entrées/sorties.
//-------------------------------------------------------------------------------------------------------------
pinMode(LED_ROUGE1, OUTPUT);
pinMode(LED_JAUNE1, OUTPUT);
pinMode(LED_VERTE1, OUTPUT);
pinMode(LED_ROUGE2, OUTPUT);
pinMode(LED_JAUNE2, OUTPUT);
pinMode(LED_VERTE2, OUTPUT);
}
//-----------------------------------------------------------------------------------------------------------------
// Programme principal
//--------------------------------------------------------------------------------------------------------------------
void loop() {
// Phase 1: LED_ROUGE1 et LED_VERT2 sont allumés, LED_VERTE1, LED_ROUGE2, LED_JAUNE1
// et LED_JAUNE2 sont éteints

digitalWrite(LED_VERTE1, LOW); // Éteindre la del verte 1


digitalWrite(LED_ROUGE2, LOW); // Éteindre la del rouge 2
digitalWrite(LED_JAUNE1, LOW); // Éteindre la del jaune 1
digitalWrite(LED_JAUNE2, LOW); // Éteindre la del jaune 2
digitalWrite(LED_ROUGE1, HIGH); // Allumer la del rouge1
digitalWrite(LED_VERTE2, HIGH); // Allumer la del verte 2
delay(iTemps2); // Attendre 6 secondes

// Phase 2: LED_ROUGE1, LED_JAUNE1, LED_JAUNE2 allumés etLED_VERTE2 éteint


digitalWrite(LED_VERTE2, LOW); // Éteindre la del verte 2
digitalWrite(LED_JAUNE1, HIGH); // Allumer la del jaune 1
digitalWrite(LED_JAUNE2, HIGH); // Allumer la del jaune 2
delay(iTemps1); // Attendre 2 secondes

// Phase 3: LED_ROUGE1, LED_JAUNE1, LED_JAUNE2 éteints et LED_VERTE1 et LED_ROUGE2


// allumés
digitalWrite(LED_ROUGE1, LOW); // Éteindre la del rouge 1
digitalWrite(LED_JAUNE1, LOW); // Éteindre la del jaune 1
digitalWrite(LED_JAUNE2, LOW); // Éteindre la del jaune 2
digitalWrite(LED_VERTE1, HIGH); // Allumer la del verte 1
digitalWrite(LED_ROUGE2, HIGH); // Allumer la del rouge 2
delay(iTemps2); // Attendre 6 secondes

//Phase 4: LED_VERTE1 éteint et LED_JAUNE1, LED_JAUNE2 et LED_ROUGE2 allumés


digitalWrite(LED_VERTE1, LOW); // Éteindre la del verte 1
digitalWrite(LED_JAUNE1, HIGH); // Allumer la del jaune 1
digitalWrite(LED_JAUNE2, HIGH); // Allumer la del jaune 2
digitalWrite(LED_ROUGE2, HIGH); // Allumer la del rouge 2
delay(iTemps1); // Attendre 2 secondes
}

Vous aimerez peut-être aussi