from machine import Pin
from time import sleep
# Define segment pins
segments = [Pin(pin, Pin.OUT) for pin in [21, 22, 23, 19, 18, 5, 17, 16]]
# Define digit patterns (segments that need to be lit to display each digit)
digits = {
0: (1, 1, 1, 1, 1, 1, 0), # 0
1: (0, 1, 1, 0, 0, 0, 0), # 1
2: (1, 1, 0, 1, 1, 0, 1), # 2
3: (1, 1, 1, 1, 0, 0, 1), # 3
4: (0, 1, 1, 0, 0, 1, 1), # 4
5: (1, 0, 1, 1, 0, 1, 1), # 5
6: (1, 0, 1, 1, 1, 1, 1), # 6
7: (1, 1, 1, 0, 0, 0, 0), # 7
8: (1, 1, 1, 1, 1, 1, 1), # 8
9: (1, 1, 1, 1, 0, 1, 1) # 9
}
# Function to display a digit on the 7-segment display
def display_digit(digit):
pattern = digits.get(digit, (0, 0, 0, 0, 0, 0, 0))
for segment, state in zip(segments, pattern):
segment.value(state)
# Main loop
counter = 0
while True:
display_digit(counter)
counter = (counter + 1) % 10 # Increment counter (0 to 9)
sleep(1) # Delay for 1 second