アマゾンでタッチパネル付きのLCDが格安で販売されていたので
買ってみました。
WayinTop 2.8インチ TFT液晶モジュール 240x320 SPI ILI9341搭載 3.3V/5V タッチパネル タッチペン付属 10KΩ抵抗器付属 ジャンパーワイヤー付属
なんと、ピンコネクタケーブル付きで直ぐに使える
ってことで早速サンプルを色々と動かしてみました。
サクサク動くしとても使いやすいですね
で、同時に購入したLCDの乗っかったESP32
WINGONEER T-Display ESP32 CP2104 WiFi Bluetoothモジュール1.14インチ用LCD開発ボード
タッチパネルは無いけどこれもイイですね。
ただし、重大な問題を発見!!
LCDを変える毎にライブラリをイジらないとダメだって???
それじゃライブラリの共有化ができない(T T)
そこで、なんとか頑張って共有化にチャレンジしてみました。
がっ、まだ上手く行っていません。
取り敢えずLCDを変えた場合でも最小の変更ということで
以下の方法で逃げています。
まずはライブラリフォルダ中のlibraries\TFT_eSPI\User_Setup.h
このファイルを以下のようにコメントアウト編集します。
/*▼
#define ILI9341_DRIVER
*/
/*▼
#define TFT_CS PIN_D8 // Chip select control pin D8
#define TFT_DC PIN_D3 // Data Command control pin
#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
*/
そして
Arduino\libraries\TFT_eSPI\User_Setup_Select.h
このファイルの以下の行の前に色々と追加して
#include <User_Setup.h> // Default setup is root library folder
こんな感じにしました。
//▼TFT_eSPI.cppを単体でコンパイルしてしまうのでスケッチ内で#defineしても未定義になってしまう
//#define TTGO_ESP32
//#define ILI9341
#if defined (TTGO_ESP32)
#pragma message "found the TTGO_ESP32 so use Setup25_TTGO_T_Display"
#include <User_Setups/Setup25_TTGO_T_Display.h> // Setup file for ESP32 and TTGO T-Display ST7789V SPI bus TFT
#pragma message "found the TTGO_ESP32 so use ST7789_DRIVER"
#define ST7789_DRIVER // Full configuration option, define additional parameters below for this display
#elif defined (ILI9341)
#pragma message "found the ILI9341 so use TFT_ILI9341_TP"
#define ILI9341_DRIVER
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 4 // Reset pin (could connect to RST pin)
#define TOUCH_CS 5 // Chip select pin (T_CS) of touch screen
#elif !defined(ILI9341) && !defined(ST7789_DRIVER)
#pragma message "not found ILI9341 or ST7789_DRIVER"
#define TFT_CS PIN_D8 // Chip select control pin D8
#define TFT_DC PIN_D3 // Data Command control pin
#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
#else
#endif
//▲
#include <User_Setup.h> // Default setup is root library folder
これで、頭の行の#define行をLCDに合わせてコメントアウトするだけです。
↓使用するLCDに合わせてコメントを外します。
//#define TTGO_ESP32
//#define ILI9341
本当はスケッチ内の#defineだけで処理できれば嬉しいのですが
スケッチのコンパイルが終わった後に何故かTFT_eSPI.cppを単体でコンパイルしてるようで
その際にスケッチの#defineを読まないので対処できませんでした。
また、日を改めてチャレンジしてみます。
一応ファイルは以下でダウンロードできます。
0 件のコメント:
コメントを投稿