from machine import Pin
import time
# Pines de conexión al 74HC595
DATA = Pin(15, Pin.OUT) # DS
LATCH = Pin(13, Pin.OUT) # ST_CP
CLOCK = Pin(14, Pin.OUT) # SH_CP
# Tabla de segmentos (común cátodo)
# Bit 0 -> a, Bit 1 -> b, ..., Bit 6 -> g
digits = [
0b00111111, # 0
0b00000110, # 1
0b01011011, # 2
0b01001111, # 3
0b01100110, # 4
0b01101101, # 5
0b01111101, # 6
0b00000111, # 7
0b01111111, # 8
0b01101111 # 9
]
def shift_out(value):
"""Envía 8 bits al 74HC595"""
for i in range(8):
bit = (value >> (7 - i)) & 1
DATA.value(bit)
CLOCK.value(1)
CLOCK.value(0)
def display_number(num):
"""Muestra un dígito (0–9)"""
LATCH.value(0)
shift_out(digits[num])
LATCH.value(1)
# --- Programa principal ---
while True:
for n in range(10):
display_number(n)
print("Mostrando:", n)
time.sleep(1)