from machine import Pin
from utime import sleep
# 7-segment display layout
# A
# ---
# F | G | B
# ---
# E | | C
# ---
# D
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
]
# Padrões dos dígitos de 0 a 9 (decimal) para o display de 7 segmentos
digits = [
[0, 0, 0, 0, 0, 0, 1], # 0
[1, 0, 0, 1, 1, 1, 1], # 1
[0, 0, 1, 0, 0, 1, 0], # 2
[0, 0, 0, 0, 1, 1, 0], # 3
[1, 0, 0, 1, 1, 0, 0], # 4
[0, 1, 0, 0, 1, 0, 0], # 5
[0, 1, 0, 0, 0, 0, 0], # 6
[0, 0, 0, 1, 1, 1, 1], # 7
[0, 0, 0, 0, 0, 0, 0], # 8
[0, 0, 0, 1, 1, 0, 0], # 9
]
def reset():
"""Desliga todos os segmentos do display de 7 segmentos."""
for pin in pins:
pin.value(1)
reset()
def show_digit(digit_index):
"""Mostra um dígito no display de 7 segmentos."""
for i in range(len(pins)):
pins[i].value(digits[digit_index][i])
# Valor inicial da contagem regressiva (9)
start_value = 9
while True:
for i in range(start_value, -1, -1): # Contagem regressiva de 9 até 0
show_digit(i)
sleep(1) # Pausa de 1 segundo entre cada número
reset() # Apaga o display após a contagem terminar
sleep(2) # Pausa de 2 segundos antes de reiniciar a contagem