
初めに:”内蔵LEDが光らない(´・ω・`)”
Arduino IDEのコンソールに「Done uploading(書き込み完了)」の文字。 「よし成功だ!」と思ったのも束の間、手元のESP32の内蔵LEDがピクリともしない……。
この「プログラムの転送はできているのに動かない」という状況、実はESP32の「ボードごとの個性の強さ」が原因であることがほとんどです。
チェックすべきポイントを、可能性が高い順に3つに絞って解説します。
三大原因
- ピン番号の不一致
- 実行のトリガーがなされていない
- 内蔵LEDの仕様が違う
1. 【原因:ピン番号の不一致】その「8番」は本当にLEDの場所?
ESP32は種類が非常に多く、モデルによって内蔵LEDがつながっているピン(GPIO)がバラバラです。
- 代表的なピン番号:
2,8,13,21など。 - よくあるミス: ネットで見つけたサンプルコードの「2」をそのまま使っているが、自分のボードは「8」だった、というパターン。
解決策:ピン番号を「スキャン」して特定する
仕様書を読み解くのが確実ですが、「片っ端から光らせてみる」というのも、一番手っ取り早い方法です。以下のコードを書き込んで、LEDがチカッとした瞬間のシリアルモニタの数字を確認しましょう。
/* ESP32 内蔵LED特定スキャナー(安定版)
ツクモログ:トラブルシューティング用
*/
// 内蔵ledによく使われるピン
int probePins[] = {2, 5, 8, 12, 13};
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("\n--- Scan Start ---");
}
void loop() {
int numPins = sizeof(probePins) / sizeof(int);
for (int i = 0; i < numPins; i++) {
int p = probePins[i];
Serial.printf("Testing GPIO %d...\n", p);
pinMode(p, OUTPUT);
digitalWrite(p, HIGH); // 点灯
delay(3000);
digitalWrite(p, LOW); // 消灯
delay(500);
}
Serial.println("--- Cycle End ---");
delay(2000);
}実行後、シリアルモニタにチェック中のピン番号などが表示されます。
12番付近で変な英語のログが出て止まることがありますが、それは仕様なので気にせず、それまでに光った番号を確認してください。通常基板なら2か8なので、そこまでで特定できているはずです。
2. 【原因:実行のトリガー】リセットボタン(EN/RST)を押していない
書き込みが終わった直後、プログラムが自動で開始されないボードがたまにあります。
- 症状: 書き込み直後は無反応だが、特定の操作で動き出す。
- 対処法: ボード上にある「EN」または「RST」と書かれたボタンをポチッと一回押してください。
- これでESP32が再起動し、今書き込んだばかりのプログラムが先頭から実行されます。

3. 【原因:LEDの仕様】実は「普通のLED」じゃないかも?
最近の多機能な小型ボード(ESP32-C3やS3の一部など)では、単純な digitalWrite では制御できないLEDが載っていることがあります。
- フルカラーLED(NeoPixel/WS2812)の場合: 表面に小さな黒い四角形があり、中に黄色い丸が見える素子が載っているなら、それは「通信」で色を指定するタイプのLEDです。この場合、専用のライブラリ(Adafruit NeoPixelなど)を使わないと1ミリも光りません。
- 負論理(Active Low)の場合: 「HIGHで点灯」ではなく「LOWで点灯」する回路になっているボードもあります。この場合、プログラムを書き換えて
HIGHとLOWを逆にしてみると、ずっと消えていたLEDが光り出すことがあります。
まとめ:自分のボードの「正解」をメモしよう
「書き込み成功=動作成功」とならないのが、ハードウェア制御の難しくも面白いところです。
一度自分のボードで「どのピンが正解か」が分かったら、ボードの裏側に「LED:8」などと書いておくのが、未来の自分への一番のプレゼントになります。
(個人的には、内蔵LEDくらいはピンを統一してほしいものです。)
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero
関連記事
環境構築・ESP32のセットアップからLチカまで
【Arduino IDE】ESP32の開発環境セットアップ
ESP32の開発環境をArduino IDEで構築する手順を徹底解説!最新のUSB Type-C搭載ボード(ESP32-C3など)に対応し、ボードマネージャーの設定から「Lチカ」成功までをステップバイステップで紹介します。初心者でも迷わず進められるよう、データ転送用ケーブルの注意点やピン番号の指定方法も網羅しました。