私はthisのようなWeb上のGPIO割り込みドキュメントをいくつか読みました。私に残る質問が1つあります。GPIO.add_event_detect(<PIN>, <GPIO.EDGE>, callback=<some callback function>, bouncetime=<int>)
をpythonスクリプトで使用する必要があります。このスクリプトを実行するために同じスクリプトでループをwhile true
にする必要があります。コールバックルーチン?Raspberry Pi3 - Python3:GPIO.add_event_detectは "while true"ループを必要としますか?
もっと明確にしましょう。私のスクリプトは次のようになります。
だから、import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(6, GPIO.OUT)
def my_interrupt_routine(channel):
#do something here
GPIO.add_event_detect(6, GPIO.FALLING, callback=my_interrupt_routine, bouncetime=200)
try:
while True:
pass
except KeyboardInterrupt:
#do something here
finally:
GPIO.cleanup()
このスクリプトを使って - それは、割り込みハンドラがPIN6に落ちるEDGを待つようにするwhile true:
ループを持っていることが必要であるか、私はハンドラを起動すると、プログラムを終了することができます? 割り込みハンドラを使用してGPIO-Pinをポーリングする利点に関する多くの記事を読んでいるので、私はこれを求めています。そして、このwhile true:
ループはピンの周りのポーリングのように私にほとんど同じように見えます。
私はJavaで開発していました。そこでは、割り込みハンドラ/リスナを定義し、世界中のどこかでイベントを処理できます。私はこれがPythonではうまくいかないと思います。