from machine import Pin # Importation de la classe Pin du module machine pour contrôler les broches GPIO
from time import sleep # Importation de la fonction sleep pour insérer des pauses dans le programme
# Définition des LEDs connectées aux broches GPIO spécifiques pour représenter deux routes opposées
led_verte_1 = Pin(9, Pin.OUT) # LED verte pour la première route (voie 1)
led_orange_1 = Pin(5, Pin.OUT) # LED orange pour la première route (voie 1)
led_rouge_1 = Pin(1, Pin.OUT) # LED rouge pour la première route (voie 1)
led_verte_2 = Pin(18, Pin.OUT) # LED verte pour la deuxième route (voie 2)
led_orange_2 = Pin(22, Pin.OUT) # LED orange pour la deuxième route (voie 2)
led_rouge_2 = Pin(28, Pin.OUT) # LED rouge pour la deuxième route (voie 2)
# Boucle infinie pour gérer l'alternance des feux de circulation entre les deux routes
while True:
# 1) La première voie est verte, la seconde est rouge
led_verte_1.on() # Allume la LED verte de la voie 1
led_rouge_1.off() # Éteint la LED rouge de la voie 1
led_rouge_2.on() # Allume la LED rouge de la voie 2
sleep(3) # Maintient cet état pendant 3 secondes
# 2) Passage à l'orange sur la première voie avant de s'arrêter
led_verte_1.off() # Éteint la LED verte de la voie 1
led_orange_1.on() # Allume la LED orange de la voie 1
sleep(1) # Maintient l'orange pendant 1 seconde
led_orange_1.off() # Éteint la LED orange de la voie 1
# 3) La première voie devient rouge, la seconde devient verte
led_rouge_1.on() # Allume la LED rouge de la voie 1
led_rouge_2.off() # Éteint la LED rouge de la voie 2
led_verte_2.on() # Allume la LED verte de la voie 2
sleep(3) # Maintient cet état pendant 3 secondes
# 4) Passage à l'orange sur la deuxième voie avant de s'arrêter
led_verte_2.off() # Éteint la LED verte de la voie 2
led_orange_2.on() # Allume la LED orange de la voie 2
sleep(1) # Maintient l'orange pendant 1 seconde
led_orange_2.off() # Éteint la LED orange de la voie 2
# 5) Retour à l'état initial, la deuxième voie devient rouge et la première devient verte
led_rouge_2.on() # Allume la LED rouge de la voie 2
led_rouge_1.off() # Éteint la LED rouge de la voie 1
led_verte_1.on() # Allume la LED verte de la voie 1