スイッチの値が切り替わったことを検知する(add_event_detect)
スイッチの切り替わりをwhileループの中で行おうとすると大変なので、イベントハンドラを設定するという例。
僕がよなよなエール好きである事をスイッチで1文字ずつ伝える装置できた pic.twitter.com/PUmJjRHfFT
— もやしパン🌾🍞 (@Moyashipan) 2017年1月9日
Pythonのコードから一部を抜粋。
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) SWITCH_IO = 26 GPIO.setup(SWITCH_IO, GPIO.IN) def switch_on(channel): print('OFFからONになりました') GPIO.add_event_detect(SWITCH_IO, GPIO.FALLING, switch_on, 100)
今回の回路は、押していない時にHIGH、押している時にLOWとなる回路なので、GPIO.FALLING
を指定してLOWになった時に検知しています。
100と指定してある値は、ソフトウェアでチャタリングを除去するためですが「10回押したはずなのに10回分検知されなかった」ようなことになるので回路側に工夫するほうがいいんだろうか?