ArduinoでLEDを光らせる基本回路――配線から抵抗値計算まで一気に理解する

プログラミング・電子工作






ArduinoでLEDを光らせる基本回路――配線から抵抗値計算まで一気に理解する。|YOFUKASI AI




Arduino / 電子工作

ArduinoでLEDを光らせる基本回路――配線から抵抗値計算まで一気に理解する。

そのLED、抵抗なしで繋いでいませんか。アノード・カソードの見分け方から、オームの法則を使った抵抗値の計算、実際の配線手順までを解説します。

YOFUKASI AI編集部 | 更新日:2026年8月18日 | 読了目安:約12分

Chapter 01 — Introduction

01なぜLEDには必ず抵抗が必要なのか

結論から言えば、ArduinoでLEDを光らせる回路において唯一絶対に守るべき条件は「抵抗を挟むこと」である。LEDは決められた電流を超えると壊れてしまう部品であり、Arduinoの5V出力にLEDを抵抗なしで直接繋ぐと、想定をはるかに超える電流が流れてしまう。

実例として、ArduinoのGND出力とLEDを抵抗を挟まずに直接接続し、実際にテスターで電流を計測した検証がある。LEDを点灯させる(hiramine.com)では、Arduinoの5V出力とGNDの間に抵抗を挟まずLEDを繋いだところ、約1[A]ほどの電流が流れ、数秒でLEDが焼き切れてしまったという検証結果が紹介されている。同記事では、続けて150Ωの抵抗を挟んだ場合の実測値として、LEDに19.2[mA]、1.93[V]ほどの電流・電圧が流れていたことも報告されている。

編集部見解:LED回路は電子工作の入り口として扱われることが多いが、「なぜ抵抗が必要なのか」を理解せずに真似だけで組んでしまうと、抵抗値を変える必要がある別の部品に応用できない。最初の1回で計算の考え方まで身につけておく価値は大きいと考えられる。
― YOFUKASI AI編集部

本記事では、LED回路の基礎知識から、オームの法則を使った抵抗値の計算方法、実際にLEDを点灯させるまでの手順と注意点までを、初心者を対象に体系的に解説する。なお、素材画像の提供がなかったため、配線は図ではなく手順化されたテキストで示す。



Chapter 02 — Background

02LED回路の基礎知識

LEDには極性(プラス・マイナスの向き)があり、正しい向きに接続しないと点灯しない。長い方の足をアノード(anode、陽極)、短い方の足をカソード(cathode、陰極)と呼ぶ。

Arduino公式のBlinkチュートリアルでは、外部LEDを接続する際の配線について、Arduino公式「Blink」built-in exampleにおいて抵抗の片方の端をLED_BUILTINに対応するデジタルピンに接続し、LEDの長い足(プラス側、アノードと呼ばれる)を抵抗のもう片方の端に接続し、LEDの短い足(マイナス側、カソードと呼ばれる)をGNDに接続するという配線が説明されている。この「デジタルピン→抵抗→LEDのアノード→LEDのカソード→GND」という順序が、LED回路の基本形になる。

用語の整理

  • アノード(anode):LEDの長い方の足。プラス側で、電流の入口。
  • カソード(cathode):LEDの短い方の足。マイナス側で、電流の出口。
  • 順電流(IF)・順電圧(VF):LEDが正常に点灯する際の電流・電圧の目安値。データシートに記載されている。

LEDをON・OFFする命令自体は、pinMode()でピンを出力に設定した上でdigitalWrite()を呼び出すだけである。Arduino公式 Language Reference「digitalWrite()」では、この関数がデジタルピンにHIGH(5V、または3.3Vボードでは3.3V)またはLOW(0V)を出力する働きを持つと定義されている。

LED回路を組む前に、ブレッドボードの使い方をまだ体系的に学んでいない場合は、先に基礎を押さえておくとこの先の作業がスムーズになる。電子工作ブレッドボード完全攻略ガイドはこちらの記事で詳しく解説している

Chapter 03 — Mechanism

03抵抗値計算の仕組みと技術的背景

抵抗値は、中学・高校の物理でも習うオームの法則(電圧 = 電流 × 抵抗)を使って計算する。LED回路における考え方は次の通りである。

  • Arduinoの出力電圧(多くのボードで5V)から、LEDの順電圧(VF、一般的な赤色LEDで約2V)を引く → 抵抗にかかる電圧が求まる
  • 抵抗にかかる電圧を、流したい順電流(IF、一般的に20mA程度)で割る → 必要な抵抗値が求まる

