from machine import Pin
from time import sleep
# Segment pins
pins = [
Pin(2, Pin.OUT), # A
Pin(4, Pin.OUT), # B
Pin(16, Pin.OUT), # C
Pin(17, Pin.OUT), # D
Pin(5, Pin.OUT), # E
Pin(18, Pin.OUT), # F
Pin(19, Pin.OUT) # G
]
digits = [
Pin(25, Pin.OUT),
Pin(14, Pin.OUT),
Pin(26, Pin.OUT)
]
numbers = [
[0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 1, 1, 1, 1],
[1, 0, 0, 1, 1, 0, 0],
[0, 1, 0, 0, 1, 0, 0],
[0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0],
]
def clear_number():
for pin in pins:
pin.value(1)
def make_number(n):
for index, num in enumerate(numbers[n]):
pins[index].value(num)
def show_number(seconds):
tens = seconds // 10
ones = seconds % 10
for _ in range(100):
digits[3].value(0)
make_number(tens)
sleep(0.002)
clear_number()
digits[3].value(1)
# Show ones on DIG4
digits[2].value(0)
make_number(ones)
sleep(0.002)
clear_number()
digits[2].value(1)
while True:
for count in range(60):
show_number(count)
sleep(0.8)