ArduinoやRaspberry Piのハンズオンの最初にLED(発光ダイオード)をチカチカ光らせることをやることが多い(というかほとんどLED)と思います。通称「Lチカ」と呼ばれています。
このときに,抵抗を直列に接続するのはなぜでしょう?
- LEDをショートさせないため
- 電流を制限するため
と説明がされていることが多いのですが,ここできちんとした説明をしたいと思います。
LEDの特性
まずはLEDの説明から。LEDはLight-Emitted Diodeの略で日本語では発光ダイオードです。
ここで発光ダイオードの特性を抵抗と比べてみましょう。抵抗は電圧と電流が比例します。そうです。皆さんご存知のオームの法則です。一方で,発光ダイオードは徐々に電圧を加えていくと,ある程度まではほとんど電流が流れず,あるところ(このLEDの場合3V弱)から急激に流れ始めます。
[http://akizukidenshi.com/download/ds/lg/LEBWL34A06AA00.pdf]
から秋月電子で販売されているLEDのページからデータシートがダウンロードできます。
LEDの光の明るさ
ところで,LEDの明るさは何によって変化するでしょうか?電圧でしょうか?電流でしょうか?
実はLEDの明るさはLEDの電流に(ほぼ)比例します。
しかし実際に電子回路では電圧一定の電源(=電圧源)しか用意されていないことがほとんどです。Arduinoにも5Vとか3.3Vの端子があったと思います。たとえばこのLEDでは20mAの電流を流すとほどよい明るさで光るのですが,20mAの電流を流すためには3.2Vの電圧が必要になります。
たとえば下の図の右上のようにもし何かの拍子に電圧が3.6Vになってしまったらどうでしょう?たった0.3Vの電圧上昇でLEDの電流値は40mAと2倍程度になってしまいます。LEDそのものの特性も変化することだってあります。温度が変化した場合LEDの特性は右下のように青色の曲線のようになります。その場合には電圧が変化しなくても電流が変化します。
抵抗があると・・・?
ここで抵抗の登場です。抵抗をLEDに直列に接続して,全体に電圧を印加してみます。するとダイオードに流れる電流は図の中の式のようになります。この式はLEDの特性を知らなかったことにしてこの回路の電源と抵抗の特性からダイオードの電流と電圧の関係を示したものとなります。この関係をLEDの実際の特性と重ねた時の交点が,この回路におけるダイオードの電流と電圧(=動作点)となります。
ここで先ほどと同様に,回路の電圧やLEDの特性そのものが変化した場合を考えてみましょう。
まずは回路の電圧が+0.3V変化した場合は,直線の$x$切片が5.0Vから5.3Vに変化します。動作点はどうでしょうか?先程は電流が40mAになってしまいましたが,今回の場合はほとんど変化しません。LEDの特性が変化したとしても問題無さそうです。
すなわち,LEDに抵抗を直列接続することで「電流の大きさで明るさが変化するLEDを電圧源で駆動することができ,LEDの明るさを安定化できる」ということだったのです。
電流を安定化するというのが本来の目的で,
- LEDをショートさせないため
- 電流を制限するため
も間違っていはいないのですが,実はより実用的な理由があったのです。