from machine import Pin
import time 

# Define os números dos pinos para os segmentos do LED
led_pins = [16, 17, 18, 19, 20, 21, 22]
segments = [Pin(pin, Pin.OUT) for pin in led_pins]  # Inicializa cada pino de segmento como saída

# Dicionário que define o estado de cada segmento para os dígitos de 0 a 9
digits = {
    0: [1, 1, 1, 1, 1, 1, 0],
    1: [0, 1, 1, 0, 0, 0, 0],
    2: [1, 1, 0, 1, 1, 0, 1],
    3: [1, 1, 1, 1, 0, 0, 1],
    4: [0, 1, 1, 0, 0, 1, 1],
    5: [1, 0, 1, 1, 0, 1, 1],
    6: [1, 0, 1, 1, 1, 1, 1],
    7: [1, 1, 1, 0, 0, 0, 0],
    8: [1, 1, 1, 1, 1, 1, 1],
    9: [1, 1, 1, 1, 0, 1, 1]
}

# Configura os números dos pinos para os botões de incremento e decremento
up_button = Pin(15, Pin.IN, Pin.PULL_UP)    # Botão para incrementar
down_button = Pin(14, Pin.IN, Pin.PULL_UP)  # Botão para decrementar

# Função para atualizar os LEDs com base no valor atual
def display_value(value):
    for segment, state in zip(segments, digits[value]):
        segment.value(state)  # Define o estado de cada segmento

# Variável global para armazenar o valor atual
count = 0
display_value(count)  # Inicializa o display para mostrar 0

# Manipulador de interrupção para incrementar o valor
def increment_handler(pin):
    global count
    count = (count + 1) % 10  # Incrementa e mantém o valor entre 0 e 9
    display_value(count)  # Atualiza o display com o novo valor

# Manipulador de interrupção para decrementar o valor
def decrement_handler(pin):
    global count
    if count > 0:
        count = (count - 1) % 10  # Decrementa e mantém o valor entre 0 e 9
        display_value(count)  # Atualiza o display com o novo valor

# Configura interrupções para os botões
up_button.irq(trigger=Pin.IRQ_FALLING, handler=increment_handler)   # Chama increment_handler ao pressionar o botão "para cima"
down_button.irq(trigger=Pin.IRQ_FALLING, handler=decrement_handler)  # Chama decrement_handler ao pressionar o botão "para baixo"

# Loop principal para manter o programa em execução
while True:
    pass  # Mantém o loop ativo, aguardando interrupções
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT