import machine
import utime
# Define GPIO pins for each segment (A to G)
segment_pins = [
machine.Pin(0, machine.Pin.OUT), # Pin connected to segment A
machine.Pin(1, machine.Pin.OUT), # Pin connected to segment B
machine.Pin(2, machine.Pin.OUT), # Pin connected to segment C
machine.Pin(3, machine.Pin.OUT), # Pin connected to segment D
machine.Pin(4, machine.Pin.OUT), # Pin connected to segment E
machine.Pin(5, machine.Pin.OUT), # Pin connected to segment F
machine.Pin(6, machine.Pin.OUT) # Pin connected to segment G
]
# Define the patterns for each digit (0 to 9)
digit_patterns = [
GFE DCBA
0x40, # 0 0100 0000 A
0x79, # 1 0111 1001 ---
0x24, # 2 0010 0100 F | G | B
0x30, # 3 0011 0000 ---
0x19, # 4 0001 1001 E | | C
0x12, # 5 0001 0010 ---
0x02, # 6 0000 0010 D
0x78, # 7 0111 1000
0x00, # 8 0000 0000
0x10, # 9 0001 0000
]
# Function to display a digit on the seven-segment display
def display_digit(digit):
pattern = digit_patterns[digit]
for i, pin in enumerate(segment_pins):
pin.value((pattern >> i) & 1)
if __name__ == "__main__":
# Display digits 0 to 9
while True:
for digit in range(10):
display_digit(digit)
utime.sleep(1) # Display each digit for 1 second