# imports
from machine import Pin, Timer
from time import sleep
# functions
def T_callback(t) :
global active
active = True
def ToggleLock(pin) :
global active, LockStatus
if (active == True):
active = False
if LockStatus:
Unlock()
else:
Lock()
Timer(period=1000, mode=Timer.ONE_SHOT, callback=T_callback)
def Lock():
global LockStatus
LockStatus = True
def Unlock():
global LockStatus
LockStatus = False
# inputs
pin_rfid = Pin(0, mode=Pin.IN, pull=Pin.PULL_DOWN)
pin_rfid.irq(trigger=Pin.IRQ_RISING, handler=ToggleLock)
# outputs
pin_r = Pin(2, mode=Pin.OUT)
pin_g = Pin(3, mode=Pin.OUT)
# variables
LockStatus = False
active = True
# loop
while True:
pin_r.value(LockStatus)
pin_g.value(not LockStatus)