ラズパイでスイッチを使おう(1)
こんばんは。國松です。
今回はラズパイでタクトスイッチを制御してLEDを操作したいと思います。
用意するもの
・Raspberry Pi 3 Model B+
・ブレッドボード
・330Ωの抵抗×2
・LED×1
・タクトスイッチ×1
・ジャンパワイヤ×5
タクトスイッチ(タクタイルスイッチとも)とは
タクトスイッチとは「感触あるスイッチ」という意味で、人が操作部を押し込むことで電気回路を通電させるものです。スイッチを押すとカチッとクリック感があります。
スイッチについては以下のサイトを参考にしました。
参考サイト
・日経XTECH(スイッチの基礎を学ぶ 第3回 タクタイルスイッチの基礎)
タクトスイッチの内部構造と仕組み
今回は4本足のものを使いますが2本足ものもあります。4本足のうち縦列2本は内部的につながっています。
スイッチを押すと離れていた足が繋がって電気が流れます。
4本ある足の縦列が内部的につながっているといわれてもどっちが縦やら横やらはじめはよくわかりませんでした。実はいまでも迷ってしまいます。
どっちが内部的につながっているのかわからない場合はテスターを使って導通チェックを行うと確実です。
導通チェックの方法
テスターを導通チェックモードにして、赤と黒のリード棒を接触させてブザー音が鳴る事を確認する。
タクトスイッチの2本の足に赤と黒のリード棒を接触させてブザー音が鳴ったその2本は内部的につながっています。
スイッチが小さいのでうまくリード棒が当てられない時はスイッチをブレッドボードに指して確認するといいです。
参考サイト marutsu
(ラズパイとの接続)
無限ループによるスイッチ検出
スイッチを押している間はLEDが点灯します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #ライブラリーのインポート import RPi.GPIO as GPIO import time #ポート番号の定義 LED = 21 SWITCH = 18 #GPIOの初期化 GPIO.setmode(GPIO.BCM) GPIO.setup(LED, GPIO.OUT) GPIO.setup(SWITCH, GPIO.IN) #LEDを消灯 GPIO.output(LED,GPIO.LOW) #無限ループでスイッチの状態を確認 スイッチが押されている間LED点灯 try: while True: if(GPIO.input(SWITCH) == GPIO.HIGH): GPIO.output(LED,GPIO.HIGH) else: GPIO.output(LED, GPIO.LOW) time.sleep(0.1) except KeyboardInterrupt: GPIO.cleanup() |
無事にスイッチを押すをLEDを点灯させることができました。LEDを点灯させるためにスイッチを押し続けるのは疲れるので次回はスイッチでLEDのON/OFFをしていきたいと思います。