GPIOの基礎知識
スポンサーリンク
Contents
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は組み込みシステムにおいて基本的かつ重要な要素であり、その活用方法を理解することで幅広い応用が可能になります。