部品 · 読了まで3分

LEDとは?しくみとArduinoへのつなぎ方

LEDとは何か、どう動くのか、アノードとカソードはどう見分けるのか。LEDの抵抗の計算、色ごとのLEDの電圧、RGB LED、Arduinoへの配線を解説します。

LED(Light Emitting Diode、発光ダイオード)は、電流が流れると光を出す半導体です。スマートフォンの画面や信号機から、車のヘッドライト、家の電球まで、LEDはあらゆるところで使われています。電子工作でも、ほとんどの人の最初のプロジェクトはLEDを光らせることです。デジタル出力、電流の制限、タイミングを一度に学べるからです。

5 mm LED
さまざまな色の5 mm LED。長い足がプラス(アノード)、短い足がマイナス(カソード)です。

LEDはどう動く?

LEDはダイオードの一種で、電流を一方向にしか流しません。正しい向きにつなぐと、半導体の中の電子がエネルギーを失い、光(光子)を出します。光の色は半導体の材料で決まります。そのため、赤、緑、青のLEDはそれぞれ異なる電圧で動作します。

LEDのプラスとマイナスの足はどう見分ける?

  • 長い足がアノード(+)、短い足がカソード(−)です。
  • LEDのふちが平らに欠けている側がカソードです。
  • LEDの中をのぞくと、旗のような形の大きい部分がたいていカソードにつながっています。
  • 逆向きに差したLEDは光りませんが、壊れることもありません。向きを変えてもう一度試してください。

LEDを抵抗なしでつないではいけない理由

LEDは自分で電流を制限しません。順方向電圧を少し超えるだけで電流が急激に増え、LEDは数秒で壊れることがあり、Arduinoのピンも傷むおそれがあります。そのため、LEDには必ず直列抵抗をつなぎます。抵抗値は次の式で求めます。

R =(電源電圧 − LEDの電圧)/ LEDの電流

たとえば、5 VのArduino、赤色LED(約2 V)、15 mAの場合:R = (5 − 2) / 0.015 = 200 Ω。最も近い標準値の220 Ωを使います。この計算と実際の電流をすぐに確認するには、LED抵抗計算ツールを使ってください。

色ごとのLEDの電圧

LEDの色標準的な順方向電圧(Vf)5 Vでのおすすめの抵抗(15 mA)
赤1.8〜2.0 V220 Ω
オレンジ / 黄1.9〜2.1 V220 Ω
緑(従来型)2.0〜2.2 V200〜220 Ω
緑(純緑)3.0〜3.2 V120〜150 Ω
青 / 白3.0〜3.3 V120〜150 Ω
赤外線(IR)1.2〜1.5 V240〜270 Ω

すべての色の標準値と最大値はLED電圧表で確認できます。

LEDをArduinoにつなぐ

  1. Arduinoのデジタルピン(例:9)を220 Ωの抵抗につなぎます。
  2. 抵抗のもう一方の端をLEDの長い足(アノード)につなぎます。
  3. LEDの短い足(カソード)をArduinoのGNDピンにつなぎます。
  4. コードではpinMode(9, OUTPUT)でピンを出力にし、digitalWriteで点けたり消したりします。
C++ (Arduino IDE)
1const int LED = 9;
2
3void setup() {
4  pinMode(LED, OUTPUT);
5}
6
7void loop() {
8  // Yavaşça parlat / fade in (PWM, 0-255)
9  for (int i = 0; i <= 255; i++) { analogWrite(LED, i); delay(4); }
10  // Yavaşça söndür / fade out
11  for (int i = 255; i >= 0; i--) { analogWrite(LED, i); delay(4); }
12}
LEDの明るさを調整するには、PWMピン(Unoでは~の印がある3、5、6、9、10、11)とanalogWriteを使います。上のコードはLEDに「呼吸する」ような効果を与えます。

RGB LEDとは?

RGB LEDは、赤、緑、青の3つのLEDを1つのパッケージに収めたものです。それぞれの色の明るさをPWMで個別に調整すると、何千もの色を作れます。赤 + 緑 = 黄、緑 + 青 = シアン、3色すべて = 白です。RGB LEDにはカソードコモン(共通の足をGNDへ)とアノードコモン(共通の足を5 Vへ)があり、アノードコモンではコードのロジックが逆になります。

RGB LED

アドレス指定可能なLED(WS2812B、NeoPixel)

WS2812BのようなスマートLEDには、それぞれ小さなドライバーチップが入っています。そのため、何百個ものLEDを1本のデータピンで制御し、1つずつ別の色で光らせることができます。LEDテープでは各LEDが白の最大輝度で約60 mAを消費するため、長いテープには別の5 V電源が必要です。

WS2812B
WS2812B
WS2812Bリング
WS2812Bリング
8x8 NeoPixelマトリクス
8x8 NeoPixelマトリクス

よくある失敗

  • 複数のLEDを1つの抵抗で並列につなぐ:電流は均等に分かれません。LEDごとに抵抗をつけてください。
  • Arduinoのピンから電流を流しすぎる:1ピンあたり20 mA、ボード全体で200 mAを超えないようにしてください。
  • PWMに対応していないピンでPWMを試す:明るさは変わらず、LEDは点くか消えるかだけです。
  • 3.3 Vのボード(ESP32、Pico)で青や白のLEDに大きな抵抗を使う:LEDがとても暗くなります。
