from machine import Pin
from utime import sleep
# Configurar los pines del display de 7 segmentos
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
Pin(0, Pin.OUT) # DP
]
# Configurar el pin del pulsador
button = Pin(10, Pin.IN, Pin.PULL_DOWN) # Pin 10 configurado como entrada con resistencia de pull-down
# Patrones para dígitos en display de ánodo común (sin DP)
digits = [
[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
]
def reset():
"""Resetea los pines (apaga todos los segmentos)"""
for pin in pins:
pin.value(1) # Apaga los segmentos en ánodo común (1 apaga, 0 enciende)
reset()
while True:
for i in range(len(digits)):
# Monitorear el pulsador
if button.value() == 1: # Si el pulsador está presionado
i = 0 # Reiniciar la secuencia desde 0
reset() # Apagar todos los segmentos
break # Salir del ciclo para comenzar de nuevo
# Mostrar el dígito en el display
for j in range(len(pins) - 1): # Recorrer los segmentos (sin DP)
pins[j].value(digits[i][j])
sleep(0.5) # Pausa de 0.5 segundos entre dígitos