我在main函数中有一个爆震传感器,在next函数中运行它,在next函数中我使用irq().but而不是secend函数中的irq。如何修复它?或者使用其他方式??
我希望设备处于待机模式,并通过敲门运行enter_password()函数。敲门一次,enter_password()启动.after结束进入待机模式,等待新的敲门再次运行enter_password()。
一次敲门必须运行enter_password(),并通过5次循环.every 1或2或...or 9敲门从用户那里获得密码。
例如:1敲门>>运行应用程序>>运行enter_password()
for I range 4 >> 5循环
loop 1 >>1knock >>my pass >> 1
loop 2 >> 7 7knock >>my pass >> 17
loop3 >> 4Knoke >>my pass >> 174
loop 4 >> 0 0knock >>my pass >> 1740
loop 5 >> 2Knoke >>my pass >> 17402
my pass >> 17402
if ok >>通过我的数据库中的另一个函数打开door #serach并返回ok or not,否则>> nothing
然后转到待机状态,等待1次敲门来运行应用程序,然后一遍又一遍。
我在nodemcu上使用micropython。tnx帮助我
num_knock = 0
def main():
.
.
.
while True:
P5 = Pin(5, Pin.IN)
P5.irq(trigger=Pin.IRQ_RISING , handler=enter_password() ) //ONE IRQ
def enter_password(P):
print("enter password starting")
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
global num_knock
num_knock = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback ) #TWO IRQ - BUT NOT WORK - not call callback
door_password += str(num_knock )
return
def callback(p):
global num_knock
if num_knock < 9 :
num_knock += 1
led_num_knock = Pin(4, Pin.OUT)
led_num_knock.on()
utime.sleep_ms(200)
led_num_knock.off()
return发布于 2019-07-12 21:32:43
def main():
starter = Pin(5, Pin.IN)
webserver()
while True:
if starter.value()==1: #use while anf if for one IRQ
print("enter password fun")
led_on_off(3,600)
p5 = Pin(5, Pin.IN)
door_password=""
for i in range(5):
print("range %i" %i)
global num_kenok
num_kenok = 0
chk_time = utime.time() + 12
while utime.time() <= chk_time:
p5.irq(trigger=Pin.IRQ_RISING , handler=callback )
door_password += str(num_kenok)
led_on_off(1,500)
led_on_off(5,300)
find_password(door_password)https://stackoverflow.com/questions/56431549
复制相似问题