from machine import Pin, ADC
from utime import sleep
# Pins pour les LEDs
led_green = Pin(10, Pin.OUT) # Feu de circulation vert
led_rouge = Pin(5, Pin.OUT) # Feu de circulation rouge
led_jaune = Pin(8, Pin.OUT) # Feu de circulation jaune
led_pieton_vert = Pin(12, Pin.OUT) # Feu piéton vert
led_pieton_rouge = Pin(13, Pin.OUT) # Feu piéton rouge
# Bouton et potentiomètre
BP = Pin(27, Pin.IN, Pin.PULL_DOWN)
potentiometer = ADC(Pin(28))
conversion = 1 / 65535
led_green.value(1)
led_pieton_rouge.value(1)
while True:
# Lire la valeur du potentiomètre pour les timings
pot_value = potentiometer.read_u16() * conversion
if BP.value() == 1:
# Phase 2: Feu jaune
led_green.value(0) # Éteindre le feu vert
led_jaune.value(1) # Allumer le feu jaune
sleep(pot_value) # Temps d'attente
led_pieton_rouge.value(0)
led_jaune.value(0) # Éteindre le feu jaune
# Phase 3: Feu rouge
led_rouge.value(1) # Allumer le feu rouge
led_pieton_vert.value(1) # Allumer le feu piéton vert
sleep(pot_value) # Temps d'attente
led_rouge.value(0) # Éteindre le feu rouge
led_pieton_vert.value(0) # Éteindre le feu piéton vert
# Rétablir la situation initiale (retour au feu vert)
led_green.value(1) # Rallume la LED verte
led_pieton_rouge.value(1) # Rallume le feu piéton rouge
# Délai pour éviter une répétition rapide
sleep(2)