尝试创建一个计时器以在 python 中暂停循环
Trying to create a timer to pause a loop in python
我又开始摆弄定时器和运动传感器了。
我有一个 PIR 运动传感器连接到 raspberry pi。我想让运动传感器在再次检查运动之前有一分钟的冷却时间。我一直在搞乱一些线程......但我认为我不需要它并且希望保持简单。
GPIO.setmode(GPIO.BCM)
PIR_PIN = 11
GPIO.setup(PIR_PIN, GPIO.IN)
motion_cooldown = 60
start = 0
while True:
if(time.time() < start + motion_cooldown):
print("cooldown")
else:
if PIR_PIN == 1:
print("motion detected")
#do some stuff
start = time.time()
elif PIR_PIN == 0:
print("no motion")
#do some stuff
start = 0 #reset start to 0 so the loop continues
我得到的当前错误是“'builtin_function_or_method 和 int 实例之间不支持'<'”我认为这意味着我无法比较 int 和 time.time( ) 但我发誓之前做过类似的事情并且效果很好。欢迎提出任何建议!
如果您没有调用该函数,即当您执行类似 start = time.time
的操作时,很可能会发生这种情况,但您的代码并没有这样做,而且它不可重现。要暂停循环,您可以在 while
循环
的末尾使用 time.sleep(60)
我又开始摆弄定时器和运动传感器了。
我有一个 PIR 运动传感器连接到 raspberry pi。我想让运动传感器在再次检查运动之前有一分钟的冷却时间。我一直在搞乱一些线程......但我认为我不需要它并且希望保持简单。
GPIO.setmode(GPIO.BCM)
PIR_PIN = 11
GPIO.setup(PIR_PIN, GPIO.IN)
motion_cooldown = 60
start = 0
while True:
if(time.time() < start + motion_cooldown):
print("cooldown")
else:
if PIR_PIN == 1:
print("motion detected")
#do some stuff
start = time.time()
elif PIR_PIN == 0:
print("no motion")
#do some stuff
start = 0 #reset start to 0 so the loop continues
我得到的当前错误是“'builtin_function_or_method 和 int 实例之间不支持'<'”我认为这意味着我无法比较 int 和 time.time( ) 但我发誓之前做过类似的事情并且效果很好。欢迎提出任何建议!
如果您没有调用该函数,即当您执行类似 start = time.time
的操作时,很可能会发生这种情况,但您的代码并没有这样做,而且它不可重现。要暂停循环,您可以在 while
循环
time.sleep(60)