问题描述
在这里,我又把定时器和运动传感器弄得一团糟。
我有一个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
我得到的当前错误是“'
解决方法
如果您没有调用该函数,即当您执行类似start = time.time
的操作时很可能会发生这种情况,但是您的代码却没有这样做,并且该代码不可再现。要暂停循环,您可以在time.sleep(60)
循环结束时使用while