import machine
import time
# Define GPIO pins for 7-segment display
segment_pins = [15,16,9,5,26,21,18,6] # Adjust pin numbers based on your wiring
digit_pins = [10,11,12,13] # Adjust pin numbers based on your wiring
# Define the mapping of numbers to segments for a common cathode display
numbers = {
0: [1, 1, 1, 1, 1, 1, 0,0],
1: [0, 1, 1, 0, 0, 0, 0,0],
2: [1, 1, 0, 1, 1, 0, 1,0],
3: [1, 1, 1, 1, 0, 0, 1,0],
4: [0, 1, 1, 0, 0, 1, 1,0],
5: [1, 0, 1, 1, 0, 1, 1,0],
6: [1, 0, 1, 1, 1, 1, 1,0],
7: [1, 1, 1, 0, 0, 0, 0,0],
8: [1, 1, 1, 1, 1, 1, 1,0],
9: [1, 1, 1, 1, 0, 1, 1,0]
}
# Setup GPIO pins
for pin in segment_pins + digit_pins:
machine.Pin(pin, machine.Pin.OUT)
def display_number(number):
print(number)
if number in numbers:
segments_state = numbers[number]
print(segments_state)
for i, pin in enumerate(segment_pins):
machine.Pin(pin, machine.Pin.OUT).value(segments_state[i])
def cleanup():
for pin in segment_pins + digit_pins:
machine.Pin(pin, machine.Pin.OUT).value(0)
if __name__ == "__main__":
try:
while True:
for i in range(10):
display_number(i)
time.sleep(0.5)
except KeyboardInterrupt:
print("\nProgram terminated by user.")
finally:
cleanup()