※この記事は2014年6月20日に公開した記事を再編集し、2022年1月7日に再度公開しました。
前回ArduinoでLEDをチカチカ光らせる(Lチカ)を解説しましたが、みなさんお試しいただけたでしょうか?前回の流れがArduinoを操作する基本となるのですが、今回からはLEDをはじめとして様々な電子部品を扱いながらさらにArduinoの世界に足を踏み入れていきたいと思います。
目次
そもそも電子回路って?
前回、写真のようにArduino本体にLEDを直接刺して光らせましたね。ちょっと電子工作をしたことがある方はすぐピンと来たかもしれませんが、実はこの状態はLEDに余分な電流が流れてかなりの無理がかかっていることになります。どんな無理がかかっているか、それを理解するために、電子回路の基礎を少しばかり勉強してみましょう。
実はLEDにかなり無理がかかっている状態
今回の電子回路を回路図にすると、このようになります。Arduinoから流れる電流は、プラスの13pinから流れて、LEDを通ってマイナスのGNDへ流れていきます。
何気なく今説明をしたこの「電流」というキーワード。電子回路ではこの「電流」と「電圧」この2つのキーワードが基本中の基本となります。
電流って?電圧って?
電子回路でよく聞くこの電圧、電流ってなんでしょうか。小中学校の理科で勉強したオームの法則とか、そんな懐かしい響きを思い出しながら今回ちょっとおさらいしてみましょう。電流と電圧をイメージするのによく例として出るのは、水路を流れる水の流れをイメージしてもらうとわかりやすいと思います。
先ほどの回路図を例にすると、プラスの13pinが水流の始まり(供給源)となり、高い位置から水が流れてLEDを経由してマイナスのGNDに流れていきます。
さて、ここでちょっと疑問を持った方もいらっしゃると思いますが、先ほど紹介した回路図だとプラスから出てマイナスまでぐるりと線が繋がっていますが、ここで紹介する水路の図は、水が流れていく先がわからなくなっています。ここで、中学校などで私たちが学んだ概念とは少しだけ違う電子回路を理解するポイントがあります。
この水が流れていくGND、グランドと呼びますが大地や地面を示します。水路から放たれた水はLEDなどの電子部品を通って最終的には地面に流れて捨てられます。いわば水路において最終的に下水となる部分がこのGNDです。電子回路では、基本的に電子部品を動かす為にプラス側から電圧や電流等の流れを確認して、最終的に余った電流はGNDに落としていく、というイメージで回路の設計をしていきます。なので、電子回路では本来上記のような中学校まで使う回路図ではなく、下記のGNDが下になるような図を用いて回路を設計していきます。
この考え方は文章にすると難しそうなイメージかもしれませんが、一つ一つ回路を組み立てていくと自然と身に付いてきますので安心してください。
もうちょっと深く理解したい、という方は「電流 電圧」や「電流 電圧 流れ」などのキーワードで検索してみてください。
LEDを光らせるのに必要な回路とは?
では、Arduinoに話しを戻していきましょう。今回Arduino本体にLEDがささっていますが実際にこのLEDをきちんと光らせるため(実はこのきちんとという定義も難しいのですが)にどのような回路を設計すれば良いのか考えてみましょう。
今回LEDをきちんと光らせる為に必要となるのが「抵抗器」です。これも中学校等の授業で触れたことのある方もいるのではないかと思います。抵抗器はその名の通り電流の流れを阻害して抑える役割を果たします。水路の例でいいますと、水路に石等をたくさん置いた時に、水の流れがゆるやかになったりするイメージです。
LEDには光らせる為に適切な電圧(定格電圧)と電流(定格電流)が表記されています。LEDにその定格値を満たすように抵抗器を加えてあげる必要があります。
今回利用したLEDでは定格電圧は2V、定格電流は20mAと表記されていましたのでそこから必要な抵抗器の値を計算していきます。
抵抗値の計算:オームの法則
まず、今回利用しているArduino UNOでは、仕様をみると動作電圧が5Vとあります。電圧から必要な電流や抵抗値を出すには、昔皆さんが覚えたオームの法則が出てきます。
電流I(A)=電圧E(V)/抵抗R(Ω)
ここで、Arduinoの出力電圧は5V、LEDには2Vの電圧を加えたいので、抵抗には5V-2V=3Vの電圧が加わるようにします。
I(A)=3V/R(Ω)
次に、LEDには20mAの電流を流したいので、20mAを当てはめると抵抗値が決まりますね。
0.02A=3V/R(Ω)
R(Ω) = 150
ということで、LEDを光らせる為に必要な抵抗値は150Ωということがわかりましたので、その抵抗器を回路に加えていきます。
では、実際にArduinoの本体に回路を組んでいきます。今回、電子部品にLED、そして抵抗器を加えますので、これらの作業がしやすいようにブレッドボードというハンダ付けをしなくても電子回路を手軽に組むことができる道具を利用します。ブレッドボードは板の裏面がそれぞれ線でつながっているため、回路を組むことができるようになっています。
(右)Arduinoとブレッドボード (左)ブレッドボード裏側
※ブレッドボードにも色々な大きさや種類があります。今回のように部品が少ないものは小さいブレッドボードで問題ないですが、大きな回路を組みたい時などはボードの面積が不足してしまうことなどがあるので、とりあえず1枚持っておくのであればそこそこ大きなサイズをお勧めします。
さて、このブレッドボードにLEDや抵抗器などを刺して回路を作成していきます。
下記の設計図を参考に配線をしてみて下さい。正常に回路が組めた場合はLEDが光るかと思います。そして、前回直刺しした時よりも明るさが落ち着いていることが確認できます。
無事に光った方は、さらに抵抗の数を増やしたりしてみてください。そうするとLEDに流れる電流がさらに弱まり、明るさも暗く光ることが確認できるかと思います。
今回は、電子部品に適切な電圧・電流を流す為の「抵抗器」の使い方について解説しました。今回まではArduinoの本体は、ほぼほぼ電源としか扱っていませんが、次回からはArduinoのプログラムを変更して、電子回路の制御を行ってみたいと思いますのでお楽しみに。
int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }