Raspberry pi Raspberry Pi/GPIO.RISING在上触发回调。两个
我有一个树莓皮通过NOOBS运行树莓皮。我有一个连接到引脚1和引脚11的按钮。我正在尝试使用GPIO.add\u event\u detect和RPIO.RISING在按下按钮时调用函数。(回调将点亮led 2秒钟,然后将其关闭。) 我发现RPIO.RISING函数在按钮按下(引脚11从0变为1)和按钮释放(引脚11从1变为0)时调用回调。这盏灯被打开了两次,就像我使用RPIO时一样 我不认为这是一个滞后/噪声信号问题,因为我可以按下按钮几秒钟,然后放开,看到回调再次调用 下面是示例代码:Raspberry pi Raspberry Pi/GPIO.RISING在上触发回调。两个,raspberry-pi,raspbian,gpio,Raspberry Pi,Raspbian,Gpio,我有一个树莓皮通过NOOBS运行树莓皮。我有一个连接到引脚1和引脚11的按钮。我正在尝试使用GPIO.add\u event\u detect和RPIO.RISING在按下按钮时调用函数。(回调将点亮led 2秒钟,然后将其关闭。) 我发现RPIO.RISING函数在按钮按下(引脚11从0变为1)和按钮释放(引脚11从1变为0)时调用回调。这盏灯被打开了两次,就像我使用RPIO时一样 我不认为这是一个滞后/噪声信号问题,因为我可以按下按钮几秒钟,然后放开,看到回调再次调用 下面是示例代码: im
import RPi.GPIO as GPIO ## Import GPIO library
import time
#configure all of the inputs / outputs properly
def config():
#initalize the GPIO pin numbering
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
#setup output pins
GPIO.setup(8, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.setup(10,GPIO.OUT)
GPIO.setup(12,GPIO.OUT)
#initialize the inputs for the button
GPIO.setup(11, GPIO.IN)
#create the button-watching function
GPIO.add_event_detect(11, GPIO.RISING, callback=execute_lights, bouncetime=800)
#the light-turning-on function. One press turns yellow. Second press turns green, then off.
def execute_lights(channel):
print "executing lights: "
#Turn on the light we want
GPIO.output(8,True)
#turn green off after 2 seconds
time.sleep(2)
GPIO.output(8,False)
是否有一个软件解决方案可以用来解决这个问题?无论出于何种原因,bounctime的实现都非常奇怪。 如果您在设置的800毫秒反弹时间内按住并松开按钮,它应该可以正常工作。如果你按住它更长的时间,那么你会在释放时触发,有时。我也有同样的问题,认为“反弹时间”是“系统”忽略所有其他输入的时间…比如开关的“稳定”时间。不是。所以只要你在你设定的弹跳时间内按下并释放你的按钮,你就会发现它工作正常
尼克无论出于什么原因,bounctime的实现都非常奇怪。 如果您在设置的800毫秒反弹时间内按住并松开按钮,它应该可以正常工作。如果你按住它更长的时间,那么你会在释放时触发,有时。我也有同样的问题,认为“反弹时间”是“系统”忽略所有其他输入的时间…比如开关的“稳定”时间。不是。所以只要你在你设定的弹跳时间内按下并释放你的按钮,你就会发现它工作正常 尼克