こんにちは、「メカのりまき」です。
この記事では、電気についての基礎知識を説明した後、ブレッドボードで回路を作成して、LEDを点灯させる方法について説明したいと思います。
この記事では「Arduino」というマイコンボードを使用いたします、「Arduino」を知らないという方や購入をしていないという方は、以下のリンク先の記事で、「Arduino」の説明をしてますので、是非、ご覧になってください。
目次
本記事で使用するもの
本記事で私が使用した物は以下の通りです。
- PC
- USBケーブル
- Arduino Uno R3(ELEGOO UNO R3でも可)
- ブレッドボード
- LED
- 抵抗器
- ジャンパーワイヤー
「Arduino Uno R3」の互換ボードであれば、「ELEGOO UNO R3」以外のボードでも、本記事と同様な手順で動作可能だと思われますが、動作検証はしていないので、その点はご了承ください。
以下のリンクのスターターキットを購入した場合、上記で述べた使用するものは、PC以外すべて入手することができます。
Arduinoをまだ購入していないという方やArduinoで動かすことができるたくさんのパーツが欲しいという方は、購入を検討してみてください。
電気の基礎
電池を豆電球やモータなどの部品に繋げると、光ったり、回転したりなど部品に応じた働きを見ることができます。
これらの働きが起きる理由は、電池が持っている「電圧」によって、豆電球やモーターなどの部品に「電流」が流れるからです。
「電圧」と「電流」という単語は、聞いたことがあるけれど、どういったものか良く分からないという方もいらっしゃると思うので、まずは「電圧」と「電流」についての説明と、それらを制御するために必要な「電気抵抗」と「オームの法則」についての説明をしたいと思います。
電圧
電圧は別名「電位差」と呼ばれていて、ある2つの点の「電位」を比較したときの差を表しています。
「電位」は電気を動かすエネルギーのようなものです。
電位の高さは1.5[V]のように単位を「ボルト[V]」で表し、この電位が高いほうから低いほうに向かって、電流が流れます。
このとき、2点の電位の値の差(電位差)が大きい程、その2点間の電気を流す力が大きくなります。
そして、2点の電位の値の差(電位差)を電圧と呼びます。
電圧の高さも、1.5[V]のように単位を「ボルト[V]」で表し、この数値が高いほど電気を流すための力が大きいことを示します。
また、数値の部分が不明な場合は、V[V]のように数値の部分を記号「V」などで表されることがあります。
電池などの電源は、プラスの部分に繋げた部分の電位をマイナスの部分に繋げた電位よりも高くするという役割を持っていて、そのプラスとマイナスの電位の値の差(電位差)が電源の電圧と呼ばれています。
電流
電流はその名の通り「電気の流れ」でどれだけの電気が流れているかを示します。
電流の大きさは、2[A]のように単位を「アンペア[A]」で表し、この数値が大きいほど、多くの電気が流れていることを示します。
また、数値の部分が不明な場合は、I[A]のように数値の部分を記号「I」で表されることがあります。
電気抵抗
電気抵抗は「電気の流れにくさ」を表しています。
電気抵抗の大きさは、その物体の材質や大きさなどによって変化します。
例えば、銅やアルミは電気抵抗が低いため、電気をとても良く通します。
反対に、ゴムやガラスは電気抵抗が高いため、電気をほとんど通しません。
電気抵抗の大きさは、200[Ω]のように単位を「オーム[Ω]」で表し、この数値が大きいほど、電気が流れにくいことを示します。
また、数値の部分が不明な場合は、R[Ω]のように数値の部分を記号「R」で表されることがあります。
オームの法則
オームの法則は上記で説明した「電圧」、「電流」、「抵抗」の関係性を表した法則で、以下のような式で表されます。
この式は例えば以下のようなときに使用されます。
上の図のように電気抵抗R=100[Ω]のものに、電流I=0.05[A]を流したいとき
V = I × R = 0.05[A] × 100[Ω] = 5[V]
となるので、V=5[V]の電圧を用意すれば良い。
というように、「電流」と「電気抵抗」の値が決まっているときに必要な「電圧」を求めることができます。
また、オームの法則は、以下のような式でも表すことができ、「電圧」、「電流」、「電気抵抗」の内、どれか2つの値が決まっている場合に、決まっていないもう1つの値を求めることが出来ます。
ミリ[m]とキロ[k]
基本的には上記のように、「電圧」、「電流」、「電気抵抗」は、それぞれ「ボルト[V]」、「アンペア[A]」、「オーム[Ω]」という単位を使います。
しかし、0.02[A]や10000[Ω]など、値が小さい場合や大きい場合、以下で説明する「ミリ[m]」や「キロ[k]」を単位の頭に付けて表されることがあります。
ミリ[m]
小さいものを表すときに、単位の頭に「ミリ[m]」を付けて表すことがあります。
この「ミリ[m]」は、1/1000倍の量であることを示していて、ミリボルト[mV]、ミリアンペア[mA]、ミリオーム[mΩ]のような使われ方をします。
身近なところでいうと、ミリメートル[mm]、ミリグラム[mg]なども、短い距離や軽い物の重さを表すときに使用されています。
このミリ[m]を何もついていない状態の単位に変換する場合は、その数値を1000で割ります。
例えば、10[mA]の単位を[A]に直したい場合は、
10[mA] ÷ 1000 = 0.01[A]
となります。
逆に何もついていない状態の単位にミリ[m]を付けたい場合は、その数値を1000倍します。
例えば、0.02[A]の単位を[mA]に直したい場合は、
0.02[A] × 1000 = 20[mA]
となります。
キロ[k]
大きいものを表すときに、単位の頭に「キロ[k]」を付けて表すことがあります。
この「キロ[k]」は、1000倍の量であることを示していて、キロボルト[kV]、キロアンペア[kA]、キロオーム[kΩ]のような使われ方をします。
身近なところでいうと、キロメートル[km]、キログラム[kg]なども、長い距離や重い物の重さを表すときに使用されています。
この「キロ[k]」を何もついていない状態の単位に変換する場合は、その数値を1000倍します。
例えば、2[kΩ]の単位を[Ω]に直したい場合は、
2[kΩ] × 1000 = 2000[Ω]
となります。
逆に何もついていない状態の単位に「キロ[k]」を付けたい場合は、その数値を1000で割ります。
例えば、10000[Ω]の単位を[kΩ]に直したい場合は、
10000[Ω] ÷ 1000 = 10[kΩ]
となります。
注意点
オームの法則を利用する際は、「電圧」、「電流」、「抵抗」の単位を、それぞれ「ボルト[V]」、「アンペア[A]」、「オーム[Ω]」という単位に直す必要があります。
例えば、電流I=20[mA]、抵抗R=100[Ω]のとき、電圧V[V]を求める場合、
V = I × R = 20[mA] × 100[Ω] = 2000[V]
と求めるのは間違いです。
この場合は、電流の単位を
I = 20[mA] ÷ 1000 = 0.02[A]
と直した後に、オームの法則に当てはめて
V = I × R = 0.02[A] × 100[Ω] = 2[V]
と計算を行うようにしてください。
Arduinoと電圧
Arduinoは上記で説明した電圧を制御することにより、様々な部品に電流を流すことができます。
以下では、Arduinoで電圧を扱う際に使用するピンについて説明したいと思います。
GND(グランド)ピン
「Arduino Uno R3」を見るとGND(グランド)というピンがいくつかあることが確認できると思います。
このGNDピンは電池でいうところのマイナス部分の役割を持っています。
このピンで繋いだ部分が電圧の基準である0[V]になり、以下で説明する、ピンと組み合わせることで、電池のときのように、電圧を生じさせることができます。
3.3Vピンと5Vピン
「Arduino Uno R3」を見ると3.3Vと5Vというピンが確認できると思います。
このピンは電池でいうところのプラス部分の役割を持っています。
文字の通り、3.3Vピンに繋いだものは、GNDより3.3[V]高い電位となり、5Vピンに繋いだものは、GNDより5[V]高い電位となります。
よって、以下のように、GNDピンと組みあわせることによって、電圧を生じさせ電流を流すことができます。
入出力ピン
「Arduino Uno R3」を見ると、0~13の数字やA0~A5と書かれたピンが確認できると思います。
以前の記事で、0~13の数字が書かれたものを「デジタル入出力ピン」、A0~A5と書かれたものを「アナログ入力ピン」と呼び、これらのピンの入出力を制御することで、外部の部品を動かしたり、データを読み取ったりすることができるという説明をしました。
これらのピンはスケッチで、この番号のピンは出力ピンであるという指定をすることで、電池でいうところのプラス部分の役割を持たせることができます。
例えば、デジタル入出力ピンの3番を出力ピンに指定したい場合は、スケッチ内で以下のような文を書きます。
1 |
pinMode(3,OUTPUT); |
上記の文により、指定した番号のピンに電池でいうところのプラス部分の役割を持たせることができますが、普通の電池のプラスとは違い、以下の文により途中で電位を変更することができます。
1 2 |
digitalWrite(3,HIGH); digitalWrite(3,LOW); |
「digitalWrite(3,HIGH)」が実行された場合、3番ピンに繋いでいる電位はGNDより5[V]高い電位となり、「digitalWrite(3,LOW)」が実行された場合、3番ピンに繋いでいる電位はGNDと同じ電位(0[V])となります。
つまり、上記の性質を利用すれば、スケッチで部品にかかる電圧の有無を制御することができるということになります。
上記では、デジタル入出力ピンを出力ピンとして使用する方法を述べましたが、アナログ入力ピンも同じように出力ピンとして使うことができます。
以下は、A0ピンを出力ピンとして使用する場合の文です。
1 |
pinMode(A0,OUTPUT); |
LEDの特徴
LEDは以下の写真のような見た目をしていて、電流を流すことにより、点灯させることができます。
このとき、流れている電流が大きい程、明るく点灯します。
LEDを記号で表すと以下のようになります。
LEDは適当に電流を流せば点灯する単純な部品だと、思われがちですが、意外と繊細であり、下記のような厄介な特徴を持っているので、扱う際には注意が必要です。
電流を流せる向き
LEDに流せる電流の向きは決まっていて、逆向きに流そうとしても、電流は流れず点灯しません。
電流を流すためには、電圧のプラス部分とマイナス部分を、LEDに合わせて繋げる必要があります。
加えても良い電圧
LEDは低い電圧を加えても、電流が流れず点灯させることができません。
また、高い電圧を加えると、LEDに大きな電流が流れて破壊されることがあります。
LEDに加えても良い基準の電圧はLEDの種類によって、異なっていて、基準となるその電圧のことを「順電圧(順方向電圧)」と呼び、記号「 VF 」で表されます。
LEDの順電圧は色の種類によって変わることが多く、赤色、橙色、黄色、緑色は2[V]程度、青色や白色はそれよりも高い3.5[V]程度の場合が多いです。
順電圧の値はメーカーが記載している場合が多いので、可能な場合は確認してみてください。
また、順電圧VFを加えたときに、LEDに流れる電流を「順電流(順方向電流)」と呼び、記号「 IF 」で表されます。
順電流の値もメーカーが記載している場合が多いので、可能な場合は確認してみてください。
ArduinoとLED
LEDの順電圧の説明をしたときに、気づいた方もいらっしゃると思いますが、Arduinoのピンに直接LEDを接続して点灯させようとすると、ほとんどの場合、LEDに大きな電流が流れて破壊されます。
理由は、Arduinoの出力である5[V]が、LEDの順電圧を大きく上回っているためです。
では、どのようにすれば、ArduinoでLEDを点灯させることができるのでしょうか。
この問題は、LEDに対して、抵抗器を直列に繋げることで、解決をすることができます。
抵抗器
抵抗器とは、以下の写真のような見た目をした部品で、決められた電気抵抗を持っています。
抵抗器を記号で表すと以下のようなものになります。
ほとんどの場合、抵抗器は下の写真のように、電気抵抗の値が分かるようにまとまった状態で売られています。
もし、まとめてある状態からバラバラにして、抵抗器の電気抵抗が分からなくなったとしても、以下のようにカラーコード(表面に印刷された縞々模様)から抵抗器の電気抵抗の大きさを読み取ることができます。
抵抗器の一番右に印刷された色が許容差、右から2番目に印刷された色が乗数(何倍するかを表す数値)、それより左の色が抵抗の値を示す数字を表しています。
カラーコードの左右の見分け方のコツとしては、金、銀、桃は数値を表す際には使用されないため、端から1番目か2番目が金、銀、桃の場合は、その線が右側になるようにすると良いです。
その他のコツとしては、メーカーによって異なりますが、線がどちらかに寄っている場合は、線が寄っている方を左としたり、端の線の太さが1本だけ太い場合は、その太い線を右にしたりするなどがあります。
抵抗器は、電気抵抗の値があらかじめ分かっているため、以下で説明する直列回路で、部品に流れる電圧、電流を調整することができます。
直列回路
直列回路とは、下記の画像のように、電池や抵抗器などを一列につないだ回路のことです。
この直列回路は、どこを測っても電流の大きさが同じであり、抵抗器などにかかる電圧の和と電源の電圧が等しくなるという特徴を持っています。
また、回路全体の電気抵抗は、それぞれの電気抵抗の値の和と等しくなるという特徴も持っています。
つまり、抵抗器をいくつか直列に繋げていけば、その分、回路全体の電気抵抗が高くなるため、電流は流れにくくなり、抵抗器に加わる電圧も分散されるので、低くなるということになります。
この性質を利用すれば、出力の電圧が5[V]のArduinoでも、LEDに加わる電圧を低くすることが出来るので、順電圧が5[V]より低いLEDを点灯させることができます。
抵抗器の計算
突然ですが、ここで問題です。
上記のような、電圧5[V]の電源に抵抗器が2つ繋がった回路において、抵抗器2に2[V]の電圧を加えるためには、抵抗器1の電気抵抗をいくつにすれば良いでしょうか。
ここで、抵抗器2に2[V]を加えた際に流れる電流は20[mA]だということが分かっているものとします。
解き方を以下で説明するので、一緒に問題を解いてみてください。
まず、直列回路の性質より、電圧の関係は以下のようになります。
V = V1 + V2
ここで、電源の電圧Vは5[V]、抵抗器2に加わる電圧V2は2[V]となるため、抵抗器1に加わる電圧は
V1 = V – V2 = 5[V] – 2[V] = 3[V]
と求められることができます。
また、直列回路の性質より、流れる電流はどの場所でも同じなので、抵抗器1に流れる電流は
I = 20[mA] ÷ 1000 = 0.02[A]
と求めることができます。
ここで、抵抗器1に加わる電圧と流れている電流の値が分かっているため、オームの法則より、抵抗器1の電気抵抗は
R1 = V1 ÷ I = 3[V] ÷ 0.02[A] = 150[Ω]
と求めることができます。
よって、抵抗器2に2[V]の電圧を加えるためには、抵抗器1の電気抵抗を150[Ω]にすれば良いというのが問題の答えになります。
では、ここで上記の問題の抵抗器2をLEDに置き換えてみてください。
実は電源の電圧が5[V]のとき、順電圧が2[V]、順電流が20[mA]のLEDに対して、電気抵抗がいくつの抵抗器を繋げれば良いかという問題は、今解いてきた問題と全く同じ解き方で解くことができます。
つまり、順電圧と順電流が分かっているLEDの場合、上記と同じような計算を行えば、直列に繋げるべき抵抗器の電気抵抗の大きさが分かるということですが、正直面倒くさいと思った方もいらっしゃるのではないでしょうか。
ということで、電源の電圧が5[V]のとき、順電圧と順電流が分かっているLEDに対して、電気抵抗がいくつの抵抗器を繋げれば良いかという計算を行ってくれるツールを作っておきましたのでご活用ください。
抵抗器計算ツール
上記のツールは順電圧と順電流の部分に値を入力すると、直列に接続すべき電気抵抗の高さを計算します。
ここで、後に作成するLEDを点灯させる回路では、上記のツールで求めた電気抵抗よりも少し高い電気抵抗のものを使用します。
また、順電圧、順電流が不明で計算が行えない場合は、電気抵抗が高いものを接続し、そこから調節をしていくことになります。
LEDを点灯させる回路の作成
Arduinoを使った回路
長くなりましたが、これまでの説明をまとめると、以下のような回路を作成すればArduinoでLEDを点灯させることができるということになります。
ここで、抵抗器は上記の計算で出した電気抵抗Rよりも少し値の高いものを使用すると、電流の流れすぎによるLEDの破壊を防げるので安全です。
電気抵抗の計算が行えない場合は、電気抵抗が高いもの(大体1[kΩ])から順番に接続していき、ちょうど良い明るさになるものを探していきます。
その際、電気抵抗を低いものにすれば、その分点灯が明るくなるのですが、電気抵抗が低すぎるもの(大体100[Ω]を下回るくらい)の場合、LEDの寿命を縮めてしまったり、破壊してしまったりすることがあるので注意してください。
今回、私は220[Ω]の抵抗器を使用しています。
ここまで来れば、後は回路を実際に作るだけです。
ブレッドボードを使った回路
ブレッドボードは下の写真のような見た目をしていて、穴に線を差し込むだけで、簡単に回路を作成することが出来ます。
ブレッドボードの中では、以下の画像のように線が繋がっています。
ブレッドボード内で繋がってないライン同士を繋げたい場合は、ジャンパーワイヤーや部品(LED、抵抗器など)の線を差し込んで繋げます。
ジャンパーワイヤーは下の写真のようなものです。
つまり、以下の画像のように、部品を差し込んでいけば、LEDを点灯させることが出来ます。
ブレッドボードでの回路作成の際は、Arduinoの電源が入っていない状態(USBケーブルを抜いた状態)で作業をすることをお勧めします。
そうすることで、作業をしている途中に誤って線を接触させてしまったり、間違えた場所に線を差し込んでしまったりした際に、部品に電流が流れて、破壊されることを防ぐことができます。
上記の画像のように、ブレッドボードに部品を差し込み終わったら、差し込んだ位置が一列ずれていないかなどを良く確認した後に、USBケーブルを、電源の入ったパソコンなどに接続してみてください。
正しい回路ができていれば、下の写真のようにLEDが点灯するはずです。
点灯しない場合は、線がしっかりと奥まで差し込まれているか、差し込んでいる位置が間違っていないか、LEDの向きはあっているかなどを確認してみてください。
終わりに
皆さんLEDをしっかりと点灯させることができたでしょうか。
余裕のある方は、抵抗器を電気抵抗がより高いものに差し替えてみてください。
すると、回路の電気抵抗が上がり、電流が流れにくくなるので、LEDの点灯が暗くなるのが確認できます。
下の写真は抵抗器を220[Ω]のものから、10[kΩ]に変えたときのものです。
Arduinoとブレッドボードを使った、LEDを点灯させる回路の作成についての説明は以上となります。
これで、ArduinoでLEDの点灯を制御するための準備は整いました。
次回の記事では、今回、5Vピンに差していた部分を、入出力ピンに差し変えて、LEDの点灯を制御する方法について、説明したいと思います。
本記事はここまでです。ご清覧ありがとうございました。
広告
楽天モーションウィジェットとGoogleアドセンス広告です。
気になる商品がございましたら、チェックをしてみてください。