import time
import board
import digitalio
# Define 7 segment pins
segments = {
'a': digitalio.DigitalInOut(board.GP16),
'b': digitalio.DigitalInOut(board.GP17),
'c': digitalio.DigitalInOut(board.GP18),
'd': digitalio.DigitalInOut(board.GP19),
'e': digitalio.DigitalInOut(board.GP20),
'f': digitalio.DigitalInOut(board.GP21),
'g': digitalio.DigitalInOut(board.GP22),
}
# Set all pins as output
for seg in segments.values():
seg.direction = digitalio.Direction.OUTPUT
# Digit patterns (1=ON, 0=OFF) for a Common Cathode Display [cite: 35, 40, 41]
digits = {
0: (1, 1, 1, 1, 1, 1, 0),
1: (0, 1, 1, 0, 0, 0, 0),
2: (1, 1, 0, 1, 1, 0, 1),
3: (1, 1, 1, 1, 0, 0, 1),
4: (0, 1, 1, 0, 0, 1, 1),
5: (1, 0, 1, 1, 0, 1, 1),
6: (1, 0, 1, 1, 1, 1, 1),
7: (1, 1, 1, 0, 0, 0, 0),
8: (1, 1, 1, 1, 1, 1, 1),
9: (1, 1, 1, 1, 0, 1, 1),
}
# Maintain order of segments
segment_keys = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
# Function to display the digit
def display_digit(num):
pattern = digits[num]
for i, seg in enumerate(segment_keys):
segments[seg].value = pattern[i]
# Main loop to count from 0 to 9
while True:
for i in range(9, -1, -1):
print("Displaying:", i)
display_digit(i)
time.sleep(1)