高出力LED(1 W以上)を長時間じっと見ないでください。また、Arduinoのピンで直接駆動せず、定電流ドライバーを使ってください。

よくある質問

LEDは何ボルトで動きますか?

色によって異なります。赤は約2 V、青と白は約3.2 Vが必要です。ただし、その電圧を直接かけるのではなく、電源電圧を抵抗と一緒にかけます。抵抗が電流を制限します。

LEDには220 Ωと330 Ωのどちらを使うべきですか?

5 Vなら、赤、黄、緑のLEDにはどちらも安全です。220 Ωはより明るく(約13 mA)、330 Ωは少し暗くなりますが電流は少なくなります(約9 mA)。

LEDは直列につなげますか?

はい、LEDの電圧の合計が電源電圧より低ければつなげます。たとえば白色LED3個(3 × 3.2 V = 9.6 V)は、適切な抵抗を使えば12 Vで動かせます。

LEDがとても暗いのはなぜですか?

pinMode(pin, OUTPUT)の行が抜けているか、抵抗が大きすぎるか、3.3 Vのボードで青や白のLEDを使っている可能性があります。小さい抵抗を使い、コードを確認してください。

LEDが壊れているかどうかはどうすればわかりますか?

マルチメーターをダイオードモードにしてLEDの足に当てます。正常なLEDは正しい向きでかすかに光り、画面に順方向電圧が表示されます。逆向きでは値が表示されません。

全プロジェクトを見る
LEDの点滅
#1初級

LEDの点滅

電子工作の第一歩は、1個のLEDを点けたり消したりすることです。Arduinoで短い間隔で点灯と消灯を繰り返すと、LEDが素早く点滅します。ボードが光を制御する仕組みを最もシンプルな形で確かめ、これから取り組むプロジェクトの基礎を身につけます。

4.6(188)
1127
信号機
#3初級

信号機

毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

4.8(131)
397
Knight Rider風LED
#6中級

Knight Rider風LED

Knight Riderでおなじみの、光が左右に往復する動きです。6個のLEDの上を光の点が端から端へ進み、折り返します。Arduinoが各LEDを10分の1秒ずつ点灯させ、端に着くたびに向きを変えて往復し続けます。装飾用の照明や警告灯作りの第一歩にぴったりです。

4.8(106)
202
RGB LEDの使い方
#39初級
プレミアム

RGB LEDの使い方

1つのLEDに3つの色が入っています。RGB LEDが赤、緑、青の順に、それぞれ0.5秒点灯して0.5秒消灯し、このサイクルを繰り返します。ArduinoにRGB LEDを1つと抵抗を3つ接続するだけです。色とりどりの光を使うプロジェクトを、手軽に始められます。

4.9(73)
98
RGB LEDで滑らかに色を変える
#40初級
プレミアム

RGB LEDで滑らかに色を変える

1つのRGB LEDが赤から緑、緑から青、そして再び赤へとゆっくり変わり、虹色のサイクルを繰り返します。1回の色の変化には約2.5秒かかり、色が混ざることで、その間に黄色、ターコイズ、紫が自然に現れます。光が滑らかに暗くなったり明るくなったりする様子を、自分の目で確かめられます。

4.8(58)
76
WS2812B LEDテープの使い方
#69中級
プレミアム

WS2812B LEDテープの使い方

1つずつ自由に色を変えられるスマートLEDテープを使ってみます。Arduinoが最初の5個のLEDを赤く点灯し、1秒後に残りの5個を青く点灯します。その後すべて消灯し、最初から繰り返します。1本の配線で何十個ものLEDを個別の色にするための第一歩です。このようなテープは、装飾用のライトや部屋の照明にも使われています。

4.8(54)
70
ESP32のPWMでLEDをフェード
#110初級

ESP32のPWMでLEDをフェード

LEDの明るさを0から最大へ、最大から0へと滑らかに変化させます。Arduinoと同じようにanalogWrite()でPWMを制御します。ESP32 Arduino Core 3.0+では同じ構文がそのまま使えます。ピンの定義とpinMode、analogWriteだけで実現できます。

4.8(36)
54
Raspberry Pi PicoのPWMでLEDをフェード(呼吸のような明滅)
#160初級

Raspberry Pi PicoのPWMでLEDをフェード(呼吸のような明滅)

LEDを単に点滅させるだけでなく、呼吸するように明滅させます!Raspberry Pi PicoのPWM(パルス幅変調)を使い、スリープ中のMacBookのランプのように、明るさをゆっくり上げてからゆっくり下げます。machine.PWMクラス、duty_u16()(0–65535の16ビットの明るさ)、PWM周波数(freq(1000)で1秒間に1000回オン・オフし、ちらつきを感じさせない)、range()による段階的なループ(増加と減少)、デジタルピンからのアナログのような出力を学びます。PWMはRGBの混色やモーターなどに使われる、組み込み開発の基本技術です。

0.0(0)
4