用于上升边缘的Python计数器

时间:2018-01-10 15:31:31

标签: python raspberry-pi raspberry-pi3 raspbian

亲爱的Stackoverflow社区!

我目前正在使用Raspberry Pi进行第一个项目。任务是实现TY-010光电中断传感器。我想做的是: 我想计算给定时间内的中断(即2秒)。所以类似的东西(不是C,在Python中): d计算有多少次中断。

int i = 0
while(time != 3){
if(outputFunction == True)
i += 1;
}

您可以在下面找到整个代码:

import RPi.GPIO as GPIO
import time

GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

print "Sensor-Test [Press STRG+C, to exit the Test]"

def outputFunction(null):
        print("Signal detected")

GPIO.add_event_detect(GPIO_PIN, GPIO.RISING, callback=ausgabeFunktion, bouncetime=100) 

try:
        while True:
                time.sleep(1)


except KeyboardInterrupt:
        GPIO.cleanup()

我感谢任何帮助或建议!

1 个答案:

答案 0 :(得分:0)

你有错误定义的ouputFunction,如果你想要一个没有参数的函数,只需将它留空,如下所示:

def outputFunction(): 
       print("Signal detected") 

你可以添加一个语句来验证是否已经过了x秒,如果你做time.sleep()你停止你的代码,如果你按下按钮它就不会工作,所以这样做:< / p>

try:
    t_to_wait = 2 #Set to 2 secs
    t1 = time.time() #Get the start time
    while True:
        if GPIO.input(GPIO_PIN) == 1:
            outputFunction()
        if t1-time.time() > t_to_wait:
            break #Exit the loop if have passed t_to_wait seconds
except KeyboardInterrupt:
    GPIO.cleanup()

我也建议您read some examples,因为您似乎不太了解python以及使用GPIO模块