"""
#CONTADOR BINARIO DE 8 BITS
import board
import digitalio
import time

#DEFINE LOS LEDS
led_pins = [
    board.GP0, board.GP1, board.GP2, board.GP3, 
    board.GP4, board.GP5, board.GP6, board.GP7
]

#CONFIGURA LOS LEDS COMO SALIDAS DIGITALES
leds = [digitalio.DigitalInOut(pin) for pin in led_pins]
for led in leds:
    led.direction = digitalio.Direction.OUTPUT

#FUNCION QUE ACTUALIZA EL VALOR DEL CONTADOR BINARIO DE 8 BITS
def update_leds(counter):
   for i in range (8):
    leds[i].value = (counter >> i) & 0b01

#PROGRAMA PRINCIPAL    
counter = 0

for counter in range (0, 256):
    update_leds(counter)
    time.sleep(0.039)
#    counter = (counter + 1) % 256
    print (counter)
counter = 0
update_leds(counter)
"""

"""
#SEMAFORO DOBLE
import board
import digitalio
import time

#DEFINE LOS LEDS
#          V1         A1         R1         V2         A2         R2
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
    [1, 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
]

#Funcion para desplegar un patron 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)

"""

#DISPLAY 7 SEGMENTOS
import board
import digitalio
import time

#DEFINE LOS SEGMENTOS
#           a          b          c           d           e           f           g
segments = [board.GP8, board.GP9, board.GP10, board.GP11, board.GP12, board.GP13, board.GP14]

#Define pin para catodo comun
common_catode = board.GP15

#Configura los Leds como salidas digitales
segment_pins = [digitalio.DigitalInOut(pin) for pin in segments]
for segment_pin in segment_pins:
    segment_pin.direction = digitalio.Direction.OUTPUT

#Configura la salida digital del cátodo
common_catode_pin = digitalio.DigitalInOut(common_catode)
common_catode_pin.direction = digitalio.Direction.OUTPUT

#Define los patrones del display de 7 segmentos para los digitos 0 a 9
digit_patterns = [
    [1, 1, 1, 1, 1, 1, 0],  #Numero 0
    [0, 1, 1, 0, 0, 0, 0],  #Numero 1
    [1, 1, 0, 1, 1, 0, 1],  #Numero 2
    [1, 1, 1, 1, 0, 0, 1],  #Numero 3
    [0, 1, 1, 0, 0, 1, 1],  #Numero 4
    [1, 0, 1, 1, 0, 1, 1],  #Numero 5
    [0, 0, 1, 1, 1, 1, 1],  #Numero 6
    [1, 1, 1, 0, 0, 0, 0],  #Numero 7
    [1, 1, 1, 1, 1, 1, 1],  #Numero 8
    [1, 1, 1, 0, 0, 1, 1]   #Numero 9
]

#Funcion para desplegar un digito en el display
def display_digit(digit):
    for i in range (7):
        segment_pins [i].value = digit_patterns[digit][i]
        common_catode_pin.value = False
    time.sleep(0.5)

#Programa principal
while True:
    for digit in range (10):
        display_digit(digit)
$abcdeabcde151015202530354045505560fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
led1:A
led1:C
led2:A
led2:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
led3:A
led3:C
led4:A
led4:C
r8:1
r8:2
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
sevseg1:COM.1
sevseg1:COM.2
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP