Raspberry Pi输入阅读无尽的循环

时间:2015-12-08 20:22:16

标签: python raspberry-pi gpio

我通过覆盆子pi上的python检测到ttp223b触摸传感器的触摸。它工作得很好,但我需要等待一秒钟后触摸检测,以防止多次执行,所以我只是添加了“time.sleep(1)”。

问题是我也得到多个输出,它们只是时间偏移到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)

我有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

添加一个sentinal

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如何在这里缓冲工作)