繁体   English   中英

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

[英]Trying to create a timer to pause a loop in python

在这里,我 go 再次弄乱计时器和运动传感器。

我有一个 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() 但我发誓之前做过类似的事情并且它有效美好的。 欢迎任何建议!

如果您没有调用 function,则可能会发生这种情况,也就是说,当您执行类似start = time.time的操作时,但您的代码不会那样做,而且它不可重现。 要暂停循环,您可以在while循环结束时使用time.sleep(60)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM