Código de Control LED y Display


A continuación se muestran las correcciones necesarias para ambos bloques de código:

Bloque 1: Secuencia de 6 LEDs
El código es funcional. Se verifica la definición de 6 pines, la configuración como salidas y el uso de los patrones para los dígitos 0–9. Si se requiere ajustar algún patrón, se puede modificar en la lista led_patterns. El código corregido es:

Python


import board
import digitalio
import time

# Defino 6 pines
leds = [board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5]

# Configura los LEDs como salidas digitales
led_pins = [digitalio.DigitalInOut(pin) for pin in leds]
for led_pin in led_pins:
    led_pin.direction = digitalio.Direction.OUTPUT

# Define los patrones de LEDs para las secuencias 0 a 9
led_patterns = [
    [1, 0, 0, 0, 0, 1],  # Sec 0
    [0, 0, 0, 0, 0, 1],  # Sec 1
    [1, 0, 0, 0, 0, 1],  # Sec 2
    [0, 0, 0, 0, 0, 1],  # Sec 3
    [0, 1, 0, 0, 0, 1],  # Sec 4
    [0, 0, 1, 1, 0, 0],  # Sec 5
    [0, 0, 1, 0, 0, 0],  # Sec 6
    [0, 0, 1, 1, 0, 0],  # Sec 7
    [0, 0, 1, 0, 0, 0],  # Sec 8
    [0, 0, 1, 0, 1, 0]   # Sec 9
]

# Función para desplegar un patrón de LEDs
def display_pattern(sequence):
    for i in range(6):
        led_pins[i].value = led_patterns[sequence][i]
    time.sleep(2.0)

# Programa principal
while True:
    for sequence in range(10):
        display_pattern(sequence)

Bloque 2: Display de 7 segmentos
Se han corregido los siguientes errores:
  • Variable incorrecta al crear la lista de pines: Se usaba segments en lugar de la lista definida leds.
  • Error de nombre en el bucle: Se usaba segments_pins en vez de segment_pins.
  • Patrones de dígitos: Cada patrón debe tener 7 valores; se actualizaron los patrones a los valores estándar para un display de cátodo común.
  • Variable en el bucle principal: Se usaba un identificador no definido (digit); se ha corregido a digit obtenido del bucle.
La versión corregida es la siguiente:

Python


import board
import digitalio
import time

# Defino 7 pines para los segmentos
leds = [board.GP8, board.GP9, board.GP10, board.GP11, board.GP12, board.GP13, board.GP14]

# Definir pin para cátodo común
common_catode = board.GP15

# Configura los pines de los segmentos como salidas digitales
segment_pins = [digitalio.DigitalInOut(pin) for pin in leds]
for segment_pin in segment_pins:
    segment_pin.direction = digitalio.Direction.OUTPUT

# Configura el pin del cátodo común como salida digital
common_catode_pin = digitalio.DigitalInOut(common_catode)
common_catode_pin.direction = digitalio.Direction.OUTPUT

# Define los patrones de dígitos para un display de 7 segmentos (cátodo común)
digit_patterns = [
    [1, 1, 1, 1, 1, 1, 0],  # Dígito 0
    [0, 1, 1, 0, 0, 0, 0],  # Dígito 1
    [1, 1, 0, 1, 1, 0, 1],  # Dígito 2
    [1, 1, 1, 1, 0, 0, 1],  # Dígito 3
    [0, 1, 1, 0, 0, 1, 1],  # Dígito 4
    [1, 0, 1, 1, 0, 1, 1],  # Dígito 5
    [1, 0, 1, 1, 1, 1, 1],  # Dígito 6
    [1, 1, 1, 0, 0, 0, 0],  # Dígito 7
    [1, 1, 1, 1, 1, 1, 1],  # Dígito 8
    [1, 1, 1, 1, 0, 1, 1]   # Dígito 9
]

def display_digit(digit):
    for i in range(7):
        segment_pins[i].value = digit_patterns[digit][i]
    common_catode_pin.value = False  # Activa el cátodo común en un display de cátodo común
    time.sleep(0.5)

# Programa principal
while True:
    for digit in range(10):
        display_digit(digit)

Estos cambios corrigen errores de nombres, longitudes de listas y uso de variables. Revise y ajuste según las necesidades específicas de su aplicación.
Project Architecture
No schematic yet

Talk to Flux to get started.