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
Pin(10, Pin.OUT) # DP (not connected)
]
# Common anode 7-segment display digit patterns
digits = [
[1, 1, 1, 0, 0, 0, 1, 1], # L
[0, 0, 0, 1, 0, 0, 0, 1], # A
[1, 0, 0, 0, 0, 0, 1, 1], # V
[0, 0, 0, 1, 0, 0, 0, 1], # A
[1, 1, 0, 1, 0, 1, 0, 1],# N
[1, 0, 0 ,0, 1, 0, 0, 1], # Y
[0, 0, 0, 1, 0, 0, 0, 1], # A
[0, 0, 0, 1, 0, 0, 0, 1], # A
[0, 1, 0, 0, 1, 0, 0, 0], # s
[0, 1, 0, 0, 1, 0, 0, 1], # s
[0, 0, 0, 1, 0, 0, 0, 1], # a
[0, 0, 0, 1, 0, 0, 0, 1], # a
[1, 1, 1, 0, 0, 0, 1, 1], # L
[1, 1, 1, 1, 0, 0, 1, 1], # i
[1, 0, 0, 1, 0, 0, 0, 1], # h
[0, 1, 0, 0, 1, 0, 0, 1], # s
[1, 0, 0, 0, 0, 0, 1, 1], # u
[1, 1, 1, 0, 0, 0, 1, 1], # L
[1, 1, 1, 0, 0, 0, 0, 1], # t
[1, 0, 0, 1, 0, 0, 0, 1], # h
[0, 0, 0, 1, 0, 0, 0, 1], # a
[1, 1, 0, 1, 0, 1, 0, 0], # n
]
def reset():
"""Turns off all segments on the 7-segment display."""
for pin in pins:
pin.value(1)
reset()
switch = Pin(13, Pin.IN)
while True:
if switch.value() == 1:
# Ascending counter
for i in range(len(digits)):
if switch.value() == 0:
break
for j in range(len(pins) - 1):
pins[j].value(digits[i][j])
sleep(0.5)
else:
# Descending counter
for i in range(len(digits) - 1, -1, -1):
if switch.value() == 1:
break
for j in range(len(pins)):
pins[j].value(digits[i][j])
sleep(0.5)