ボタンを押しても反応しない。
コードを書き換えても何も起きない。
そんなとき、最初に確認すべきなのはLEDです。
理由はシンプルです。
LEDが光らない状態では、ほかの確認ができないからです。
このページでは、
「LEDが確実に光る」ことだけに集中します。
まずは「LEDが光るだけ」の状態を作る
ここでは、ボタンや条件分岐は一切使いません。
LEDが一定間隔で点いたり消えたりする。
それだけが確認できればOKです。
※ 内蔵LEDは使いません。
Pico / Pico W の違いを避けるため、外付けLEDを前提にします。
最小コード(LED点滅)
from machine import Pin
import time
led = Pin(15, Pin.OUT)
while True:
led.value(1)
print("LED ON")
time.sleep(1)
led.value(0)
print("LED OFF")
time.sleep(1)
このコードで確認するのは、次の2点だけです。
- LEDが1秒ごとに点灯・消灯するか
- シリアルに「LED ON / OFF」が表示されるか
どちらも確認できれば、出力はOKです。
LEDが光らないときのチェックポイント
LEDが光らない場合でも、
ここで原因を一つに決めつける必要はありません。
上から順番に、ひとつずつ確認していきましょう。
- LEDの向きは合っているか(極性)
- 抵抗は入っているか
- LEDはGNDにつながっているか
- コードのピン番号と実際の配線は一致しているか
- Pin.OUT になっているか
- GNDは共通になっているか
一つずつ潰していけば、
必ずどこかで「おかしい場所」が見つかります。
筆者がハマった「LEDが光らない」実例3つ
ここからは、が実際にやらかした例です。
どれも「初心者あるある」ですが、気づくと一瞬で解決します。
例1:LEDを逆向きに刺していた(極性ミス)
LEDは向き(極性)があります。逆向きだと、コードが正しくても光りません。
チェック:長い足をGPIO側(+側)、短い足を抵抗→GND側につなぐ

例2:GPIO番号が「配線」と「プログラム」でズレていた
配線はGPIO15に刺しているのに、コードはGPIO16になっていた…みたいなズレです。
このズレはかなり多いです。
チェック:配線したGPIO番号と、Pin(15, Pin.OUT) の数字が一致しているか

例3:ブレッドボードの青いラインを信じたが、GNDに接続していなかった
ブレッドボードの「-(青いライン)」は便利ですが、
青いライン自体が自動でGNDになるわけではありません。
青いラインにLEDのGND側をつないだつもりでも、
その青いラインをPicoのGNDに接続していなければ、回路としては未完成です。
チェック:青いラインとPicoのGNDが、ジャンパ線で確実につながっているか
下図はLEDのカソードから抵抗を介してGNDに繋いだつもりで繋がっていなかった事例です。
青色の手書きした部分をジャンパ線で繋がなくてはなりません。

この3つは、「LEDが光らない原因」の上位常連です。
もし該当しそうなら、ここだけ先に見直してみてください。
ここまで確認できたら
LEDが安定して光るようになったら、
「出力は問題ない」と判断してOKです。
次は、
ボタンが本当に反応しているかを確認します。
LEDは、これから
「確認用インジケータ」として使い続けます。
焦らず、確実に進めていきましょう。
目次:<電子工作が動かないとき>
前:【#0】基本編 / 次:【#2】入力編
.png)


コメント