2.8inch TFT LCDディスプレイ タッチパネル SPIシリアル240 * 320 ILI9341 ライブラリ(TFT_eSPI)のタッチパネルサンプル
2.8inch TFT LCDディスプレイ タッチパネル SPIシリアル240 * 320 ILI9341
このTFTディスプレーはとにかく安い! のでちょっとした製品には便利なようで、多くの記事が出てます。が有名なAdafruitのライブラリを使用していることが多いです。でも個人的にはこのAdafruitのライブラリは使いたくないというか使えません。描画が遅いです。タッチパネルの問題は無いと思いますが、タッチパネルを使うということは描画が先にあるはずなので、画面に変化がないようなものに対しては大丈夫かもしれませんが、どんどん変化するような応用ではAdafruitのライブラリでは力不足を感じます。その点TFT_eSPIライブラリは良い感じですが記事が少ないですね。
ちょっと無駄時間を使ってしまいました。同じポイントでハマってる方がおられたら以下ご参考になるかもしれません。実際タッチパネルサンプルに関する記事はあまり無いようですね。
はまったポイントはキャリブレーションです。
基本的にTFTディスプレー側の接続や準備は多くの記事が出ている通りで問題無いと思います。
ポイントとしては
https://github.com/Bodmer/TFT_eSPI からzipファイルでダウンロードして、Arduino IDEのライブラリに追加
TFT_eSPI-master の中にある User_Setup.h のターゲットマイコンの記述以外をコメントアウトして、ターゲットマイコンのピンアサインをアンコメントしでピン番号を合わせる。
※ESP32の場合
TFTのLEDピンの3.3Vも忘れずに配線。
これだけで、TFTディスプレーのサンプルスケッチは動作します。グラフィカルなサンプルが数多くあるので、どう使うかの発想がいろいろ出てきますね。
次にタッチパネルのサンプルスケッチは、TFT_eSPI-master\examples\320 x 240\Keypad_240x320 を使います。
もっとシンプルなサンプルは TFT_eSPI-master\examples\Test and diagnostics\Test_Touch_Controller が単にX,Y、Zを返してくるのでわかりやすいです。実用的な使い方としてはKeypad_240x320 が分かり易いと思います。
ただファイルシステムにキャリブレーションデータを保存するため、2回目から表示されません。
※キャリブレーション画面
このキャリブレーション画面を出すにはここを trueに変更します。 さりげなく書かれてるので読み飛ばしてしまいますよね。
これで毎回キャリブレーション画面が出てきます。
ただしくキャリブレーションできれば10キーの画面が表示されます。