2017年1月22日スイッチでLEDをコントロールする(RaspberryPi3)RaspberryPiラズベリーパイ3でLチカができましたら、次はスイッチでLEDのON/OFFを切り替えてみましょう。前回のLチカ準備スイッチでLEDをON/OFFタクトスイッチからの入力スイッチとLEDを別回路にする前回のLチカ前回は、Lチカする前に準備する物を紹介しました。シェルスクリプトを利用したLチカを実行しました。8.0今回の目的タクトスイッチをONにしたらLEDが光って、OFFにしたらLEDが消えるような回路を作成します。スイッチが押されたか押されていないかGPIOでチェックしてみます。30円タクトスイッチ押すと電流が流れます。足が4本あり、中でつながっています。ボタンを押すと、隣同士の足がつながり電流が流れるようになります。スイッチでLEDをON/OFFタクトスイッチのON/OFFでLEDの光をコントロールする回路を作成します。スイッチをONにするとLEDが光り、OFFにすると消えます。回路図1ラズパイの電源を入れて起動します。2以下のように回路を作成します。(カソード)F24回路図は、Fritzingと呼ばれるソフトを使用して作成しております。→Fritzingで回路図を作ろうタクトスイッチを押すと、LEDが光りました。スイッチから指を離すと消えます。タクトスイッチからの入力3.3Vの端子はそのままです。タクトスイッチと抵抗の間にGPIOの18番端子を接続します。タクトスイッチがOFFのときGPIOがLOWになり、ONのときHIGHになります(プルダウン回路)。1以下のように回路を作成します。2端末を開き、python3を起動します。python33以下の内容を入力します。タクトスイッチを離した状態でEnterを押します。GPIOGPIO.setmode(GPIO.BCM)GPIO.setup(18,GPIO.IN)GPIO.input(18)結果が「0」と表示されます。4今度はタクトスイッチを押しながら以下のコードを入力してEnterを押します。GPIO.input(18)結果が「1」であれば、スイッチの読み取り成功です。5いちいちコマンド入力確かめるのは大変ですので、プログラムファイルを作成します。ホームディレクトリへ移動します。/home/pi/6nanoコマンドで、以下のように「inputtest.py」を作成します。time.sleep(1)7以下のコマンドで実行します。inputtest.pyスイッチとLEDを別回路にするスイッチとLEDを別回路にします。タクトスイッチのON/OFFをプログラムで判定して、別のGPIOに接続したLEDのON/OFFを操作します。1以下のように回路を作成します。タクトスイッチがONかOFFか18番ピンでチェックします。18番ピンがONであれば16番ピンをONにしてLEDを光らせます。逆にOFFの時はLEDが光りません。18番ピンも直列にGNDにつながっているのがポイントです。【ブレッドボードの回路】330Ω抵抗:LEDの抵抗680Ω抵抗:タクトスイッチの抵抗2nanoコマンドで、以下のように「switch_led.py」を作成します。GPIO.OUT)は、16番ピンを出力モードにします。LEDのON/OFFをコントロールします。GPIO.IN)は、18番ピンを入力モードにします。タクトスイッチのON/OFFをチェックします。3以下のコマンドで実行します。switch_led.py4タクトスイッチをONにするとLEDがひかり、OFFにすると消えます。