from machine import Pin
import time

# Define pins for each segment in the 7-segment display
a = Pin(23, Pin.OUT)
b = Pin(22, Pin.OUT)
c = Pin(21, Pin.OUT)
d = Pin(19, Pin.OUT)
e = Pin(18, Pin.OUT)
f = Pin(5, Pin.OUT)
g = Pin(17, Pin.OUT)
db = Pin(16, Pin.OUT)

# Define pins for controlling the four displays
first_seven = Pin(4, Pin.OUT)
second_seven = Pin(2, Pin.OUT)
third_seven = Pin(0, Pin.OUT)
fourth_seven = Pin(15, Pin.OUT)

# Function to clear all segments
def clear_display():
    a.value(1)
    b.value(1)
    c.value(1)
    d.value(1)
    e.value(1)
    f.value(1)
    g.value(1)
    db.value(1)

# Functions to display numbers from 0 to 9
def display_0():
    clear_display()
    a.value(0)
    b.value(0)
    c.value(0)
    d.value(0)
    e.value(0)
    f.value(0)

def display_1():
    clear_display()
    b.value(0)
    c.value(0)

def display_2():
    clear_display()
    a.value(0)
    b.value(0)
    d.value(0)
    e.value(0)
    g.value(0)

def display_3():
    clear_display()
    a.value(0)
    b.value(0)
    c.value(0)
    d.value(0)
    g.value(0)

def display_4():
    clear_display()
    b.value(0)
    c.value(0)
    f.value(0)
    g.value(0)

def display_5():
    clear_display()
    a.value(0)
    c.value(0)
    d.value(0)
    f.value(0)
    g.value(0)

def display_6():
    clear_display()
    a.value(0)
    c.value(0)
    d.value(0)
    e.value(0)
    f.value(0)
    g.value(0)

def display_7():
    clear_display()
    a.value(0)
    b.value(0)
    c.value(0)

def display_8():
    clear_display()
    a.value(0)
    b.value(0)
    c.value(0)
    d.value(0)
    e.value(0)
    f.value(0)
    g.value(0)

def display_9():
    clear_display()
    a.value(0)
    b.value(0)
    c.value(0)
    d.value(0)
    f.value(0)
    g.value(0)

# Main loop to display the same number on all four displays simultaneously
while True:
    for number in range(1, 10):
        first_seven.value(1)
        second_seven.value(1)
        third_seven.value(1)
        fourth_seven.value(1)
        
        if number == 1:
            display_1()
        elif number == 2:
            display_2()
        elif number == 3:
            display_3()
        elif number == 4:
            display_4()
        elif number == 5:
            display_5()
        elif number == 6:
            display_6()
        elif number == 7:
            display_7()
        elif number == 8:
            display_8()
        elif number == 9:
            display_9()

        time.sleep(2)