具体的な計算例は次のようになる。

抵抗にかかる電圧 = Arduino出力電圧 - LEDの順電圧
                = 5V - 2V
                = 3V

必要な抵抗値 = 抵抗にかかる電圧 ÷ 流したい電流
           = 3V ÷ 0.02A(20mA)
           = 150Ω

この計算式は複数の解説記事でも同様に紹介されている。電流、電圧?抵抗器?オームの法則って?(DEVICE PLUS)では、Arduinoの出力電圧5Vのうち、LEDに2Vの電圧を加えたい場合、抵抗には5V-2V=3Vの電圧が加わるようにし、LEDに20mAの電流を流したい場合はその値を当てはめることで抵抗値が決まるという同様の手順が解説されている。

編集部想定シナリオ
手元に150Ωちょうどの抵抗がない場合、多くの解説では220Ω〜330Ω程度の抵抗でも代用できるとされる。抵抗値を計算値より大きくすると、電流が減って安全側に振れる一方、LEDの明るさはやや暗くなる。逆に計算値より小さい抵抗を使うと、電流が過大になりLEDの寿命を縮めるおそれがあるため、迷ったら計算値より大きめの抵抗を選ぶのが安全である。

実際に150Ωの抵抗を使って計測した実測例も報告されている。前掲のLEDを点灯させる(hiramine.com)では、計算通り150Ωの抵抗を使用した場合、実測でおよそ19.2mA・1.93Vという、計算上の目安値(20mA・2V)に近い値が確認されている。

Arduino本体のピン配置やデジタル出力の仕様について詳しく知りたい場合は、以下の記事も参考になる。

Arduinoメインボード徹底解説はこちらの記事で紹介している。デジタルピンの位置や仕様の基礎知識がまとまっている。



Chapter 04 — Comparison

04LED制御方法の比較と選択肢

LEDをどう制御するかは、目的によって最適な方式が変わる。以下に3つの選択肢を整理する。

項目 A. digitalWrite(ON/OFFのみ) B. analogWrite(PWMで明るさ調整) C. 抵抗値の選択(150Ω/330Ω/1kΩ)
できること 点灯・消灯の切り替えのみ 明るさを0〜255の256段階で調整 電流量・明るさ・安全マージンの調整
対応ピン すべてのデジタルピン PWM対応ピンのみ(基板に~マーク表示) ピンの制約なし(部品の選択の話)
向いている用途 動作確認・単純なON/OFF表示 フェード演出・明るさの段階表現 LEDの種類・電源電圧に応じた調整

※PWMによる明るさ制御の仕様はArduino公式 Language Reference「analogWrite()」を参照。抵抗値の使い分けの目安は編集部見解を含む。

まずはA案のdigitalWrite()でLEDが正しく点灯することを確認し、その後で明るさを段階的に変化させたくなったらB案のanalogWrite()に発展させる、という順序で学ぶのが取り組みやすい。

Chapter 05 — Practice

05実践:LEDを点灯させる5ステップ

ここでは「赤色LED(順電圧2V・順電流20mA想定)を、Arduino UNOのデジタルピン9番で1秒ごとに点滅させる」という編集部想定シナリオを題材に、配線からコードアップロードまでの具体的な手順を示す。

  1. STEP1. 抵抗値を計算する

    オームの法則を使い、Arduino出力電圧5V、LEDの順電圧2V、流したい電流20mAから抵抗値を求める。

    実例:(5V – 2V) ÷ 0.02A = 150Ω。手元に150Ωがない場合は220Ωで代用することにした。
  2. STEP2. ブレッドボード上で配線する

    以下の順序で部品を接続する。極性を間違えないよう、LEDの足の長さを確認しながら作業する。

    配線手順(テキスト版)

    1. Arduinoのデジタルピン9番から、ジャンパ線をブレッドボードの1列に接続する
    2. 同じ列に抵抗(220Ω)の片端を挿す
    3. 抵抗のもう片端を、別の列に挿す
    4. その列に、LEDの長い足(アノード)を挿す
    5. LEDの短い足(カソード)を、GNDに繋がる列に挿す
    6. Arduinoの GND ピンから、ジャンパ線でその列に接続する
    実例:デジタルピン9→抵抗220Ω→LEDアノード→LEDカソード→GNDという順序で配線した。
  3. STEP3. pinMode()でピンを出力に設定する

    setup()内で、使用するデジタルピンをOUTPUTに設定する。

    実例:void setup() { pinMode(9, OUTPUT); }を記述した。
  4. STEP4. digitalWrite()とdelay()で点滅させる

    loop()内で、HIGHとLOWを交互に出力し、その間にdelay()で待機時間を入れる。

    実例:void loop() { digitalWrite(9, HIGH); delay(1000); digitalWrite(9, LOW); delay(1000); }を記述し、1秒周期での点滅とした。
  5. STEP5. アップロードして点灯を確認する

    Arduino IDEでボードとポートを選択し、スケッチをアップロードする。LEDが点滅しない場合は、抵抗の接続忘れ、LEDの極性、配線列のズレを順に確認する。

    実例:初回アップロード時にLEDが点灯しなかったため確認したところ、LEDのアノードとカソードを逆に挿していたことが原因だった(編集部想定シナリオ)。向きを直したところ正常に点滅した。

