コンテンツ
YouTube
- digitalRead関数の使い方:INPUT,INPUT_PULLUP
- 分岐処理(IF文)の使い方:if,else
このコースは、これから電子工作を始める方向けに、代表的なマイコンボードであるArduinoを使って、電子回路の組み方やプログラミングの仕方などをハンズオン形式で学べるコースになっています。
- Arduino Uno ¥3,150:https://amzn.to/39dcJgb
- ELEGOO Uno ¥2,399:https://amzn.to/3EGw84F
- KKHMF Uno ¥1,099:https://amzn.to/3L50Gzs(別途ドライバのインストール...
使用したコード
動画内で使用したコードです。ご自由にご使用ください。
INPUT_PULLUPを使用しない場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void setup() { // put your setup code here, to run once: pinMode(10,OUTPUT); pinMode(8,INPUT); } void loop() { // put your main code here, to run repeatedly: if (digitalRead(8) == HIGH){ digitalWrite(10,LOW); } else { digitalWrite(10,HIGH); } } |
INPUT_PULLUPを使用した場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void setup() { // put your setup code here, to run once: pinMode(10,OUTPUT); pinMode(8,INPUT_PULLUP); //INPUTをINPUT_PULLUPへ変更 } void loop() { // put your main code here, to run repeatedly: if (digitalRead(8) == HIGH){ digitalWrite(10,LOW); } else { digitalWrite(10,HIGH); } } |
4.スイッチ
使う材料の準備
ここではレッスン3で使用した回路に押しボタンスイッチを加えて、スイッチを押している間はLEDが点灯、離している間は消灯するというプログラムを作っていきたいと思います。
今回使う材料は以下の図にある通りで、Arduino Uno・ブレッドボード・オスオスのジャンパーワイヤ5本・赤色LED・押しボタンスイッチ・330Ωと10kΩの抵抗です。
回路図
以下の図は、今回作成する回路図になります。
スイッチが押されている時はスイッチ内の抵抗は0Ωになるので、A点の電圧はGNDのレベル、つまり0Vとなります。
一方、スイッチが押されていない時はスイッチはとても高い抵抗値を持ちます。
そのため以下の図の回路のように、電源電圧に対してプルアップ抵抗と呼ばれる10kΩ程度の抵抗をつなげるのが一般的です。
これをつなげることで、スイッチが押されてない時はA点の電圧を電源電圧に固定することができるので、ノイズに強くなります。
回路を組む
次に回路図にならってブレッドボード図を作成したのが以下の図です。
押しボタンスイッチは脚が4つあり、以下の図のようにつながっているので接続するときに向きを確認しましょう。
ということで、回路を組むことができました。
プログラムの作成
「ファイル」→「新規ファイル」をクリックして、まずは以下の図のようにSetup関数の中に2つのpinMode関数を書きます。
デジタルピンを入力としたい場合は、ピン番号を指定した後、INPUTと書きます。
次に、loop関数の中にif文を書いていきます。
if文は、何かしらの条件が成立した時にだけ処理を行いたい時に使う文で、今回のようにボタンが押されたかどうかによって処理を変えたいとき等によく使われます。
なお判定式には、以下の図で挙げたような記号が使われます。
またdigitalReadは、指定したデジタルピンの電圧レベルがHIGHかLOWかを読み取る関数です。
具体的な電圧レベルで言うと、電源電圧が5Vの場合、3.0V以上であればHIGH、1.5V以下であればLOWと判定する仕様になっています。
ボードに書き込む
最後にファイルを保存し、ツールバーの「マイコンボードに書き込む」のボタンを押して書き込みます。
ボタンを押してない状態ではLEDは非点灯で、ボタンを押すと点灯することが確認できたら完了です。
ワンポイント
pinMode関数には、これまでに紹介したOUTPUT, INPUTの他に、INPUT_PULLUPというパラメータもあります。
これはそのピンを入力設定にした時、Arduinoの内部にあるプルアップ抵抗を接続してくれるモードです。
そのため、今回使用した10kΩの抵抗が不要となり、回路をスッキリさせることができます。
回路規模を小さくしたい時や抵抗が手元にない時は、積極的に活用しましょう。
まとめ
ということで今回は、以下のような内容を学んできました。
- digitalRead関数の使い方:INPUT,INPUT_PULLUP
- 分岐処理(if文)の使い方:if,else
本記事の続きは、ハンズオンで学ぶ初心者向け入門コースの第五弾で説明していきます。
当サイトでは、最低限身につけるべき知識やツールの解説など、電子工作を 0 から体系的に学べる動画や記事を投稿しています。