【初めてのArduino】4.スイッチ|ハンズオンで学ぶ初心者向け入門コース
Start electronics from today
このレッスンでは、デジタルピンのもう一つの使い方であるdigitalReadと、プログラムの基本であるif分の使い方を学んでいきます。
↓テキスト派の方はこちら https://lab-b.jp/first-arduino/switch/
※以下3つのボードは、全く同じコードで動作することが確認できています。 ・Arduino Uno ¥3,150:https://amzn.to/39dcJgb ・ELEGOO Uno ¥2,399:https://amzn.to/3EGw84F ・KKHMF Uno ¥1,099:https://amzn.to/3L50Gzs(別途ドライバのインストールが必要な場合あり)
■目次 0:00 オープニング 0:18 使う材料の準備 0:27 回路図 1:10 回路を組む 1:36 プログラムの作成 2:44 ボードに書き込む 2:56 ワンポイント 3:23 まとめ
■関連動画 Arduinoコース1 Arduinoとは https://youtu.be/F1RlVllBwxk Arduinoコース2 準備編 https://youtu.be/jHuWhbQdLhA Arduinoコース3 Lチカ https://youtu.be/vNFUslQCxPs
■自己紹介 ・ハードウェアエンジニア ・電子工作歴:9年 ・電子工作をゼロから体系的に並べるチャンネル「今日から始める電子工作」を運営してます
■SNS Web : https://lab-b.jp Twitter : https://twitter.com/buonoatsushi
#電子工作 #Arduino
■動画文字起こし ここでは、レッスン3で使用した回路に加え、押しボタンスイッチを使い、スイッチを押している間はLEDが点灯し、離している間は消灯するというプログラムを作っていきたいと思います。 今回使う材料は、Arduino Uno、ブレッドボード、オスオスのジャンパーワイヤ5本、赤色LED、押しボタンスイッチ、330Ωと10kΩの抵抗です。 こちらは、今回作成する回路図になります。スイッチが押されている時はスイッチ内の抵抗は0Ωになるので、A点の電圧はGNDのレベル、つまり0Vとなります。一方、スイッチが押されていない時はスイッチはとても高い抵抗値を持ちます。抵抗値が高い状態は、ノイズによって少しでも電流が流れると高い電圧が発生して故障の原因になるので、この回路のように、電源電圧に対してプルアップ抵抗と呼ばれる10kΩ程度の抵抗をつなげるのが一般的です。これをつなげることで、スイッチが押されてない時はA点の電圧を電源電圧に固定することができるので、ノイズに強くなります。なおこの回路は実は、ある裏技を使うともっとスッキリするのですが、それは後ほど紹介します。 次に、回路図にならってブレッドボード図を作成したのがこちらです。押しボタンスイッチは脚が4つあり、この図のようにつながっているので接続するときに向きを確認しましょう。ということで、回路を組むことができました。 それではコーディングを行っていきます。「ファイル」→「新規ファイル」をクリックして、まずはこのようにSetup関数の中に2つのpinMode関数を書きます。デジタルピンを入力としたい場合は、ピン番号を指定した後、INPUTと書きます。次に、loop関数の中にこのようにif文を書いていきます。if文は、何かしらの条件が成立した時にだけ処理を行いたい時に使う文で、今回のようにボタンが押されたかどうかによって処理を変えたいとき等によく使われます。if文の意味は、カッコの中の判定式が成り立った場合は、その後に続く波カッコの中の処理を行い、判定式が成り立たなかった場合はelseの後に続く波カッコ内の処理を行う、ということを表しています。ifとelseはセットで使うことが多いので、一緒に覚えておきましょう。なお判定式には、ここで挙げたような記号が使われます。等しいことを判定する場合はイコールは2つ書く事になっているので、間違えないように注意しましょう。また、digitalReadは指定したデジタルピンの電圧レベルがHIGHかLOWかを読み取る関数です。具体的な電圧レベルで言うと、電源電圧が5Vの場合、3.0V以上であればHIGH、1.5V以下であればLOWと判定する仕様になっています。 最後にファイルを保存し、ツールバーの「マイコンボードに書き込む」のボタンを押して書き込みます。ボタンを押してない状態ではLEDは非点灯で、ボタンを押すと点灯することが確認できたら完了です。 なお、実はpinMode関数にはもう一つ便利なモードがあるので紹介しておきます。pinMode関数には、これまでに紹介したOUTPUT, INPUTの他に、INPUT_PULLUPというパラメータもあります。これは、そのピンを入力設定にした時、Arduinoの内部にあるプルアップ抵抗を接続してくれるモードです。そのため、今回使用した10kΩの抵抗が不要となり、回路をスッキリさせることができます。回路規模を小さくしたい時や抵抗が手元にない時は、積極的に活用しましょう。 ということで今回は、このような内容を学んできました。digitalReadをINPUT_PULLUPのパラメータに変更して、プログラムと回路を修正してみてください。それができたら、次のレッスンに行ってみましょう。という事で、今回は以上となります。 ... https://www.youtube.com/watch?v=xk2BCZTjTLU
27293883 Bytes