ESP32 2.2インチTFTの表示テスト
JH7UBC 2020.1.13
ESP32でTFTディスプレイの表示テストをします。
マイコンで利用されるTFTディスプレイには、2.2インチ,2.4インチ,2.8インチ,3.2インチなどがあり、
240×320ドットでSPIインターフェースで制御され、コントローラーにはILI9341が使われています。
今回は、手持ちの2.2"のTFTを使います。Qiitaのこの記事などを参考にしてテストしました。
ESP32 DevKitCとTFTの接続は次のようにします。
ESP32 | TFT | 備 考 |
3V3 | Vcc | |
GND | GND | |
GPIO5(VSPI SS) | CS | |
GPIO16 | RESET | |
GPIO17 | DC/RS | |
GPIO23(VSPI MOSI) | SDA(MOSI) | |
GPIO18(VSPI SCK) | SCK | |
GPIO19(VSPI MISO) | DO(MISO) | これは接続しなくても動作します。 |
接続回路図です。
GitHubからAdafruit_ILI9341とAdafruit_GFXライブラリをダウンロードして、Arduino IDEライブラリに登録します。
Adafruit_ILI9341のexamplesの中のgraphicstest.inoの一部を次のように書き換えてコンパイル書き込みします。
#define TFT_RST 16 #define TFT_DC 17 #define TFT_CS 5 // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC,TFT_RST); |
ブレッドボードです。
グラフィックスのデモが表示され、最後に上の画面が表示され、90°ずつ回転します。
定番の「Hello World!」表示と簡単なグラフィックスのスケッチを作りTFTに表示してみます。
TFTの画面です。
Adafruitのフォントは、ちょっと荒いのが気になります。
そこで、STM32で利用したUcglibを使ってみることにしました。ESP32 DevKitCとTFTの接続は、同じです。
まず、UcglibサイトからUcglibをダウンロードして、Arduino IDEに追加します。
Ucglibでは、様々なスタイル大きさのフォントを使うことができます。
フォントの見本は、Ucglibフォルダの中のextrasフォルダの中にあるfontsize.pdfで見ることができます。
また、Ucglibの使い方は、同じフォルダ内のreference.pdfに記載されています。
簡単なスケッチで表示テストをしました。スケッチです。
なめらかなフォントで表示できました。