from machine import Pin
from utime import sleep
# Définition des broches des afficheurs à 7 segments
pins = [
Pin(2, Pin.OUT), # A
Pin(3, Pin.OUT), # B
Pin(4, Pin.OUT), # C
Pin(5, Pin.OUT), # D
Pin(6, Pin.OUT), # E
Pin(8, Pin.OUT), # F
Pin(7, Pin.OUT), # G
]
pins1 = [
Pin(26, Pin.OUT), # 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
]
# Fonction pour éteindre toutes les LEDs
def eteindre_tout(pins):
"""Éteint tous les segments de l'afficheur 7 segments"""
for pin in pins:
pin.value(1) # 1 pour éteindre (car anode commune)
# Fonctions pour afficher les chiffres de 0 à 9
def afficher_chiffre(pins, chiffre):
"""Affiche un chiffre sur un afficheur 7 segments"""
eteindre_tout(pins) # Éteindre l'afficheur avant d'afficher un nouveau chiffre
segments = [
[0, 0, 0, 0, 0, 0, 1], # 0
[1, 0, 0, 1, 1, 1, 1], # 1
[0, 0, 1, 0, 0, 1, 0], # 2
[0, 0, 0, 0, 1, 1, 0], # 3
[1, 0, 0, 1, 1, 0, 0], # 4
[0, 1, 0, 0, 1, 0, 0], # 5
[0, 1, 0, 0, 0, 0, 0], # 6
[0, 0, 0, 1, 1, 1, 1], # 7
[0, 0, 0, 0, 0, 0, 0], # 8
[0, 0, 0, 1, 1, 0, 0], # 9
]
for i in range(7):
pins[i].value(segments[chiffre][i]) # Allumer les segments nécessaires
# Fonction pour afficher un nombre de 0 à 20 sur les deux afficheurs
def afficher_nombre(nombre):
"""Affiche un nombre entre 0 et 20 en utilisant deux afficheurs"""
dizaines = nombre // 10
unite = nombre % 10
# Gérer les dizaines correctement
if dizaines == 0:
eteindre_tout(pins1) # Éteindre l'afficheur des dizaines si le nombre < 10
else:
afficher_chiffre(pins1, dizaines) # Afficher la dizaine
# Afficher l'unité
afficher_chiffre(pins, unite)
# Boucle pour afficher les nombres de 0 à 20
for i in range(21):
afficher_nombre(i)
sleep(1)