from machine import Timer,Pin
import machine
import time
auto=True
timer=Timer(0)
led_pins = [Pin(14, Pin.OUT), Pin(13, Pin.OUT), Pin(12, Pin.OUT)]
button_pins = [Pin(4, Pin.IN, Pin.PULL_DOWN), Pin(5, Pin.IN, Pin.PULL_DOWN), Pin(2, Pin.IN, Pin.PULL_DOWN), Pin(15, Pin.IN, Pin.PULL_DOWN)]
def button_state(pin):
debounce_time=50
start_time=time.ticks_ms()
while True:
if pin.value()==1:
while time.ticks_ms()-start_time<debounce_time:
pass
return True
elif time.ticks_ms()-start_time>debounce_time:
return False
def set_led(r, g, b):
led_pins[0].value(r)
led_pins[1].value(g)
led_pins[2].value(b)
def y(timer):
set_led(255,255,0)
timer.init(period=2000, mode=Timer.PERIODIC, callback=r)
def r(timer):
set_led(255,0,0)
timer.init(period=5000, mode=Timer.PERIODIC, callback=g)
def g(timer):
set_led(0,255,0)
timer.init(period=9000, mode=Timer.PERIODIC, callback=y)
def cy(timer):
timer.deinit()
set_led(255,255,0)
def cr(timer):
timer.deinit()
set_led(255,0,0)
def cg(timer):
timer.deinit()
set_led(0,255,0)
g(timer)
while True:
if button_pins[2].value() and auto==False:
cy(timer)
if button_pins[1].value() and auto==False:
cg(timer)
if button_pins[0].value() and auto==False:
cr(timer)
if button_state(button_pins[3]) and auto==True:
auto=False
timer.deinit()
elif button_state(button_pins[3]) and auto==False:
auto=True
y(timer)