PUBLIC
PRACTICEBLINK10 MIN READ

Lチカ — LED を点滅させる電子工作の「Hello, World」。配線とコードを ESP32-S3・Raspberry Pi 5 それぞれで

L チカ(LED チカチカ)は、マイコンで LED を点滅させる最初の一歩。配線・抵抗の計算・GPIO 出力・プログラムのループが一度に登場するので、ここが動けば基礎はつながっています。

  • ESP32-S3
  • Raspberry Pi 5 8GB
CONTENTSこの記事の目次

01 — PARTS

用意するもの

  • ESP32-S3 か Raspberry Pi 5(どちらでも同じ配線)
  • LED 1 個(赤がいちばん扱いやすい)
  • 抵抗 220Ω 1 本(赤 赤 茶 金)
  • ブレッドボードとジャンパワイヤ

02 — WIRING

配線

GPIO220ΩLEDGNDI ≈ 6mA3.3V
DIAGRAM

Lチカの基本配線。GPIOピン → 電流制限抵抗(220Ω) → LEDのアノード(長い足) → カソード(短い足) → GNDの順に接続します。

ボード使うピンGND
ESP32-S3 DevKitGPIO4GND ピン
Raspberry Pi 5GPIO17(物理 11 番)物理 9 番

ブレッドボードでは、抵抗と LED が「同じ 5 穴の組」に挿さらないように、それぞれ別の行に足を置きます。

03 — ESP32-S3

ESP32-S3(Arduino IDE)

ESP32-S3 は Arduino IDE(C++)でも MicroPython でも動きます。Arduino IDE では「ボードマネージャ」で esp32 を追加し、ボードに「ESP32S3 Dev Module」を選びます。

CPPblink.ino
const int LED_PIN = 4;   // GPIO4

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

書き込めないときは、BOOT ボタンを押しながら RESET を押して書き込みモードにしてから再試行します。USB-C が 2 口あるボードは「UART」と書かれた方を使う方が確実です。

MicroPython を入れてある場合は、同じ配線でこう書きます。led.value(1) が HIGH、led.value(0) が LOW です。

PYTHONmain.py(MicroPython の場合)
from machine import Pin
import time

led = Pin(4, Pin.OUT)   # GPIO4

while True:
    led.value(1)
    time.sleep(0.5)
    led.value(0)
    time.sleep(0.5)

04 — PI 5

Raspberry Pi 5(gpiozero)

PYTHONblink.py
from gpiozero import LED
from time import sleep

led = LED(17)   # GPIO17 = 物理 11 番

while True:
    led.toggle()
    sleep(0.5)

ターミナルで python3 blink.py。Ctrl+C で止めます。

05 — TROUBLESHOOT

光らないとき

  1. 01

    LED の向きを逆にしてみる(いちばん多い原因)

  2. 02

    抵抗と LED が同じ 5 穴の組に挿さっていないか確認する(ブレッドボードの内部配線)

  3. 03

    GND がボードの GND ピンに本当につながっているか確認する

  4. 04

    コードのピン番号と、実際に挿したピンが一致しているか(Pi 5 は BCM 番号と物理ピン番号が別)

  5. 05

    テスターで GPIO ピンの電圧を測る。3.3V / 0V が交互に出ていればコードは正しく、配線側の問題

06 — WATCH OUT

注意点

抵抗を省略しない

「一瞬なら大丈夫」ではありません。LED か GPIO のどちらかが傷みます。

点滅を速くしすぎると「暗く点灯」に見える

sleep を 0.01 秒以下にすると目には点滅として見えず、暗く光って見えます。これがそのまま PWM の原理です。

07 — CHECK YOURSELF

理解チェック

Q1点滅の間隔を 0.1 秒にするには?

sleep(0.5) を sleep(0.1) に変える(2 か所)。

Q2LED が「常に点灯」で点滅しない。考えられる原因は?

ループが回っていない(保存せず古いコードが動いている)、または sleep が短すぎて点滅が見えていない。