from machine import Pin
import time
import rp2
from rp2 import PIO
import utime
nsg = Pin(20, Pin.OUT)
nso = Pin(22, Pin.OUT)
nsr = Pin(21, Pin.OUT)
weg = Pin(27, Pin.OUT)
weo = Pin(28, Pin.OUT)
wer = Pin(26, Pin.OUT)
sample = Pin(10, Pin.OUT)
a = Pin(1,Pin.OUT)
b = Pin(2,Pin.OUT)
c= Pin(3,Pin.OUT)
# 7 segment
segments = [
machine.Pin(1, machine.Pin.OUT),
machine.Pin(2, machine.Pin.OUT),
machine.Pin(3, machine.Pin.OUT),
machine.Pin(4, machine.Pin.OUT),
machine.Pin(5, machine.Pin.OUT),
machine.Pin(6, machine.Pin.OUT),
machine.Pin(7, machine.Pin.OUT)
]
# pin states for each digit to display numbers 0-9
number_map = [
[0, 0, 0, 1, 1, 1, 1], # 7
[0, 1, 0, 0, 0, 0, 0], # 6
[0, 1, 0, 0, 1, 0, 0], # 5
[1, 0, 0, 1, 1, 0, 0], # 4
[0, 0, 0, 0, 1, 1, 0], # 3
[0, 0, 1, 0, 0, 1, 0], # 2
[1, 0, 0, 1, 1, 1, 1], # 1
]
#function to display a specific number on the 7-segment display
def display_number(number):
segments_values = number_map[number]
for i in range(len(segments)):
segments[i].value(segments_values[i])
def timer(number):
for number in range(number):
display_number(number)
utime.sleep_ms(1000)
def offlights():
nsg.off()
nso.off()
nsr.off()
weg.off()
weo.off()
wer.off()
def s0():
weg.on()
wer.off()
weo.off()
nsg.off()
nso.off()
nsr.on()
def s1():
weg.off()
wer.off()
weo.on()
nsg.off()
nso.off()
nsr.on()
def s2():
weg.off()
wer.on()
weo.off()
nsg.off()
nso.off()
nsr.on()
def s3():
weg.off()
wer.on()
weo.off()
nsg.on()
nso.off()
nsr.off()
def s4():
weg.off()
wer.on()
weo.off()
nsg.off()
nso.on()
nsr.off()
def s5():
weg.off()
wer.on()
weo.off()
nsg.off()
nso.off()
nsr.on()
while True:
s0()
timer(7)
s1()
display_number(5)
time.sleep(1)
display_number(6)
time.sleep(1)
s2()
sample.on()
display_number(5)
time.sleep(1)
display_number(6)
time.sleep(1)
sample.off()
s3()
timer(7)
s4()
display_number(5)
time.sleep(1)
display_number(6)
time.sleep(1)
s5()
sample.on()
display_number(5)
time.sleep(1)
display_number(6)
time.sleep(1)
sample.off()