スイッチの値が切り替わったことを検知する(add_event_detect)

スイッチの切り替わりをwhileループの中で行おうとすると大変なので、イベントハンドラを設定するという例。

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回分検知されなかった」ようなことになるので回路側に工夫するほうがいいんだろうか?

参考