import machine, utime
s1V = machine.Pin(2, machine.Pin.OUT)
s1A = machine.Pin(1, machine.Pin.OUT)
s1R = machine.Pin(0, machine.Pin.OUT)
s2V = machine.Pin(5, machine.Pin.OUT)
s2A = machine.Pin(4, machine.Pin.OUT)
s2R = machine.Pin(3, machine.Pin.OUT)
s3V = machine.Pin(26, machine.Pin.OUT)
s3A = machine.Pin(27, machine.Pin.OUT)
s3R = machine.Pin(28, machine.Pin.OUT)
s4V = machine.Pin(20, machine.Pin.OUT)
s4A = machine.Pin(21, machine.Pin.OUT)
s4R = machine.Pin(22, machine.Pin.OUT)
#Semaforo 4 vías
def verde (v_on,v1_off, v2_off, v3_off):
v_on.value(1) #Verde
v1_off.value(0)
v2_off.value(0)
v3_off.value(0)
s1A.value(0)
s2A.value(0)
s3A.value(0)
s4A.value(0)
def rojo (r_off,r1_on, r2_on, r3_on):
r_off.value(0) #rojo
r1_on.value(1)
r2_on.value(1)
r3_on.value(1)
def parpadeo (v_on):
v_on.value(0) #Verde parpadea
utime.sleep_ms(500)
v_on.value(1) #Verde parpadea
utime.sleep_ms(500)
v_on.value(0) #Verde parpadea
utime.sleep_ms(500)
v_on.value(1) #Verde parpadea
utime.sleep_ms(500)
def amarillo(a_on):
a_on.value(1)
s1V.value(0)
s2V.value(0)
s3V.value(0)
s4V.value(0)
while True:
verde(s1V,s2V,s3V,s4V)
rojo(s1R,s2R,s3R, s4R)
utime.sleep(3)
parpadeo(s1V)
amarillo(s1A)
utime.sleep(2)
#---------------------
verde(s2V,s1V,s3V,s4V)
rojo(s2R,s1R,s3R, s4R)
utime.sleep(3)
parpadeo(s2V)
amarillo(s2A)
utime.sleep(2)
#---------------------
verde(s3V,s1V,s2V,s4V)
rojo(s3R,s1R,s2R, s4R)
utime.sleep(3)
parpadeo(s3V)
amarillo(s3A)
utime.sleep(2)
#---------------------
verde(s4V,s1V,s2V,s3V)
rojo(s4R,s1R,s2R, s3R)
utime.sleep(3)
parpadeo(s4V)
amarillo(s4A)
utime.sleep(2)