import time
from machine import Pin
currentTime = time.ticks_ms()
button = Pin(0, Pin.IN, Pin.PULL_DOWN)
redN = Pin(13, Pin.OUT)
greenN = Pin(14, Pin.OUT)
yellowN = Pin(15, Pin.OUT)
redS = Pin(12, Pin.OUT)
greenS = Pin(11, Pin.OUT)
yellowS = Pin(10, Pin.OUT)
redE = Pin(18, Pin.OUT)
greenE = Pin(19, Pin.OUT)
yellowE = Pin(20, Pin.OUT)
redW = Pin(21, Pin.OUT)
greenW = Pin(22, Pin.OUT)
yellowW = Pin(26, Pin.OUT)
switch = Pin(17, Pin.IN, Pin.PULL_DOWN)
def greenNorthSouth():
greenN.value(1)
greenS.value(1)
redN.value(0)
redS.value(0)
yellowN.value(0)
redE.value(1)
redW.value(1)
def yellowNorthSouth():
yellowN.value(1)
yellowS.value(1)
greenN.value(0)
greenS.value(0)
redN.value(0)
redE.value(1)
redW.value(1)
def redNorthSouth():
redN.value(1)
redS.value(1)
greenN.value(0)
greenE.value(0)
yellowN.value(0)
yellowS.value(0)
redE.value(1)
redW.value(1)
def greenEastWest():
greenE.value(1)
greenW.value(1)
redE.value(0)
redW.value(0)
redN.value(1)
redS.value(1)
def yellowEastWest():
yellowE.value(1)
yellowW.value(1)
greenE.value(0)
greenW.value(0)
redE.value(0)
redW.value(0)
redN.value(1)
redS.value(1)
def redEastWest():
redE.value(1)
redW.value(1)
greenE.value(0)
greenN.value(0)
yellowE.value(0)
yellowW.value(0)
redN.value(1)
redS.value(1)
def emergencyLights():
redN.value(1)
redE.value(1)
while True:
if switch.value() == 0:
elapsedtime = time.ticks_diff(time.ticks_ms(), currentTime)
if elapsedtime < 2000: # pass = nop()
greenNorthSouth()
elif elapsedtime > 4000 and elapsedtime < 6000: # pass = nop()
yellowNorthSouth()
elif elapsedtime > 6000 and elapsedtime < 8000: # pass = nop()
redNorthSouth()
elif elapsedtime > 8000 and elapsedtime < 10000: # pass = nop()
greenEastWest()
elif elapsedtime > 10000 and elapsedtime < 12000: # pass = nop()
yellowEastWest()
elif elapsedtime > 12000 and elapsedtime < 14000: # pass = nop()
redEastWest()
elif elapsedtime > 14000:
currentTime = time.ticks_ms()
else:
if switch.value()== 1:
greenW.value(0)
greenE.value(0)
greenN.value(0)
greenS.value(0)
yellowE.value(0)
yellowW.value(0)
yellowN.value(0)
yellowS.value(0)
if time.ticks_diff(time.ticks_ms(), currentTime) >= 500:
redN.value(not redN.value())
redS.value(not redS.value())
redW.value(redN.value())
redE.value(redN.value())
currentTime = time.ticks_ms()