from machine import Pin
from utime import sleep
pins = [
Pin(2, Pin.OUT),
Pin(3, Pin.OUT), # B segment
Pin(4, Pin.OUT), # C segment
Pin(5, Pin.OUT), # D segment
Pin(6, Pin.OUT), # E segment
Pin(8, Pin.OUT), # F segment
Pin(7, Pin.OUT), # G segment
Pin(0, Pin.OUT) # DP (decimal point, not used in this code)
]
digits = [
[0, 0, 0, 0, 0, 0, 1, 1], # 0
[1, 0, 0, 1, 1, 1, 1, 1], # 1
[0, 0, 1, 0, 0, 1, 0, 1], # 2
[0, 0, 0, 0, 1, 1, 0, 1], # 3
[1, 0, 0, 1, 1, 0, 0, 1], # 4
[0, 1, 0, 0, 1, 0, 0, 1], # 5
[0, 1, 0, 0, 0, 0, 0, 1], # 6
[0, 0, 0, 1, 1, 1, 1, 1], # 7
[0, 0, 0, 0, 0, 0, 0, 1], # 8
[0, 0, 0, 1, 1, 0, 0, 1], # 9
[0, 0, 0, 1, 0, 0, 0, 1], # A
[1, 1, 0, 0, 0, 0, 0, 1], # b
[0, 1, 1, 0, 0, 0, 1, 1], # C
[1, 0, 0, 0, 0, 1, 0, 1], # d
[0, 1, 1, 0, 0, 0, 0, 1], # E
[0, 1, 1, 1, 0, 0, 0, 1], # F
]
#last digit is decimal point as is always 1 if not used
#1 is off, 0 is on because of the potential voltage difference
def reset():
#Turns off all segments on the 7-segment display.
for pin in pins:
pin.value(1) # Set all pins to HIGH (common anode = all segments OFF)
reset() # Clear display at the beginning
# while True:
# for i in range(len(digits)):
# for j in range(len(pins)):
# pins[j].value(digits[i][j])
# sleep(0.5)
# while True:
# for i in range(len(digits) -1, -1, -1):
# for j in range(len(pins) -1):
# pins[j].value(digits[i][j])
# sleep(0.5)
switch = Pin(13, Pin.IN)
while True:
if(switch.value() == 1): #if switch on
for i in range (len(digits)):
if (switch.value() == 0):
break
for j in range(len(pins)):
pins[j].value(digits[i][j])
sleep(0.5)
else:
for i in range (len(digits) -1, -1, -1):
if (switch.value() == 1):
break
for j in range(len(pins) -1):
pins[j].value(digits[i][j])
sleep(0.5)