こんにちは、SEのトモです。
Arduino電子回路のレッスン3「スイッチ回路」を実施しました。
Arudinoボードにスイッチのオンオフを入力して、LEDを点灯させる制御を学びます。INとOUTの両方を学ぶ超基本的なレッスンですが、とっても大事なステップです。
使っているキット
Amazonで購入した
ELEGOO ARDUINO UNO 最終版スターターキットを使っています。
メインのArudinoボードに加えてセンサーやモーターなどの部品が63個も入っています。
今回使ったもの
スイッチ × 2つ
LED × 1つ
抵抗220Ω × 1つ
Aruduinoボード
ブレッドボード
配線用のケーブル
サクッと動画で確認見るならこちら
作業内容を動画にまとめましたので、ご覧ください。
スイッチとは?
キットに入っている4つ足のスイッチです。
真ん中のボタンを押すと4つの足全てが繋がった状態になります。
スイッチの回路図
A-D、B-Cはボタンを押さなくても繋がった状態です。
ボタンを押すとABCDがすべて繋がります。
裏側にしたところです。
よく見るとA-D、B-Cが橋のようにつながってます
注意ポイント
4つ足スイッチの向きを間違えると正しく動きません。
例えばAとDの足に配線するとボタンを押しても押さなくても常にONになります。
この他LED・抵抗・ブレッドボードを使いますが、使い方や注意点など過去記事がありますのでそちらを参照ください。
-
【基礎1】Arduino電子回路キットを使ってLEDを光らせる
こんばんは、SEのトモです。 Arduino電子回路のレッスン1「LEDを光らせる」を実施しました。 使っているキット ELEGOO ARDUINO UNO 最終版スターターキット LED・抵抗・ブレ ...
続きを見る
実際に回路を作ってみる
これらの部品を使って回路図に従って配線しました。
こんな感じで配線しました。
プログラミング制御
今回のスイッチ回路はスイッチのオンオフをArduinoボードがチェックするためのプログラミングが必要です。
と言ってもサンプルプログラムがあるので、流し込むだけです。
1)ArduinoIDEを起動
2)ファイルー開くでDigitalInputsのサンプルコードを開く
3)マイコンボードに書き込む
4)スイッチを押す事でLEDが光りました♪
もう一つのスイッチを押すとLEDを消す事も出来ました。
プログラムを色々いじってみる
サンプルで使ったプログラムに赤字でコメントを追加しました。
スイッチが押されているかどうかをdigitalReadコマンドでチェックします。
digitalRead : 指定したピンがHIGHかLOWかチェックする
押されていた場合、LEDのピンをHIGH⇒LOW、LOW⇒HIGHと変化させる
digitalwrite : 指定したピンをHIGHかLOWに変更する
今回は2つスイッチがあるので、digitalReadを2つ用意して8番、9番のピンをチェックしています。
混乱した所
回路に合わせてプログラムも意図的に「INPUT_PULLUP」モードが使われており
押していなければHIGH、押されたらLOWになるようになっています。
押したらHIGHになる方が人の感覚には分かりやすいですが、今回の回路の特徴として、スイッチを押しても電源にではなくGNDに繋がっている事がミソです。
両方ボタンを押した時だけLEDを光らせる
さて、いろいろプログラムを変えて動きを変えようと思いますが
両方のボタンが押された時にLEDを光らせる形に変更してみました。
オレンジ色部分を追加しました。
LEDを光らせる前のチェックプログラムをA,B両方のボタンに変更します。
Arudinoボードにデータ転送して確認します。
2つのボタンを同時に押す事でLEDを光らせる事が出来ました!
ここまでの作業内容を動画にまとめてみました。
まとめ
今回はスイッチを使って、Arudinoボードにインプットする方法を学習しました。
今回もあれこれプログラムを「いじってみる」事をしました。
プログラムで一時的にエラーが出てくるシーンもありましたが、この積み重ねが大事です。
理由
現在のプログラムは行数も少ないので問題ないですが、もっと複雑なプログラムは一発で動く事は稀です。エラーが出てきてはデバックを繰り返すうちに徐々にプログラムは覚えていきます。
今回の回路作成で、サンプルのイラストではなく回路図を見て作るようにしました。
最後には自分でオリジナルの回路が作りたいので、実際の回路図に見慣れていく必要がありますね。
シンプルな回路ですが、ロボットを作るためには
スイッチを使ったON・OFFやモーターを動かすための信号を発信するなど
さまざまな処理が必要ですが、基本的にはINPUTとOUTPUTを使いこなす事です。
以前学習したLEDを光らせる回路とセットで今回のINとOUTの両方が実施できたことになります。
-
【基礎1】Arduino電子回路キットを使ってLEDを光らせる
こんばんは、SEのトモです。 Arduino電子回路のレッスン1「LEDを光らせる」を実施しました。 使っているキット ELEGOO ARDUINO UNO 最終版スターターキット LED・抵抗・ブレ ...
続きを見る
引き続き電子回路の学習を続けていきたいと思います。