GPIO概要
🔌 はじめに
GPIO(General Purpose Input/Output)は、マイコンやシングルボードコンピュータ(例:Raspberry Pi)などに搭載される汎用入出力ピンのことです。
電子部品やセンサー、LED、スイッチなどと直接やり取りできるため、電子工作や組み込みシステム開発の基礎的なインターフェースとして広く使われています。
🧩 GPIOの概要
基本的な役割
-
入力モード: 外部からの信号(ON/OFFやHIGH/LOW)を読み取る
-
例:ボタンが押されたかどうかを検知
-
-
出力モード: 外部に信号を送る
-
例:LEDを点灯させる、モーターを回す
-
特徴
-
汎用性: 用途を限定しない(I²CやSPIなど特定の通信にも割り当て可能な場合あり)
-
低レベル制御: 電圧レベルの制御・読み取りを直接行う
-
プログラムから操作可能: C言語やPythonなどのコードで制御できる
⚙️ 動作原理
電圧レベル
-
HIGH: 論理値1(例:3.3Vまたは5V)
-
LOW: 論理値0(例:0V)
モード設定
-
入力モード(IN)
-
出力モード(OUT)
-
プルアップ/プルダウン(内部抵抗で電位を安定化)
プルアップ抵抗を有効にすると、入力ピンはデフォルトでHIGHになり、スイッチを押したときにLOWになるような回路が組めます。
🛠️ 主な用途例
-
LEDやブザーの制御(出力)
-
ボタン・センサーの信号読み取り(入力)
-
サーボモーターの角度制御(PWM出力)
-
通信(I²CやSPI、UARTピンとして利用可能な場合)
📌 実装例(Raspberry Pi + Python)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # ピン番号の指定方法(BCM方式)
GPIO.setup(18, GPIO.OUT) # GPIO18を出力モードに設定
for _ in range(5):
GPIO.output(18, GPIO.HIGH) # LED点灯
time.sleep(0.5)
GPIO.output(18, GPIO.LOW) # LED消灯
time.sleep(0.5)
GPIO.cleanup() # ピン設定のリセット
🧭 注意点
-
電圧の上限: 3.3V仕様のGPIOに5Vを入力すると故障する
-
電流制限: 直接大きな負荷を駆動せず、トランジスタやリレーを介する
-
ESD耐性: 静電気による破損を防ぐため、取り扱いは慎重に
GPIOはPCのUSBポートのような保護回路が十分でない場合が多く、誤配線で簡単に破損します。電圧・電流値の確認は必須です。
🎯 まとめ
GPIOは、ハードウェアとソフトウェアを直接つなぐ重要なインターフェースです。
単純なON/OFF信号から、PWM制御や通信まで幅広く応用でき、電子工作の基礎スキルとして習得しておく価値があります