「App:Library:TFT eSPI」の版間の差分
61行目: | 61行目: | ||
|<small>D18 (VSPI-SCK)</small> | |<small>D18 (VSPI-SCK)</small> | ||
!<span style="color:lightgrey"><small>SD_MOSI</small></span> | !<span style="color:lightgrey"><small>SD_MOSI</small></span> | ||
− | |<span style="color:lightgrey"><small> | + | |<span style="color:lightgrey"><small>D23 (VSPI-MOSI)</small></span> |
|- | |- | ||
!<small>LED</small> | !<small>LED</small> | ||
|<small>D32</small> | |<small>D32</small> | ||
!<span style="color:lightgrey"><small>SD_MISO</small></span> | !<span style="color:lightgrey"><small>SD_MISO</small></span> | ||
− | |<span style="color:lightgrey"><small> | + | |<span style="color:lightgrey"><small>D19 (VSPI-MISO)</small></span> |
|- | |- | ||
!<small>SDO(MISO)</small> | !<small>SDO(MISO)</small> |
2022年8月27日 (土) 11:16時点における版
TFT_eSPI
TFT_eSPIは各種小型ディスプレイとタッチセンサに対応したディスプレイドライバです。
インストール方法
ここでは、ESP32-DevKitC + ILI9341(320*240,Touch付き) の組み合わせに対する設定をします。
Arduino IDE から、"ツール"→"ライブラリを管理"
"TFT_eSPI"を検索
一番下辺りの "by Boodmer" 、バージョンは最新をインストール。
次に、インストールされたファイルに対しての操作です。
回路の結線は次の接続を想定しています。
ILI9341 ESP32-DevKitC ILI9341 ESP32-DevKitC LCD VCC +3.3V_OUT TouchPanel T_CLK D18 (VSPI-SCK) GND GND T_CS D4 CS D14 T_DIN(MOSI) D23 (VSPI-MOSI) RESET D33 T_DO(MISO) D19 (VSPI-MISO) DC D27 T_IRQ D15 SDI(MOSI) D23 (VSPI-MOSI) SD SD_CS D5 SCK D18 (VSPI-SCK) SD_MOSI D23 (VSPI-MOSI) LED D32 SD_MISO D19 (VSPI-MISO) SDO(MISO) D19 (VSPI-MISO) SD_SCK D18 (VSPI-SCK)
LCDとタッチパネルについて、上記結線の通りに設定ファイル "User_Setup.h" を変更していきます。
"User_Setup.h" を開きます。
場所:Arduino IDE "ファイル"→"環境設定"→"スケッチブックの保存場所" の "libraries" フォルダ内
※Linuxの場合
バックライトの配線も制御する場合、その制御部分を有効にします。
#define TFT_BL 32 #define TFT_BACKLIGHT_ON HIGH
デフォルトがNodeMCUになっているので、その部分をコメントアウトします。
ESP32 Dev Boardのピン配置を回路にあわせて設定します。
※数字はピン番号ではなくポート番号です。
#define TFT_MISO #define TFT_MOSI #define TFT_SCLK #define TFT_CS #define TFT_DC #define TFT_RST #define TOUCH_CS
動作確認
この段階で既に TFT_eSPI 用のスケッチ例の多くがそのまま動作します。
順に確認を進めます。
TFT_eSPIの設定が問題ない事の確認 & calData取得
タッチセンサと画像表示の両方を確認し、タッチセンサのcalibrationパラメータを取得します。
"ファイル" → "スケッチ例" → "TFT_eSPI" → "General" → "Touch_caribrate"
シリアルモニタを 115200bps で起動させておきます。
上記スケッチ例の中のtft.setRotation(*)
を使いたい画面の向き(1〜4)に合わせて、ESP32に書き込んで動かします。
向きが未定の場合には1〜4全ての場合でcalibrationパラメータを取得しておきます。
最初に四隅をタッチしてタッチセンサの位置を認識させます。
シリアルモニタ上にキャリブレーションパラメータが表示されます。
// Use this calibration code in setup():
uint16_t calData[5] = { 402, 3478, 1998, 1689, 7 };
tft.setTouch(calData);この値は後で使うため、テキストファイル等にメモしておきます。
キャリブレーションが終わると、次の画面になります。
画面上を触ってみましょう。
触った所に白く跡がつけば TFT_eSPI の動作確認完了です。