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)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT