PR

ラズパイでLチカ|PythonとGPIOでLEDを点滅させる方法【XYテーブル自作 第1回】

RaspberryPi

はじめに

XYテーブル製作シリーズ 第1回

スポンサーリンク

はじめに:電子工作の第一歩、LEDを1つ光らせる

このシリーズで製作する自作XYテーブルの外観図
このシリーズのゴール:自作XYテーブル

前回(第0回)で Raspberry Pi OS のインストールを終えました。今回はいよいよ電子工作の第一歩、PythonでLEDを1つ光らせる「Lチカ」です。これができれば、GPIOの仕組み・Pythonでの制御方法・電子回路の基本が一通りつかめます。

この記事で分かること

  • LEDと抵抗のブレッドボード配線(GPIO18 → 抵抗 → LED → GND)
  • GPIO(General Purpose Input Output)を「出力」として使うとはどういうことか
  • nanoled.py を作り、RPi.GPIO でLEDを1秒ごとに点滅させるコード(ZIP配布)
  • GPIO.setmode / setup / output それぞれの意味
  • 「光らない」ときのよくある配線ミス

スポンサーリンク

用意するものとLEDの配線

LEDには必ず抵抗を入れてください。直接つなぐと過電流でLEDやGPIOが故障します。

LEDの足の見分け方と接続

LEDの長い足がプラス(アノード)、短い足がマイナス(カソード)であることを示す図
長い足=プラス、短い足=マイナス
  • 長い足(アノード/+):GPIO18(物理ピン12)→ 抵抗 → LEDの長い足
  • 短い足(カソード/−):LEDの短い足 → GND(物理ピン6)
GPIO18から抵抗を経てLED、LEDからGNDへ戻るLチカ回路の接続図
Lチカ回路の接続

GPIOとは

GPIO は General Purpose Input Output の略で、Raspberry Pi のピンを「電気のON/OFF」で制御できる機能です。今回はピンを「出力(Output)」として使い、HIGH(電気を流す)でLED点灯、LOW(止める)で消灯させます。


スポンサーリンク

PythonでLEDを点滅させるコード(led.py)

Raspberry Pi でターミナルを開き、nano(Raspberry Pi標準のテキストエディタ)で led.py を新規作成します。

nano led.py

開いたら次のコードを入力します。

import RPi.GPIO as GPIO
import time

LED_PIN = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)

try:
    while True:
        GPIO.output(LED_PIN, GPIO.HIGH)
        time.sleep(1)
        GPIO.output(LED_PIN, GPIO.LOW)
        time.sleep(1)

except KeyboardInterrupt:
    GPIO.cleanup()

入力したら Ctrl + XYEnter で保存して終了します。

⬇ led.py をダウンロード(ZIP)

スポンサーリンク

実行とコード解説

ターミナルで次を実行します。

python3 led.py

1秒ごとにLEDが点滅すれば成功です。終了は Ctrl + C

コードの意味(今は「そういうもの」でOK)

  • GPIO.setmode(GPIO.BCM) … GPIO番号(BCM番号)で制御する設定
  • GPIO.setup(LED_PIN, GPIO.OUT) … 18番ピンを出力モードに設定
  • GPIO.output(LED_PIN, GPIO.HIGH) … 電気を流す(LED点灯)
  • GPIO.output(LED_PIN, GPIO.LOW) … 電気を止める(LED消灯)
  • except KeyboardInterrupt: GPIO.cleanup() … Ctrl+C で終了したときにピンの状態を戻す

スポンサーリンク

よくある失敗

  • LEDの向きが逆(長い足・短い足を逆に挿している)
  • 抵抗を入れていない
  • GNDにつながっていない

光らない場合、ほとんどが配線ミスです。ブレッドボードの列(縦の穴が内部でつながっている)も確認してください。


スポンサーリンク

まとめと次回予告

これでGPIO制御・Pythonからの出力操作・電子回路の基本が体験できました。次回・第2回では、モータードライバー「A4988」を使ってステッピングモーターを回します。

次に読む記事

⚙️ 次回はこちら(第2回) ラズパイでステッピングモーターを回す方法|A4988の配線とPython制御・Vref調整 A4988の結線とVref調整、STEPパルスでモーターを回すコードまで。 🗺️ 全体像 自作XYテーブルの全手順ロードマップ|Raspberry Pi+ステッピングモーターで2軸制御 第0回〜第11回の全工程をまとめたロードマップ。

スポンサーリンク

よくある質問(FAQ)

QGPIO18(BCM)は物理ピンだと何番ですか?

A物理ピン12番です。GPIO.setmode(GPIO.BCM) を使うとコード上は「18」と書きます。GPIO.setmode(GPIO.BOARD) にすると物理ピン番号(12)で書きます。本シリーズはBCMで統一しています。

Q抵抗は何Ωを使えばいいですか?

A330Ω〜1kΩが目安です。抵抗値が大きいほどLEDは暗くなります。赤色LEDで3.3V駆動なら 220〜330Ω 程度が明るく点灯します。手持ちがあれば470Ωや1kΩでも問題なく光ります。

QRPi.GPIO がインストールされていないと言われます。

ARaspberry Pi OS には標準で入っていますが、無い場合は sudo apt install python3-rpi.gpio でインストールします。Bookworm(2023年以降)では RPi.GPIO が動かないことがあり、その場合は rpi-lgpio か gpiozero を使います。

QLEDが点きっぱなし/消えっぱなしになります。

A点きっぱなしはLEDの向きが合っていて配線は正しいがコードが HIGH のまま、消えっぱなしは向きが逆かGND未接続、抵抗の差し込み位置がずれている、などが原因です。まずLEDを裏返して試すと切り分けられます。

Qプログラムを止めたらGPIOがHIGHのまま残りました。

A強制終了などで GPIO.cleanup() が呼ばれないと、ピンの状態が残ります。次回起動時に setmode/setup し直せば上書きされます。明示的に戻したいときは python3 -c “import RPi.GPIO as GPIO; GPIO.cleanup()” を実行します。


スポンサーリンク

XYテーブル製作シリーズ(全12回)

補足記事

第1.5回・補足 A4988の電流制限(Vref)調整方法|焼損を防ぐ計算式とテスターでの設定手順 モーターを回す前に必ずやる A4988 の電流調整。 🔀 番外編 L6470が動かない原因|A4988との違いとSPI通信・デイジーチェーンの罠 高機能ドライバ L6470 を A4988 と同じ感覚で使ってハマった話。 🗺️ 全体像 自作XYテーブルの全手順ロードマップ|Raspberry Pi+ステッピングモーターで2軸制御 第0回〜第11回の全工程をまとめたロードマップ。

ニンジン🥕アイコン

Follow me on X

本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕

@ninjin_py_vba をフォロー

この記事が役に立ったら、シェアしてもらえると嬉しいです🥕

Xでポスト はてブ LINE Pocket

PROJECT LOG — SERIES INDEX
スポンサーリンク

シリーズ記事一覧

電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。


超音波距離センサーHC-SR04をRaspberry Pi Picoで使う|仕組み・配線・精度検証
.uds1-block { position: relative; overflow: hidden; border-radius: 12px; border: 1px solid #f0cba8; background: linear-g…
今週の注目ガジェット〜09/07週〜|電子工作・自作向け新製品まとめ(TickrCast/Radxa Linkr ほか)
ニンジンのガジェット通信 09/07週。ESP32-P4の自作気象モニター、極小IP-KVM「Radxa Linkr」、ESP32のDINレール型PLC、LTE開発キットなど、電子工作で使えそうな新製品5つを解説。
サーボモータの角度をタクトスイッチで可変|OLED(SSD1306)に現在角度をリアルタイム表示
Raspberry Pi Pico 2W×MG996RにタクトスイッチとOLED(SSD1306)を追加。ボタンで角度を可変しながら現在角度をリアルタイム表示するMicroPython実装を、framebufの文字拡大やサーボの遊び対策まで実機ベースで解説します。
MG996RサーボモーターをRaspberry Pi Pico 2Wで動かす:PWM制御とキャリブレーション実践
MG996RサーボモーターをRaspberry Pi Pico 2Wで動かす方法を解説。公称180度のはずが実測198度だった個体差の原因究明から、ホーンのズレ補正、タクトスイッチでの角度制御まで実機検証の様子を紹介します。
Tapo P110Mの消費電力をExcelレポート化する【年次集計・電気代試算・セキュリティ判断編】
FastAPI+openpyxlでTapo P110Mの消費電力をExcelレポート化。15秒間隔の生ログを日次集計する設計や、31円/kWhでの電気代試算、外部公開を見送った理由まで解説します。

コメント