スライド式のスイッチを使う
スライド式のスイッチには、指でスライドできるツマミがついています。そして、その反対側に3本のピンがついています。たいていこんな形状をしています。
この写真では、黒いツマミが右にスライドしてある状態です。これを左にスライドしたり、また右に戻したりできます。
この部品を使うと、「ツマミの位置」に応じて、プログラムで実行することを変えることができます。例えば、右にスライドしてあったら何もせず、左にスライドされたら写真を1分に1回撮り始めるなど。あるいは、右にスライドしてある時には赤いLEDを点灯させ、左にスライドしてある時には青いLEDを点灯させるなど。
スライド式のスイッチ部品は、英語ではそのまま「slide switch」と呼ばれています。購入するときにこれをキーワードにして検索するとたくさん見つかるはずです。最もベーシックなものはこれです。
接続
この部品には3本のピンがあり、ツマミの位置によって、そのうちの2つがつながります(結線される)。ツマミを右にスライドすると、真ん中のピンと右側のピンがつながります(以下の図を参照)。
また、ツマミを左にスライドすると、真ん中のピンと左側のピンがつながります(以下の図を参照)。
電気回路を作るときには、左右どちらかのピンから電気をスイッチへ流し入れ、真ん中のピンから電気を出すようにします。そして、真ん中のピンから電気が流れているかどうかで、ツマミの位置を判断します。
例えば、左のピンに電気を入れて、真ん中のピンから電気を出すとします。このとき、ツマミの位置は以下のように判断します。
- 真ん中のピンに電気が流れていないなら、ツマミは右側にスライドしてある。
- 真ん中のピンに電気が流れていれば、ツマミは左側にスライドしてある。
なお、このスイッチ部品には、電気的な「向き」はありません。左のピンから電気を流し入れても、右のピンから電気を流し入れても構いません。
プログラミング
以下では、例として次のように接続してください。GPIO 26からスイッチの左のピンへ電気を流し、真ん中のピンからGNDへ電気を流します。
スライド・スイッチのピン | ラズパイ側の接続先 |
---|---|
左 | GPIO 26 |
中央 | GND(グラウンド) |
右 | 接続しない |
この接続方法の場合、スイッチのツマミが左側にあるときに電流がGPIO 26からGNDへ流れます。ツマミが右側にあるとき電流は流れません。
スイッチのツマミが左右どちらにスライドしてあるかを判定するプログラムがslide-switch.pyです。このプログラムは、スイッチの左のピンから電流が入って真ん中のピンから出てくる部分を「ボタン」だとみなしています。つまり、スイッチに電流が流れていることを、プログラム的には「ボタンが押されている」のと同じことと見なしています。ボタンが押されているか、押されていないかを判定するプログラミングについては「4本足、2本足のスイッチ・ボタンを使う」を参照してください。
slide-switch.pyでは、以下のようにツマミの位置判定をしています。
if button.is_pressed == True:
print("Left")
else:
print("Right")
button.is_pressed == True
とは、ボタンが押されていること、つまりツマミが左側にあることを意味します。逆に、button.is_pressed == False
とは、ボタンが押されていないこと、つまりツマミが右側にあることを意味します。ツマミが左側にあるときには「Left」という文字がShellに出力され、右側にある時には「Right」という文字がShellに出力されます。
文字をShellに出力する以外のことをしたい場合は、関数print()を呼んでいる部分を別のものに置き換えてください。例えば、
- ツマミが右にスライドしてあったら定期的に写真撮影をし、左にスライドされたら動画撮影する
- ツマミが右にスライドしてあったら何もせず、左にスライドされたらスピーカーから音を出す
といったことができるようになります。
このプログラムは、ツマミの位置判定をずっと繰り返し調べ続けます(無限ループを使って)。プログラムの実行を止めるにはCtrl-Cしてください。