今回は、プッシュスイッチを使用して、LEDをオン/オフする方法を紹介します。イッチを押すとLEDが点灯し、もう1つのスイッチを押すとLEDが消灯します。
目次
使用する部品一覧
使用する部品は図のとおりです。これらの部品は、すべて「ELEGOO Arduino用のMega2560スタータキット」に含まれています。Arduinoは、もちろんunoやnanoでも問題ありません。
- Arduino MEGA2560 R3 …1個
- 830穴 ブレッドボード …1個
- 5mm red LED …1個
- 220 ohm 抵抗 …1個
- プッシュスイッチ …2個
- ジャンパワイヤ(オス-オス) …7個
LEDの特徴や取り扱い方法
LEDは電気を流すと光る部品で、あらゆる電気製品で使われています。
蛍光灯よりも高寿命なため、照明器具にも使用されています。
抵抗には極性がありませんが、LEDには極性があります。足が長いほうが+端子で、短いほうがマイナス端子です。もし、逆に接続した場合は電気がほとんど流れないため光りませんので、注意してください。
LEDは電流を多く流すほど、明るく光りますが、流しすぎると壊れてしまいます。電流が流れすぎないように、直列抵抗を入れる必要があります。
プッシュスイッチの特徴や取り扱い方法
今回使用するプッシュスイッチには、4つの端子がありますが、2端子が1組になっており、その間にスイッチがあります。
スイッチがオフのときは、電気的にHIGHでもLOWでもない状態となります。一般的に、オープンや不定と言われる状態です。この状態でArduinoの通常の入力端子に入力すると、動作が不安定になります。そのため、スイッチオフ状態をHIGHもしくはLOWで安定させる必要があります。具体的な方法はプログラムの項目で説明します。
回路図
LEDは抵抗と直列で、5番のデジタルピンに接続し、もう片方をGNDに接続します。
プッシュスイッチS1は、9番のデジタルピンに接続し、もう片方をGNDに接続します。
プッシュスイッチS2は、8番のデジタルピンに接続し、もう片方をGNDに接続します。
配線図
ブレッドボードを使用した配線は図のとおりになります。
組立完成写真
実際に組み立てた写真です。同じようにできましたか?
プログラム
プログラムでは、最初にピン番号の設定が必要です。
先程接続したピンと同じピン番号を設定してください。
LEDピンは5番、プッシュスイッチは8番と9番です。
次に、ピンの入出力設定をします。これはsetup()内で行います。
LEDピンは出力なので、pinModeで”OUTPUTに設定します。
プッシュスイッチは入力なので、pinModeでINPUTに設定したいところですが、 冒頭に説明したように、プッシュスイッチはオフ状態の時は値が不定になります。 そのため、不定状態のときにHIGHに固定させるために”INPUT_PULLUP”を設定します。
最後は、メインループ内でスイッチによるLEDのON/OFFを記述します。
まず、スイッチが押されているかどうかを判断するために、if()とdigitalRead()を使用します。 if()は、括弧内の条件が成立した場合にのみ、以後のプログラムを実行します。
1つ目のif文は、プッシュスイッチが押されたとき、すなわち、9番ピンがGNDに接続されたとき、if文が成立します。 そして、そのときにdigitalWrite()でLEDピンをHIGHにすることで点灯します。
2つ目のif文は、もう片方のプッシュスイッチが押されたとき、すなわち、8番ピンがGNDに接続されたとき、if文が成立します。そして、そのときにdigitalWrite()でLEDピンをLOWにすることで消灯します。
動かしてみよう
プログラムを書き込んで、実際に動かしてみてください。
今回学んだポイント
- LEDは極性がある。
- LEDは抵抗で電流を制限する必要がある。
- Arduinoの入力端子をオープン状態にするときは、プルアップ機能を使用する。
- スイッチ入力は、”digitalRead()”で読み取る。
改造してみよう
もう少し理解を深めるために、自分で改造してみてください。
- スイッチが押されてから、1秒後にLEDが点灯する。
- スイッチが2個押されたときだけ、LEDが点灯する。
コメントを残す