Raspberry Pi の GPIO、どのピンがどれ?──40ピン配置の読み方と 3.3V/5V の落とし穴
Raspberry Pi の40ピンには「物理ピン番号」と「BCM(GPIO)番号」の2系統があり、ここが最初の混乱ポイント。電源・GND の位置と、GPIO は3.3Vロジック=5Vを直接入れると壊れるという落とし穴を、ピン配置の読み方から整理します。
Raspberry Pi で電子工作を始めると、最初にぶつかる壁が 「あの40本のピン、どれがどれ?」 です。チュートリアル通りに配線したつもりが光らない、最悪の場合ピンが壊れた──その原因のほとんどは、ピン番号の数え方と電圧(3.3V / 5V)の取り違えにあります。
「3番ピンって書いてあるけど、GPIO3 じゃないの?」「5V って書いてあるピンに信号線つないでいい?」と迷ったことがある方に向けて、40ピンの読み方を根本から整理します。
結論を先に書きます。
Raspberry Pi のピンには「物理ピン番号(1〜40)」と「BCM(GPIO)番号」という別々の数え方が2系統あり、これは一致しません。 そして GPIO は 3.3V ロジック専用で、5V を直接つなぐとピンが壊れます。この2点さえ押さえれば、配線ミスの大半は防げます。
ピン番号には2つの数え方がある
ここが最大の混乱ポイントです。同じ1本のピンに、2種類の名前が付いています。
| 数え方 | 何を指すか | 例 |
|---|---|---|
| 物理ピン番号 | ヘッダ上の位置(1〜40の通し番号) | 「3番ピン」 |
| BCM(GPIO)番号 | チップ内部の信号名 | 「GPIO2」 |
たとえば 物理ピンの3番は、BCM では GPIO2 です。「3番」と「GPIO3」はまったくの別物。チュートリアルが「GPIO18 に LED をつなぐ」と書いていたら、それは物理ピンの12番を指しています。
40ピンは 2列×20行に並んでいて、物理番号は左上を1番として、左→右→次の行とジグザグに振られます(左列が奇数、右列が偶数)。一方 BCM 番号は位置と無関係に飛び飛びに並ぶので、暗記は不可能です。GPIO を整える のように、物理番号と BCM 番号を並べて表示できる図で確認するのが確実です。
電源ピンの位置と役割(3.3V・5V・GND)
40本すべてが自由に使える信号線ではありません。固定の電源・GND ピンがいくつか含まれています。
| 種類 | 役割 | 代表的な物理ピン |
|---|---|---|
| 3.3V | センサーなど小さな部品の電源。GPIO 信号の基準電圧でもある | 1番・17番 |
| 5V | USB 給電をそのまま出す。5V で動く機器用 | 2番・4番 |
| GND | 0V の基準(マイナス側)。回路に必ず1本つなぐ | 6番・9番・14番 ほか計8本 |
GND は8本ありますが、どれを使っても同じです。配線の取り回しで一番近い GND を選んで構いません。
そして電源で絶対に間違えてはいけないのがこれです。
5V ピンと GPIO ピンを直結してはいけない。
5V ピンは USB から来る 5V をそのまま出すだけのピンで、信号のやり取りには使いません。一方 GPIO は次に説明する通り 3.3V でしか動かないため、5V を流し込むと壊れます。
GPIO は 3.3V ロジック──5V を入れると壊れる
Raspberry Pi の GPIO は 3.3V ロジックです。つまり:
- HIGH(オン)= 3.3V
- LOW(オフ)= 0V
これが、Arduino(多くは5Vロジック)から来た人がやりがちな事故の元です。**「5V センサーの出力を GPIO に直接つなぐ」**と、3.3V までしか想定していない入力ピンに 5V がかかり、チップが焼けるおそれがあります。
5V の信号を GPIO で受けたいときは、レベル変換が必要です。
- 簡単なのは 抵抗による分圧(出力→入力方向のみ)
- 双方向なら レベル変換モジュールを1個挟む
「とりあえずつないで動かす」が一番危険な相手だと覚えておいてください。どのピンが3.3V系で、どのピンが5Vなのかは、配線前に GPIO を整える で色分けして確認しておくと事故が激減します。
入力・出力、プルアップ/プルダウン
GPIO は1本ずつ 入力(読む) か 出力(電圧を出す) かをプログラムで切り替えます。
- 出力:LED を光らせる、リレーを動かすなど。HIGH で 3.3V、LOW で 0V を出す
- 入力:ボタンやセンサーの状態を読む
入力で要注意なのが、何もつないでいないピンは値が定まらないこと(フローティング)。これを防ぐのが プルアップ/プルダウン抵抗です。
- プルアップ:普段は HIGH に固定し、ボタンを押すと LOW になる
- プルダウン:普段は LOW に固定し、ボタンを押すと HIGH になる
Raspberry Pi は内部にプルアップ/プルダウン抵抗を持っていて、プログラムから有効化できるので、初心者はまずこれを使えば外付け抵抗なしで安定します。
PWM・I2C・SPI・UART の代表ピン
汎用 GPIO の一部は、特定の通信機能を割り当てられた「予約席」になっています。代表的なものは次の通りです。
| 機能 | 用途 | 代表ピン(物理 / BCM) |
|---|---|---|
| ハードウェア PWM | LED の明るさ・モーター速度の調整 | 12番 / GPIO18 |
| I2C | センサー類との2本線通信 | 3番=GPIO2(SDA)・5番=GPIO3(SCL) |
| SPI | 高速な周辺機器通信 | 19番=MOSI・21番=MISO・23番=SCLK |
| UART | シリアル通信(コンソール等) | 8番=TXD(GPIO14)・10番=RXD(GPIO15) |
これらのピンも、機能を使わなければ普通の GPIO として入出力に使えます。逆に「I2C のセンサーを使いたい」なら、空いている GPIO ではなく GPIO2 / GPIO3 に挿す必要があるのがポイント。どのピンが何の予約席かは位置だけでは分からないので、ここでも図で確認するのが早道です。
Lチカの基本配線(なぜ抵抗を入れるのか)
電子工作の「Hello World」が Lチカ(LED チカチカ) です。最小構成はこうです。
- GPIO ピン(例:物理12番 / GPIO18)から LED の アノード(+・足が長い側) へ
- LED の カソード(−) から 抵抗 を経由して
- GND(例:物理6番)へ戻す
ここで抵抗を必ず入れる理由は、LED に流れる電流を制限するためです。LED は抵抗をほとんど持たないため、3.3V を直接かけると過大な電流が流れ、LED が焼けるか、GPIO 側に負担がかかる。一般的な赤色 LED なら 220Ω〜330Ω 程度を直列に入れておけば安全です。
配線できたら、プログラムで GPIO18 を「出力」に設定し、HIGH / LOW を交互に切り替えれば点滅します。
安全のコツと、実際のピン配置を確認するには
壊さないためのチェックは、通電する前にやるのが鉄則です。
- 配線を指差し確認:物理番号と BCM 番号を取り違えていないか
- 3.3V 系を守る:5V を GPIO に直結していないか/5V 信号にレベル変換を入れたか
- 抵抗を入れたか:LED やセンサーに電流制限が必要ないか
- GND を1本つないだか:回路は GND に戻って初めて成立する
そして配線図を頭の中だけで組み立てると、必ずどこかでピン番号を取り違えます。GPIO を整える を開けば、40ピンを 電源 / GND / GPIO / I2C / SPI / UART で色分けした図が出て、ピンをクリックすると:
- 物理ピン番号と BCM(GPIO)番号の両方
- そのピンの 役割(電源か、GND か、汎用か)
- 代替機能(I2C SDA、SPI MOSI、PWM など)
- 3.3V / 5V の注意書き
がその場で分かります。「チュートリアルの GPIO18 って、結局どの位置?」を毎回ここで突き合わせれば、配線ミスはほぼゼロにできます。
関連ツールとのシナジー
- ピンの位置と役割をひと目で確認するなら → GPIO を整える(物理番号 ⇔ BCM 番号、色分け表示)
- Raspberry Pi B+ / 2 / 3 / 4 / 5 / Zero(W) など 40ピンモデル共通で使えます
- 「3番ピン」「GPIO2」のどちらの表記のチュートリアルでも、図の上で対応づけながら読み進められます
まとめ
- ピン番号は 物理番号(1〜40) と BCM(GPIO)番号 の2系統。一致しない
- 例:物理3番 = GPIO2。「3番」と「GPIO3」は別物
- 3.3V・5V・GND は固定の電源ピン。GND は8本あり、どれでも可
- GPIO は 3.3V ロジック。5V を直結すると壊れる=必要ならレベル変換
- 入力ピンは プルアップ/プルダウンで値を安定させる(内蔵抵抗が使える)
- I2C は GPIO2/3、SPI・UART・PWM にも代表ピンの指定がある
- Lチカは 抵抗で電流を制限してから GND へ戻すのが基本
- 通電前の指差し確認と、GPIO を整える での突き合わせが事故防止に効く
ピン番号の数え方と3.3V の壁さえ最初に押さえておけば、Raspberry Pi の電子工作は「壊すのが怖い」から「試すのが楽しい」に変わります。