今作っている作品の扉開閉検知のためマグネットスイッチを使おうとしていましたら、ウッカリ「パキっ」と折ってしまいました。。。orz____最後の一個だったのですごいショック…凹
今はガラスケースではなくプラケース入のものが出ているんですね!
僕みたいなウッカリさんには超オススメですね↓
嘆いてても仕方ないので手元の部品箱から代替品を探しましたところ、マイクロスイッチとフォトインタラプタを発見しました。
単純なマイクロスイッチでも良いんだけど、どうせなら今まで使ったこと無いフォトインタラプタを使ってみよう!という勢いだけで、急遽フォトインタラプタをマグネットスイッチの代わりに使ってみることにしました。
メリットとしては検知がフォトトランジスタになることで機械的スイッチ特有のチャタリング対策が不要になりますし、うまくスリットを入れると扉の開閉速度の検知までできちゃう!はずです(たぶん)。
手元にあるものは何かのオマケについていたもので詳細が不明だったのですが、こちら「フォトインタラプタ」の「透過型」という種類になるそうです。
今回は使える電源が5Vのみで、ラズパイのGPIOへ信号を入力する必要があるのでこのように組みました。
フォトトランジスタとLEDの極性に要注意です。端子がどちらも同じ方向がGND側ではありません。
もう一つ注意すべきはラズパイのGPIOは3.3Vということです。5Vを入力してはいけません。
そのため、GPIOポートは内部でプルアップ操作を行い、通常は3.3VでHIレベルに、フォトトランジスタが反応したらGNDへ落としてLOレベルとなるようにしています。
当初予定していたマグネットスイッチとはHI/LOが逆になりますがプログラムで補正するので問題なし。
<pythonプログラムでのGPIO内部プルアップの記述例>
GPIO.setmode(GPIO.BCM)
GPIO.setup(Switch, GPIO.IN, pull_up_down=GPIO.PUD_UP)
<参考>
出来たスイッチは3Dプリンターで作ったケースに固定しました。
ケースとインタラプタの面を合わせて、我ながら上出来!
このスリットで開閉を検知します。
何に使ったかは後日公開する予定です。