ESP32-S3 WROOM-1とILI9488液晶を組み合わせてTFT_eSPIを使用すると、画面が真っ白になって何も表示されないことがあります。他のライブラリでは正常に表示できる場合、配線不良よりもTFT_eSPI側の設定ファイルやドライバ設定が原因である可能性が高いです。
この記事では、ESP32-S3とILI9488でTFT_eSPIが白画面になる代表的な原因と、Arduino IDEで動作させるために確認すべき設定項目を詳しく解説します。
TFT_eSPIで画面が真っ白になる主な原因
TFT_eSPIは、多くの液晶コントローラーに対応していますが、初期設定を間違えるとコンパイルは成功しても液晶へ正しい信号が送られず、白画面のままになることがあります。
特にESP32-S3とILI9488の組み合わせでは、以下の設定ミスがよく発生します。
- ILI9488用のドライバ設定が有効になっていない
- User_Setup.hのピン番号が実際の配線と違う
- SPI周波数が高すぎる
- ESP32-S3向けの設定になっていない
- 使用している液晶モジュールのSPI方式がTFT_eSPIの設定と合っていない
ILI9488用のドライバ設定を確認する
TFT_eSPIでは、使用する液晶コントローラーを設定ファイルで指定する必要があります。ILI9488の場合は、設定内でILI9488ドライバを有効にします。
User_Setup.hまたはUser_Setup_Select.hを開き、以下のような設定を確認します。
#define ILI9488_DRIVER
この設定が無効になっている場合、ILI9488へ正しい初期化コマンドが送られず、画面が白いままになることがあります。
例えばILI9341用の設定のままILI9488液晶を接続すると、同じSPI液晶でも正常表示できない場合があります。
ESP32-S3用のピン設定を正しく行う
提示されているピン設定は以下になります。
| 信号 | 設定値 |
|---|---|
| CS | GPIO15 |
| DC | GPIO5 |
| RST | GPIO4 |
| MOSI | GPIO11 |
| SCLK | GPIO9 |
この場合、TFT_eSPIの設定ファイルにも同じ値を記述する必要があります。
例。
#define TFT_CS 15
#define TFT_DC 5
#define TFT_RST 4
#define TFT_MOSI 11
#define TFT_SCLK 9
1つでも違う番号になっていると、液晶へデータが送信されないため白画面になります。
ESP32-S3ではSPI周波数を下げて確認する
ESP32-S3は高速な通信が可能ですが、ILI9488モジュールによっては高いSPIクロックに対応できない場合があります。
まずは低速設定で動作確認することがおすすめです。
User_Setup.hで以下のように変更します。
#define SPI_FREQUENCY 10000000
10MHz程度で表示できた場合、徐々に20MHz、40MHzなどへ上げて安定する速度を探します。
例えば配線が長い場合や安価なILI9488モジュールでは、40MHz以上では正常表示できず白画面になるケースがあります。
ILI9488液晶の種類による注意点
ILI9488搭載液晶には、見た目が同じでも通信方式が異なる製品があります。
一般的なILI9488モジュールにはSPI接続タイプと8bitパラレル接続タイプがあり、TFT_eSPIで対応できる設定も異なります。
購入した液晶がSPIタイプの場合はTFT_eSPIで使用できますが、パラレルタイプの場合はSPI設定では動作しません。
また、一部のILI9488液晶ではMISO端子が存在しない場合があります。その場合でも表示だけならMOSI、SCLK、CS、DC、RSTの接続で動作することがあります。
サンプルスケッチで動作確認する
設定変更後は、まずTFT_eSPI付属のサンプルを使って確認します。
Arduino IDEから以下を開きます。
ファイル → スケッチ例 → TFT_eSPI → 320 x 480 → TFT_String
このサンプルで文字が表示されれば、液晶とTFT_eSPIの基本設定は正常です。
表示されない場合は、プログラムではなく設定ファイル側に問題がある可能性が高くなります。
まとめ|ESP32-S3とILI9488の白画面は設定確認が重要
ESP32-S3 WROOM-1とILI9488液晶でTFT_eSPIが白画面になる場合、故障よりも設定ミスが原因であるケースが多いです。
特に確認すべきポイントは、ILI9488ドライバの有効化、User_Setup.hのピン設定、SPI周波数、液晶モジュールの通信方式です。
他のライブラリで表示できている場合は配線が正常である可能性が高いため、TFT_eSPIの設定を正しく合わせることで解決できる可能性があります。


コメント