有没有办法在不使用无限循环的情况下检测以检测覆盆子pi GPIO中的变化?
您可以使用以下方法检测上升或下降:
GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback)
但是您只能将事件检测器设置为一次下降或上升。如果没有在无限循环中检查输入,有没有办法做到这一点?
答案 0 :(得分:4)
您可以在event_detect
上使用线程回调。根据{{3}},你可以使用这样的东西。
GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback)
如果事件可能是GPIO.RISING
,GPIO.FALLING
或GPIO.BOTH
,my_callback
是一个普通的python函数,其行为类似于在不同线程中运行的ISR。
希望它有所帮助。
答案 1 :(得分:1)
此链接可能会有所帮助raspberry-gpio-python 基本上只是使用回调来做任何你想要的上升或下降而不是轮询(你所描述的)
答案 2 :(得分:0)
如果你得到一个简单的MCP3004或MCP3008 IC,它是一个模数转换器,你可以用输入做更多的事情。这里有一些示例代码可以帮助您入门。 More info on ADC's here以及如何将它们连接到您的pi
Vector2
取决于ADC的分辨率,您必须进行一些计算才能读取电压值