2015-12-08 65 views
0

我通過python在樹莓派上探測觸摸throuth ttp223b觸摸傳感器。它工作的很不錯,但我需要等待一秒鐘後觸摸檢測,以防止多個執行,所以我只是添加了「time.sleep(1)」。Raspberry Pi通過無盡的循環輸入讀數

問題是我也得到了多個輸出,它們只是時間偏移到1秒,似乎該例程一次觸發多次。

import time 
import RPi.GPIO as GPIO 


GPIO.setmode(GPIO.BOARD) 

GPIO.setup(3, GPIO.IN) 


while 1: 

    if GPIO.input(3) == GPIO.HIGH: 
    print "touched :3" 
    time.sleep(1) 

任何建議我怎麼能解決這個問題?

回答

0

添加一個前哨

last_update = 0 
while 1: 
    if time.time() - last_update > 1.5 : #1 and a half seconds 
      if GPIO.input(3) == GPIO.HIGH: 
       print "touched :3" 

這將允許GPIO繼續沖洗所以你不要拿起舊機(至少我想我不能完全肯定GPIO緩衝區這裏是如何工作的)

+0

我我也嘗試過類似的方法,但是你的解決方案不幸運行,與以前相同的多輸出: – ManuKILLED

+0

你確定引腳不是真的高嗎? –

+1

我解決了它,問題是由i2c程序引起的。沒有被使用,但我猜想內部上拉電阻使引腳保持較長時間,我剛剛使用了另一個GPIO引腳和它工作完美,非常感謝你! – ManuKILLED