かべぎわブログ

技術的なことについてかけたらいいな…

RaspberryPiとタクトスイッチでトグル動作を実現してみる

今回はRaspberryPiとタクトスイッチをつかってトグル動作を実現してみようと思います。

そもそもトグル動作とは?

トグルとは、同じ操作によって二つの状態を交互に切り替えられるような仕組みのこと。操作画面上でそのような振る舞いをする要素を「トグルボタン」(toggle button)「トグルスイッチ」(toggle switch)などと呼ぶ。トグルボタンは、オンの状態でクリックするとオフに、オフの状態でクリックするとオンになるようなボタンで、メディアプレーヤーの再生と一時停止を切り替えるボタンなどによく使われる。

トグルとは - IT用語辞典

とのこと。
今回はタクトスイッチを一度押したらLEDが点灯し、もう一度おしたら消灯するようなものを作ってみようと思います。

配線図

f:id:kabegiwakun:20170821231646p:plain 前回のものから10kΩの抵抗を除いただけのものです。

kabegiwa.hatenadiary.jp

コード

RaspberryPi

Pythonです。
ポイントとしては26行目のGPIO.add_event_detectです。
これはGPIO14のタクトスイッチが押されたとき、my_callback関数を呼んでLEDの接続されているGPIO15の状態を切り替えるという処理になります。

また、bouncetime=300の箇所はタクトスイッチが押されてから300ミリ秒は処理を受け付けない。という意味です。
なぜこのような設定をしているかというと、タクトスイッチを押してすぐは信号が安定しておらず、LEDのON/OFFが想定通りにいかない可能性があるからです。

実際に動かしてみたところ


かべぎわブログ RaspberryPiとタクトスイッチでトグル動作を実現してみる