# ---------------------------------------------------------
# DISPLAY 7 SEGMENTOS ÁNODO CÓMÚN
# Proyecto_13.py
# ---------------------------------------------------------
from machine import Pin
import utime
# Diseño del display de 7 segmentos
# A
# ---
# F | | B
# | G |
# ---
# E | | C
# | |
# --- o DP (Punto Decimal)
# D
# Pines GPIO para los segmentos 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
]
# Patrones de dígitos comunes para el display de 7 segmentos de ánodo común
segmentos = [
[0, 0, 0, 0, 0, 0, 1, 1], # 0
[1, 0, 0, 1, 1, 1, 1, 1], # 1
[0, 0, 1, 0, 0, 1, 0, 1], # 2
[0, 0, 0, 0, 1, 1, 0, 1], # 3
[1, 0, 0, 1, 1, 0, 0, 1], # 4
[0, 1, 0, 0, 1, 0, 0, 1], # 5
[0, 1, 0, 0, 0, 0, 0, 1], # 6
[0, 0, 0, 1, 1, 1, 1, 1], # 7
[0, 0, 0, 0, 0, 0, 0, 1], # 8
[0, 0, 0, 0, 1, 0, 0, 1], # 9
[0, 0, 0, 1, 0, 0, 0, 1], # A
[1, 1, 0, 0, 0, 0, 0, 1], # B
[0, 1, 1, 0, 0, 0, 1, 1], # C
[1, 0, 0, 0, 0, 1, 0, 1], # D
[0, 1, 1, 0, 0, 0, 0, 1], # E
[0, 1, 1, 1, 0, 0, 0, 0], # F
]
# Lista de letras para mapear los valores hexadecimales en la consola
letras = ['A', 'b', 'C', 'd', 'E', 'F.']
# Apaga todos los segmentos del display
def reset():
for pin in pins:
pin.value(1)
reset()
while True:
# Muestra cada dígito en orden
for dígito_index, dígito in enumerate(segmentos):
for pin, value in zip(pins, dígito):
pin.value(value)
# Imprime el dígito o la letra en la consola
if dígito_index <= 9:
print("Mostrando el dígito:", dígito_index)
else:
print("Mostrando la letra:", letras[dígito_index - 10])
utime.sleep(1) # Frecuencia de contaje 1 segundo