import time
import machine
# 7-segment segments a–g to GPIO pins
segments = {
'a': machine.Pin(6, machine.Pin.OUT),
'b': machine.Pin(7, machine.Pin.OUT),
'c': machine.Pin(8, machine.Pin.OUT),
'd': machine.Pin(9, machine.Pin.OUT),
'e': machine.Pin(10, machine.Pin.OUT),
'f': machine.Pin(11, machine.Pin.OUT),
'g': machine.Pin(12, machine.Pin.OUT),
'dp': machine.Pin(13, machine.Pin.OUT),
}
# 7-segment pattern for 0–9
digits = {
0: ['a', 'b', 'c', 'd', 'e', 'f'],
1: ['b', 'c'],
2: ['a', 'b', 'g', 'e', 'd'],
3: ['a', 'b', 'g', 'c', 'd'],
4: ['f', 'g', 'b', 'c'],
5: ['a', 'f', 'g', 'c', 'd'],
6: ['a', 'f', 'g', 'e', 'd', 'c'],
7: ['a', 'b', 'c'],
8: ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
9: ['a', 'b', 'c', 'd', 'f', 'g'],
}
# Function to display a digit (cathode)
def display_number(n):
# Turn off all segments
for seg in segments.values():
seg.value(0)
# Turn on the required segments
for seg_name in digits[n]:
segments[seg_name].value(1)
# Main loop: count up 0–9
while True:
for i in range(10):
display_number(i)
time.sleep(1)