ELEGOO Arduino用UNO R3スターターキット で始める マイコン+電子工作3

ELEGOO Arduino用UNO R3スターターキット レベルアップ チュートリアル付

前回の続き
引き続きチュートリアルに沿って電子工作入門していく

デジタル入力

プッシュスイッチ

LED をオン/オフするためにデジタル入力付きのプッシュボタンを使用する方法 を学習します。

使用する機器

  • (1) x Elegoo Uno R3
  • (1) x 830 Tie-points Breadboard
  • (1) x 5mm red LED
  • (1) x 220 ohm resistor
  • (2) x push switches
  • (7) x M-M wires (Male to Male jumper wires)

push switches

ボタンを押すかレバーを回すと、2 つの接点が電気的に接続されます。
これまた左右上下が間違えやすいので注意


※LEDの正負ピンに注意

配線がもんだいなければ LED プログラムのままなので Arduino を繋いだ時点で LED が点灯する

チュートリアル用のサンプルプログラムを開きデプロイする

デプロイするとLEDが消え、左ボタンを押すと LED が点灯し、右ボタンを押すと消灯します。

void setup() 
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonApin, INPUT_PULLUP);  
  pinMode(buttonBpin, INPUT_PULLUP);  
}

void loop() 
{
  if (digitalRead(buttonApin) == LOW)
  {
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(buttonBpin) == LOW)
  {
    digitalWrite(ledPin, LOW);
  }
}


スケッチの最初の部分は、使用される 3 つのピンの 3 つの変数を定義します。
‘ledPin’は出力ピンで、‘buttonApin’はブレッドボードの上部に近いスイッチを指し、 ‘buttonBpin’は他のスイッチを指します。
INPUT_PULLUP のピン・モードは、ピンを入力として使用することを意味しますが、他のものが入力に接続されていない場合は、「プルアップ」して HIGH にする必要があります。
言い換えれば、入力のデフォルト値は、ボタンを押す動作によって LOW に引かれない限り、HIGH です。
このため、スイッチは GND に接続されています。
スイッチを押すと、入力ピンが GND に接続されるため、ハイになりません。

入力が通常 HIGH で、ボタンを押したときに入力が LOW になるので、ロジックは少し上下逆です。
これを’loop’関数で扱います。

GND でマイナス電力は通しつつ、プログラム側でプラス電力のON/OFFを制御する仕組み
デフォルトでデジタル入力は HIGH なため、左のボタンを押す=LOWとなり
loop内で LEDに電力を通すピンをHIGHにして電気を通す
右のボタンが押されたら=LOWとなりLEDピンをLOWにして電気を止める

スイッチと聞くと ON/OFF な気がしてしまうけど、デフォルトON でスイッチ自体は押すことで OFF しか発しないってイメージかな

いろんな機器を繋いでいても結局制御しているのは Arduino 側で Arduino 側のピンしか制御できない
スイッチに対して制御しているのではなく、スイッチからの入力値を元に Arduino 側で制御しているって理解してやっとわかった
スイッチからのデジタル入力がどうも見えにくいので中々理解しづらい

そもそも電子回路におけるデジタル回路とアナログ回路とは何なのか

なんとなくだけど、今回のチュートリアルでスイッチを利用する場合、 Arduino のデジタル回路側ピンを使った理由がわかる


だんだん ん・・・・ん?という疑問点が増えてきたけど
細かいことは一旦置いておいて触ることを優先して学習していく

とりあえず今回はここまで
多分次回に続く

Share Comments
comments powered by Disqus