メインコンテンツへスキップ

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制御や通信まで幅広く応用でき、電子工作の基礎スキルとして習得しておく価値があります