xmit & recv blog Engineering/Programing/English/Others

GPIOの基礎知識

engineering


スポンサーリンク

GPIOとは

GPIO (General Purpose Input/Output) は、マイコンやシングルボードコンピュータ (SBC) に備わる汎用の入出力ピンであり、さまざまなデバイスと接続して制御するために使用されます。GPIOピンを利用することで、LEDの点灯やボタン入力の読み取り、センサとの通信など、多くの機能を実現できます。

GPIOの特徴

  • デジタル入力/出力が可能
  • プログラムで制御可能
  • 外部デバイスとのインターフェースとして活用
  • 高・低の2状態 (High: 1, Low: 0) を持つ
  • 一部のGPIOは追加機能 (PWM, I2C, SPI, UART など) を持つ

GPIOは組み込み開発の基本となる重要な要素であり、電子回路とのインターフェースとして活用されます。

GPIOの基本動作

GPIOピンには、主に以下の2つのモードがあります。

入力モード (Input)

GPIOを入力モードに設定すると、外部からの信号を読み取ることができます。たとえば、スイッチやセンサからの信号を検出するために使用されます。

  • プルアップ/プルダウン抵抗: プルアップ抵抗とプルダウン抵抗は、ハードウェアの実装として用意される場合と、マイコン内部で設定可能な場合があります。プルアップは入力ピンをHIGHに維持し、プルダウンはLOWに維持することで、浮動状態 (フローティング) を防ぎ、安定した信号を取得できます。

出力モード (Output)

GPIOを出力モードに設定すると、信号を外部に出力できます。LEDの点灯制御やモータ駆動などに使用されます。

  • HIGH (1): ピンが高電圧状態 (通常 3.3V または 5V) 。HIGHの電圧レベルはマイコンやボードの仕様によって決まり、一般的に使用される電圧は 3.3V または 5V です。
  • LOW (0): ピンが低電圧状態 (通常 0V)

GPIOの活用例

LEDの点灯

GPIOを使ってLEDを点灯・消灯する基本的な制御が可能です。

GPIO 出力 (HIGH) → LED点灯
GPIO 出力 (LOW) → LED消灯

ボタン入力

GPIOの入力機能を利用して、ボタンが押されたかどうかを検出できます。

GPIO 入力 (HIGH) → ボタンが押されていない
GPIO 入力 (LOW) → ボタンが押された

センサとの通信

GPIOは、I2CやSPI、UARTなどのプロトコルと組み合わせることで、各種センサとの通信が可能です。

  • I2C (Inter-Integrated Circuit): 2本のGPIOを使用して複数のデバイスと接続可能
  • SPI (Serial Peripheral Interface): 高速通信向け、複数のデバイスを制御
  • UART (Universal Asynchronous Receiver Transmitter): シリアル通信によるデータ送受信

 GPIO使用時の注意点

GPIOを使用する際には、以下の点に注意する必要があります。

  • 最大電流を超えないようにする (GPIOごとに供給可能な電流には上限がある)
  • 電圧レベルに注意 (3.3Vマイコンと5Vデバイスの接続時にはレベルシフトが必要)
  • 入力モード時のノイズ対策 (プルアップ/プルダウン抵抗を適切に設定)
  • GPIOを適切に初期化し、使用後はリセットする

まとめ

  • GPIOは、マイコンやシングルボードコンピュータに備わる汎用入出力ピンで、さまざまな外部デバイスと接続可能。
  • 入力モード (ボタン、センサ) と出力モード (LED、モータ) を使い分ける。
  • 使用時は電圧や電流制限に注意し、適切な設定を行う。

GPIOは組み込みシステムにおいて基本的かつ重要な要素であり、その活用方法を理解することで幅広い応用が可能になります。