Arduino IDE自体をまだインストールしていない場合は、以下の記事で最新版の手順を確認できる。

Arduino IDEのダウンロード・インストール方法はこちらの記事で解説している

Chapter 06 — Pitfalls

06注意点・よくある誤解

!誤解1. 抵抗はあくまで念のためのオプションだ

抵抗を挟まずにLEDをArduinoの出力に直結すると、過大な電流が流れてLEDが焼き切れたり、最悪の場合Arduino本体のピンを損傷させたりする可能性がある。抵抗は省略可能なオプションではなく、LED回路における必須部品である。

!誤解2. LEDの向きはどちらでも点灯する

LEDには極性があり、アノード(長い足)とカソード(短い足)を逆に接続すると点灯しない。配線を確認してもLEDが光らない場合、まずLEDの向きを疑うのが基本的なトラブルシューティングの手順になる。

!誤解3. 抵抗値さえ守れば何個でもLEDを並列に繋いでよい

個々のLEDに適切な抵抗を用意していても、Arduino本体の1ピンあたりが出力できる電流には上限がある。多数のLEDやモーターのように電流の大きい部品をまとめて駆動したい場合は、トランジスタやFETなどを介した駆動回路を検討する必要がある。



Chapter 07 — FAQ

07FAQ

Q.ArduinoでLEDを光らせるとき、抵抗は必ず必要ですか。
A.はい、必ず必要です。LEDには決められた順電流を超える電流を流すと故障してしまう性質があります。Arduinoのデジタル出力ピンから抵抗なしでLEDに直接電源電圧をかけると、過大な電流が流れてLEDやピンを損傷させる原因になります。

Q.LEDの長い足と短い足はどちらがプラスですか。
A.長い方の足がアノード(陽極、プラス側)、短い方の足がカソード(陰極、マイナス側)です。アノードを抵抗経由でArduinoのデジタルピンに、カソードをGNDに接続するのが基本の配線です。極性を逆にするとLEDは点灯しません。

Q.抵抗値はどうやって決めればよいですか。
A.オームの法則を使って計算します。Arduinoの出力電圧(多くの場合5V)からLEDの順電圧(一般的な赤色LEDで約2V)を引いた電圧を、流したい順電流(一般的に20mA程度)で割ることで、必要な抵抗値を求められます。5Vのボードで順電圧2V・順電流20mAのLEDなら、150Ω前後が目安になります。

Q.抵抗値を大きくしすぎるとどうなりますか。
A.抵抗値を大きくすると回路に流れる電流が減り、LEDの故障リスクは下がりますが、その分LEDの明るさが暗くなります。必要な明るさとLEDの安全な動作範囲のバランスを見ながら抵抗値を選ぶことが推奨されます。

Q.digitalWrite()とanalogWrite()、LEDの制御ではどちらを使えばよいですか。
A.単純にLEDをON・OFFするだけならdigitalWrite()で十分です。LEDの明るさを段階的に変化させたい場合は、PWM(パルス幅変調)に対応したピンでanalogWrite()を使うことで、0から255の範囲で明るさを調整できます。

Q.複数のLEDを同時に光らせても問題ありませんか。
A.各LEDに個別の抵抗を用意していれば、複数のデジタルピンを使って同時に点灯させること自体は問題ありません。ただし、Arduino本体が1つのピンから出力できる電流には上限があるため、多数のLEDや電流の大きい部品を扱う場合は、トランジスタなどを介した駆動方法を検討することが推奨されます(編集部見解)。

参考文献

関連記事(内部リンク)


関連記事

特集記事

コメント

この記事へのコメントはありません。

TOP
CLOSE