from machine import Pin
import time
import random
l1=Pin(28,Pin.OUT)
l2=Pin(20,Pin.OUT)
l3=Pin(19,Pin.OUT)
segment_pins = [27,21,16,17,18,26,22]
segments=[Pin(pin,Pin.OUT) for pin in segment_pins]
digits = [
[0,0,0,0,0,0,1],
[1,0,0,1,1,1,1],
[0,0,1,0,0,1,0],
[0,0,0,0,1,1,0],
[1,0,0,1,1,0,0],
[0,1,0,0,1,0,0],
[0,1,0,0,0,0,0]
]
def display_number(num):
if 0 <= num <= 6:
pattern = digits[num]
for i in range(7):
segments[i].value(pattern[i])
pins = [0,1,2,3,4,15,14,13,12,11]
leds = []
for pin_number in pins:
led = Pin(pin_number, Pin.OUT)
leds.append(led)
def all_off():
for led in leds:
led.value(0)
def all_on():
for led in leds:
led.value(1)
def pattern_alternate():
all_off()
for i in range(10):
leds[i].value(i % 2)
def pattern_center_out():
mid=4
for offset in range(5):
all_off()
leds[mid-offset].value(1)
leds[mid+offset].value(1)
time.sleep(0.3)
def pattern_random():
all_off()
for _ in range(30):
l1.toggle()
time.sleep(.1)
l2.toggle()
time.sleep(.1)
l3.toggle()
idx = random.randint(0,9)
leds[idx].value(random.randint(0,1))
time.sleep(0.05)
all_off()
def pattern_runner(color_dalay=0.05):
for i in range(10):
all_off()
if i % 3==0:
l1.on()
l2.off()
l3.off()
elif i% 3==1:
l1.off()
l2.on()
l3.off()
else:
l1.off()
l2.off()
l3.on()
leds[i].value(1)
time.sleep(color_dalay)
for i in range(4,-1,-1):
all_off()
leds[i].value(1)
time.sleep(color_dalay)
while True:
num = int(input("Enter number from 1 to 6: "))
if num == 1:
display_number(1)
l1.on()
l2.on()
l3.on()
all_on()
elif num == 2:
display_number(2)
l1.on()
l2.off()
l3.on()
pattern_alternate()
elif num == 3:
display_number(3)
l1.off()
l2.on()
l3.off()
pattern_center_out()
elif num == 4:
display_number(4)
pattern_random()
elif num == 5:
display_number(5)
l1.off()
l2.off()
l3.off()
all_off()
elif num == 6:
display_number(6)
pattern_runner()
else:
print("invalid number !!")