from machine import Pin, ADC
from time import sleep
import urandom
segments = {
'A': Pin(22, Pin.OUT),
'B': Pin(21, Pin.OUT),
'C': Pin(20, Pin.OUT),
'D': Pin(19, Pin.OUT),
'E': Pin(18, Pin.OUT),
'F': Pin(17, Pin.OUT),
'G': Pin(16, Pin.OUT),
}
button = Pin(10, Pin.IN, Pin.PULL_DOWN)
pot = ADC(26)
digits = {
1: ['B', 'C'],
2: ['A', 'B', 'F', 'E', 'D'],
3: ['A', 'B', 'C', 'D', 'F'],
4: ['F', 'G', 'B', 'C'],
5: ['A', 'F', 'G', 'C', 'D'],
6: ['A', 'F', 'G', 'C', 'D', 'E']
}
def afficher_chiffre(n):
for segment, pin in segments.items():
pin.value(1 if segment in digits[n] else 0)
def clear_display():
for pin in segments.values():
pin.value(0)
while True:
if button.value():
valeur = urandom.randint(1, 6)
afficher_chiffre(valeur)
print("Dé lancé :", valeur)
pot_value = pot.read_u16()
delay = 0.1 + (pot_value / 65535) * 1.9
sleep(delay)
clear_display() # <-- Éteint l’afficheur
while button.value():
pass # Attendre que le bouton soit relâché