如何检测GPIO输入树莓派的变化

时间:2015-07-05 09:09:28

标签: python raspberry-pi gpio

有没有办法在不使用无限循环的情况下检测以检测覆盆子pi GPIO中的变化?

您可以使用以下方法检测上升或下降:

GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback)

但是您只能将事件检测器设置为一次下降或上升。如果没有在无限循环中检查输入,有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

您可以在event_detect上使用线程回调。根据{{​​3}},你可以使用这样的东西。

GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback)

如果事件可能是GPIO.RISINGGPIO.FALLINGGPIO.BOTHmy_callback是一个普通的python函数,其行为类似于在不同线程中运行的ISR。

希望它有所帮助。

答案 1 :(得分:1)

此链接可能会有所帮助raspberry-gpio-python 基本上只是使用回调来做任何你想要的上升或下降而不是轮询(你所描述的)

答案 2 :(得分:0)

如果你得到一个简单的MCP3004或MCP3008 IC,它是一个模数转换器,你可以用输入做更多的事情。这里有一些示例代码可以帮助您入门。 More info on ADC's here以及如何将它们连接到您的pi

Vector2

取决于ADC的分辨率,您必须进行一些计算才能读取电压值