import machine
import time
segmentos = [4, 2, 19, 18, 5, 22, 23]
digitos = [26, 25, 33, 32]
contador = 0
ultimo_cambio = time.ticks_ms()
digitos_segmentos = {
0: (0,0,0,0,0,0,1),
1: (1,0,0,1,1,1,1),
2: (0,0,1,0,0,1,0),
3: (0,0,0,0,1,1,0),
4: (1,0,0,1,1,0,0),
5: (0,1,0,0,1,0,0),
6: (0,1,0,0,0,0,0),
7: (0,0,0,1,1,1,1),
8: (0,0,0,0,0,0,0),
9: (0,0,0,0,1,0,0)
}
for pin in segmentos + digitos:
machine.Pin(pin, machine.Pin.OUT)
def mostrar_digito(digito, valor):
for d in digitos:
machine.Pin(d, machine.Pin.OUT).value(0)
config = digitos_segmentos[valor]
for i, estado in enumerate(config):
machine.Pin(segmentos[i], machine.Pin.OUT).value(estado)
machine.Pin(digitos[digito], machine.Pin.OUT).value(1)
def refrescar_display(numero):
for i in range(4):
digito = (numero // (10 ** i)) % 10
mostrar_digito(i, digito)
time.sleep_ms(5) # refresco rápido
while True:
refrescar_display(contador)
# Cambia el número cada 1 segundo SIN congelar display
if time.ticks_diff(time.ticks_ms(), ultimo_cambio) > 1000:
contador += 1
if contador > 9999:
contador = 0
ultimo_cambio = time.ticks_ms()