from machine import Pin
from time import sleep
from segment import segment_write
# =========================
# Buttons Setup (Pull-Up Configuration)
# =========================
# In pull-up mode:
# - NOT PRESSED = 1
# - PRESSED = 0
start_button = Pin(14, Pin.IN, Pin.PULL_UP) # Start Countdown button
reset_button = Pin(12, Pin.IN, Pin.PULL_UP) # Reset button
# =========================
# System Variables (State Management)
# =========================
current_number = 9
running = False
# =========================
# Main Loop
# =========================
while True:
# =========================
# Start Countdown (active LOW)
# =========================
if start_button.value() == 0 and running == False:
running = True
sleep(0.2) # simple debounce
# Countdown loop
while running and current_number >= 0:
segment_write(current_number)
sleep(1)
current_number -= 1
# Check reset button during countdown
if reset_button.value() == 0:
running = False
current_number = 9
segment_write(current_number)
sleep(0.3)
break
running = False
# =========================
# Reset Button (active LOW)
# =========================
if reset_button.value() == 0:
running = False
current_number = 9
segment_write(current_number)
sleep(0.3) # debounce delay
# =========================
# Idle display (keep showing current number)
# =========================
segment_write(current_number)