from machine import Pin, ADC # type:ignore
from utime import sleep # type:ignore
print("Service running!")
trig = Pin(2, Pin.IN, Pin.PULL_UP)
led = Pin(15, Pin.OUT)
led.value(0)
outred = Pin(25, Pin.OUT)
outgreen = Pin(26, Pin.OUT)
outblue = Pin(27, Pin.OUT)
HPIN = ADC(Pin(34))
VPIN = ADC(Pin(35))
ZSWITCH = Pin(32, Pin.IN, Pin.PULL_UP)
modes = ["single", "binary", "full", "setting"]
mode = 0
led.off()
state, new_state = False, False
def fire(mode):
global state
if mode == 0: # single
if trig.value() == 0 and not state:
led.on()
sleep(0.3)
led.off()
state = True
elif trig.value() == 1:
state = False
elif mode == 1:
global new_state
if new_state != trig.value():
led.on()
sleep(0.3)
led.off()
new_state = trig.value()
elif mode == 2:
if trig.value() == 0:
led.on()
sleep(0.3)
led.off()
def switch_mode(x, y):
global mode
if y == 0 and x == 32776:
mode = 0
if x == 0 and y == 32776:
mode = 1
if x == 65535 and y == 32776:
mode = 2
if y == 65535 and x == 32776:
mode = 3
while 1:
x = HPIN.read_u16()
y = VPIN.read_u16()
if x != 32776 or y != 32776:
switch_mode(x, y)
if mode == 0:
outred.value(0)
outgreen.value(1)
outblue.value(0)
elif mode == 1:
outred.value(0)
outgreen.value(0)
outblue.value(1)
elif mode == 2:
outred.value(1)
outgreen.value(0)
outblue.value(0)
elif mode == 3:
outred.value(1)
outgreen.value(1)
outblue.value(0)
fire(mode)
sleep(0.2)
Green = Single = Down
Red = Full = Left
Blue = Binary = Right