ESP32でLEDやリレー、センサーなどを接続するとき、「GPIOは何mAまで流せますか?」という疑問を持つ方は多いでしょう。
インターネット上でも「GPIOは40mAまで流せる」といった情報を目にすることがありますが、この数値だけを見て設計するのは危険です。
実際の回路設計では、GPIO1本あたりの電流だけでなく、ESP32全体で流れる電流も考慮する必要があります。
例えば、各GPIOが定格以内であっても、多数のGPIOから同時に電流を流すと、ESP32全体では許容範囲を超えてしまう可能性があります。
この記事では、ESP32のGPIOを安全に使用するために知っておきたい「GPIO総電流」の考え方を解説します。
GPIO 1本あたりの最大電流とは?
GPIOには、出力または入力として利用できるピンが多数用意されています。
LEDを直接点灯させたり、トランジスタを駆動したりと、多くの用途で利用されますが、GPIOから無制限に電流を流せるわけではありません。
ESP32シリーズでは、GPIO1本あたりに流せる電流の上限がデータシートに記載されています。
ここで注意したいのは、この値が常に流してよい推奨電流ではないということです。
データシートには、絶対最大定格(Absolute Maximum Ratings)と、推奨動作条件(Recommended Operating Conditions)が記載されています。
絶対最大定格は、「この値を超えてはいけない限界値」です。
一方、実際の製品設計では、長期間安定して動作させるために、推奨動作条件の範囲内で使用することが重要です。
つまり、「GPIOは40mAまで流せる」という情報だけを見て設計するのではなく、余裕を持った電流設計を行うことが、信頼性の高い製品につながります。
GPIO総電流とは?
GPIOを複数使用する場合は、「GPIO 1本あたりの電流」だけではなく、「ESP32全体でGPIOから流れる電流」にも注意が必要です。
例えば、GPIOを8本使用し、それぞれ10mAずつLEDを点灯させたとします。
1本あたり10mAなので問題ないように見えますが、ESP32全体では80mAの電流がGPIOから流れていることになります。
さらに他のGPIOでリレーやセンサーなどを駆動していれば、総電流はさらに増加します。
このように、各GPIOは制限内でも、ESP32全体では過大な負荷になる可能性があります。
そのため、回路設計では、
- GPIO1本あたりの電流
- GPIO全体の総電流
の両方を確認することが重要です。
なぜGPIO総電流を考える必要があるのか?
GPIO総電流を超えてしまうと、さまざまな問題が発生する可能性があります。
例えば、
- GPIOの出力電圧が低下する
- LEDの明るさがばらつく
- ESP32が不安定に動作する
- 長期間使用した場合に信頼性が低下する
といった現象につながることがあります。
特に、自作基板では「GPIO 1本の定格だけを確認して設計した」というケースが少なくありません。
しかし、実際にはESP32全体としての負荷を考慮することが重要です。
回路設計では、「GPIO 1本だけを見る」のではなく、「システム全体でどれだけ電流が流れるか」を意識することが、安全で安定した設計への第一歩になります。
ESP32 GPIOの総電流とは?後半|LEDを複数接続するときの注意点と安全な設計方法
ここまでGPIO 1本あたりの最大電流だけではなく、ESP32全体のGPIO総電流も考慮する必要があることを解説しました。ここからは、実際の回路設計でどのような点に注意すればよいのかを紹介します。
LEDを複数接続するときの注意点
ESP32では、ステータス表示用として複数のLEDを接続することがあります。
例えば、
- 電源LED
- 通信状態LED
- エラー表示LED
- 動作状態LED
などです。
LED1個あたりの電流が5mA程度であれば問題ないように思えますが、複数のLEDを同時に点灯するとGPIO総電流は少しずつ増えていきます。
例えば、
- LED × 8個
- 各LED 5mA
の場合、
5mA × 8 = 40mA
となります。
さらに他のGPIOでセンサーや周辺回路を駆動している場合は、その分も合計して考える必要があります。
「LEDだから安全」と考えるのではなく、システム全体でどれだけ電流が流れるかを意識することが重要です。
GPIOだけで大電流を流さない
GPIOは、あくまでも制御信号を出力するための端子です。
そのため、
- リレー
- モーター
- ソレノイド
- 高輝度LED
- ブザー
など、比較的大きな電流を必要とする機器をGPIOから直接駆動することは推奨されません。
このような場合は、
- NPNトランジスタ
- MOSFET
- ドライバIC
などを使用して、GPIOには制御信号だけを出力する構成にします。
この方法であれば、ESP32への負荷を抑えながら、安全に大電流を扱うことができます。
ESP32シリーズでも考え方は同じ
ESP32には、
- ESP32
- ESP32-S2
- ESP32-S3
- ESP32-C3
- ESP32-C5
- ESP32-C6
など、多くのシリーズがあります。
GPIO数や搭載機能は異なりますが、GPIO1本あたりだけではなく、チップ全体の電流も考慮するという考え方は共通です。
実際の許容電流や推奨条件はシリーズごとに異なるため、設計時には必ず対象デバイスのデータシートを確認してください。
よくある勘違い
GPIOの設計では、次のような勘違いをよく見かけます。
「GPIO 1本の最大電流だけ確認すればよい」
GPIO総電流も重要です。
複数のGPIOを使用する場合は、合計電流も確認しましょう。
「LEDだから直接つないでも問題ない」
LEDの数が増えれば、その分だけ総電流も増加します。
表示LEDが多い装置では、設計初期から電流の見積もりを行うことが大切です。
「動いているから問題ない」
試作機では正常に動作していても、長期間の使用や温度変化によって影響が現れることがあります。
製品として使用する場合は、十分な余裕を持った設計を心掛けましょう。
まとめ
ESP32のGPIOを設計するときは、GPIO 1本あたりの最大電流だけを見るのではなく、GPIO全体の総電流も考慮する必要があります。
また、大きな電流を必要とする機器はGPIOから直接駆動せず、トランジスタやMOSFETなどの外部回路を使用することが、安全で信頼性の高い設計につながります。
データシートに記載されている推奨条件を確認し、余裕を持った設計を行うことが、長期間安定して動作する製品への第一歩です。
技術は、経験から価値になる。
DLROW Design|現場エンジニア