试图在python中创建一个暂停循环的计时器



我又开始摆弄计时器和运动传感器了。

我有一个PIR运动传感器连接到树莓派。我想让运动传感器冷却一分钟,然后再检查运动。我一直在忙着穿一些。。。但我认为我不需要这个,我想保持简单。

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)

最新更新