【Arduinoをはじめよう】発光ダイオードをボタンで制御するを実践してみる p34 くらいの話。

スポンサーリンク

発光ダイオードをボタンで制御する

前回、「Arduinoをはじめよう」で発光ダイオードを光らせるところまで行きました。

※ボサボサしているうちに、Arduino をはじめよう第 3 刷が出てしまいました。

こちらの記事は、第 2 刷を参考に書いています。

【電子工作にチャレンジ】Arduino をはじめよう「LED を点灯させてみる」で知る回路図の意味。

とりあえず、基本的な事は判りました。

ということで、今回はその発光ダイオードを「ボタンを使って制御する」にチャンレンジしてみようと思います。

こちらの書籍の 34 P あたりから解説されている内容です。

使用する部品を把握する

前回は発光ダイオードと、Arduino を直接つなぎました。

非常にシンプルだったので、特に疑問を感じる点はありませんでした。

しかし今回は、色々パーツが増えます。

初心者としては、「なにこれ?」なものも増えてきましたので、はじめに使用するアイテムの確認。

ブレッドボード

ブレッドボードとは試作機などを簡単に作るための試作機用の板です。

「はんだ付け」が不要なので、部品を簡単に挿したり、抜いたりできます。

こうしたはんだ付けが不要なタイプを「solderless」と呼ぶそうです。

  • solderless breadboard(はんだ付け不要)
  • breadboard(はんだ付け必要)

といった使い分けがされていたようですが、近年は「solderless」が一般的になったので、ブレッドボード。

といったら、はんだ付けしないタイプを言うそうです。

抵抗

今回から抵抗が登場します。

「Aruduino をはじめよう」曰く、

作品を作る上でちゃんと覚えておく必要がある公式はこの「オームの法則」だけなんだとか。

R(抵抗)=V(電圧)/ I(電流)

いわゆる「オームの法則」です。

ほ、ほんとかな・・・。

よくよく見ると、抵抗に描かれた色が違う

なんとなく遠い過去の記憶が蘇ってきました・・・。

昔、抵抗にはそれぞれ「抵抗値」が決まっていて、その抵抗値を表しているのが抵抗に描かれている線の色で表してあると・・・。

購入した

こちらのキットの中にもいくつか抵抗が入っています。

さすがに素人には見極められません。

一応説明書が入っていますが、抵抗の見分けに困ったらこちらのサイトが役立ちそうです。

カラー抵抗値の写真早読み表!
teikou-ichiran

ジャンパワイヤ

接続用のワイヤーです。

ジャンプワイヤ?

ジャンパワイヤ?

ネットで調べる限り「ジャンプ」が一般的なようなのですが・・・。

ジャンパワイヤで調べるとスイッチサイエンスの商品がたくさん。

ということで、ここは「スイッチサイエンス」に敬意を評して、「ジャンパワイヤ」で統一します。

基盤上に回路を組むとき、できるかぎり導線は隣接した端子同士を結ぶのが基本らしいです。

しかし、どうしても離れた場所をつながないと行けない時基板上を「ジャンプして」つなぐからジャンパワイヤというわけです。

ワイヤには「オス・メス」があります。

キットに入っているのは、「オスーオス」です。

この他にも、「オスーメス」「メスーメス」もあるそうです。

あと、こちらは「やわらかい」タイプです。

固い」タイプもあるそうで。

このへんは必要に応じて。という感じでしょうか。

慣れてきたら、使い道も判断できそうです。

ということで、今回はこれらを使って今回は作成します。

ブレッドボードの使い方

ブレッドボードを使う場合、まずはつながっている箇所を把握します。

breadbord

赤枠で囲った部分が「繋がっています」。

つまり、

breadboard-line

こういった風にワイヤーを接続した場合、このワイヤー同士は「繋がっている」わけです。

これを意識して接続を行っていきます。

今回のボタンによって発光ダイオードの動きを制御するのにあたっては、Autodesk が提供している「123D Circuits」を使って仮組みしています。

【Arduinoをはじめよう】Autodesk が提供する 123D Circuits が初心者にオススメな件
ハードウェアハッキングを「仮想的」に試すことができる!123D Circuits Arduino を勉強する上ですごく便利なツールを知...

これを参考にしながら実際組むところまでをやってみました。

プルアップ抵抗・プルダウン抵抗

前回基本的な接続を理解したわけですが…。

その知識を前提に今回の回路を考えた時、謎が出てきます。

それは、「抵抗の設置位置」です。

電源から、発光ダイオード、ボタンと一直線につながっていてくれたら判りやすいんですが…。

こいつはどうも、「流れ」が良く判りません。

基本的に流れに乗っとって考えると。

arduino-button-image

ピンク色の流れが、電気の流れです。

これなら、理解できるんですが…。

じゃあ、この緑の線は何なの?

という話なのですが。

こちら調べたところ「プルダウン抵抗」というものだそうです。

【プルアップ抵抗・プルダウン抵抗】

こちらに詳しく解説がされています。

今回の抵抗は、GDN 側についているので、「プルダウン抵抗」です。

ボタンが ON になっていない時は、0V (LOW)と認識され、ボタンが ON になると 5V(HIGHT)となります。

この後のページでも arduino のスケッチでもこの LOW と HIGHT で ON と OFF を見分けるようになっていますが、こうした信号をしっかり認識させるためにこの抵抗は必要なんだそうです。

「Arduino をはじめよう」には一切この点に触れられていないので、初心者としてはかなり迷います。

つまり、上記の流れはあくまで、「ボタンが ON になった場合」。

ボタンが ON ではない場合。

このとき、素人考えで行くと「OFFなんだから、0V (LOW)でしょ?」

となりがちなんですが、正確にはプルダウン抵抗がないと「不明」というのが答え。

arduino が HIGH なんだか、LOW なんだかわからない状況になるんですね。

それを防ぐために抵抗を用意して、上記の画像で言うと、緑のライン。

ここを用意することで、ちゃんと「OFF(LOW) ですよ」と、信号を送っているんですね。

なるほど。

そう考えると、この緑のラインの意味がわかります(こういう認識で良いのかな…)。

arduino-button-image-off

ちなみに、この「プルダウン抵抗」で使用する抵抗は 10 Ω が一般的だそうです。

「Arduino をはじめよう」でも唐突に「10 Ω の抵抗を用意しろ!」と書いてありますが、それなら納得です。

ということで、実際の arduino でも組んでみました。

arduino-start-p34

入力したスケッチ

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
const int led = 13;
const int BUTTON = 7;

int val = 0;
// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
  pinMode(BUTTON, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  val = digitalRead(BUTTON);
  if(val == HIGH){
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  }else{
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
}
}

arduino をはじめように習って上記のようにスケッチを記載。

あとは、これを IDE を使って書き込みます。

スケッチの書き込みについては、こちらの記事を参考にしてください。

【電子工作にチャレンジ】Arduino をはじめよう「LED を点灯させてみる」で知る回路図の意味。
まずは書籍に従って進めてみましょうということで 前回、Arduino を始めようと思った経緯やら、用意したものを紹介させていただいたん...

以上、完了してボタンを押すと、ちゃんと発光ダイオードが点灯しました。

arduino-start-p34-button-on

スポンサーリンク

シェアする

フォローする

スポンサーリンク