from machine import Pin, ADC
from utime import sleep
# --- Configuration des broches ---
rled = Pin(0, Pin.OUT)
bpv = Pin(1, Pin.IN, Pin.PULL_DOWN)
bpb = Pin(2, Pin.IN, Pin.PULL_DOWN)
pot = ADC(26) # potentiomètre sur GP26
# --- Fonction pour lire la vitesse (potentiomètre) ---
def get_delay():
val = pot.read_u16() # entre 0 et 65535
delay = 0.5 - (val / 65535) * 0.45 # entre 0.05 et 0.5 s
return delay
# --- Fonction pour faire un signal court ou long ---
def flash(short=True):
base = get_delay()
duree = base if short else base * 3 # long = 3x court
rled.value(1)
sleep(duree)
rled.value(0)
sleep(base) # pause entre deux signaux
# --- Séquence 1 : "Pas compris, répétez !" ---
def pas_compris():
for _ in range(2): # 2 courts
flash(short=True)
for _ in range(2): # 2 longs
flash(short=False)
for _ in range(2): # 2 courts
flash(short=True)
# --- Séquence 2 : "Tout compris !" ---
def tout_compris():
for _ in range(3): # 3 courts
flash(short=True)
flash(short=False) # 1 long
flash(short=True) # 1 court
# --- Boucle principale ---
while True:
# Si on appuie sur le BP1 → 1 seul cycle de "Pas compris"
if bpv.value() == 1:
pas_compris()
# attendre que le bouton soit relâché
while bpv.value() == 1:
sleep(0.05)
# Si on appuie sur le BP2 → 1 seul cycle de "Tout compris"
elif bpb.value() == 1:
tout_compris()
# attendre que le bouton soit relâché
while bpb.value() == 1:
sleep(0.05)
else:
rled.value(0)