簡體   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