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.

No layout yet

When components get added to the schematic, they'll show up here.