Aliexpressを見ていたらESP32に静電容量式タッチ対応LCDがついたボードが安かったのでポチってみた。WT32-SC01ってやつ。3500円ぐらいだった。M5Stackとかもいいなーと思っていたんだけどこっちのほうが安くてLCDも大きかったので…
ESP32-WROVER-Bモジュールと3.5インチのSPI接続のディスプレイが乗っている。2ポイントまでの静電容量タッチディスプレイらしい。表面はツルツル。左側に穴が空いているように見えるけど黒い部分が抜かれてるだけで、部品は未実装だった。光センサとかつけようとしていたのかな?裏面にはピンヘッダが並んでいる。このピンヘッダ、2.0mmピッチっぽいので少し扱いにくいかも…USBシリアル変換機も内蔵していててSiliconLabsのVCPドライバを入れておけば認識する。
ちなみに発注時の画像にも合ったけど技適マーク付きのESP32-WROVER-Bモジュールだった。
ちなみに発注時の画像にも合ったけど技適マーク付きのESP32-WROVER-Bモジュールだった。
LCDのコントローラはST7796SでESP32とはSPI接続されているっぽい。タッチコントローラはFT6336UがI2Cで接続されている。バックライトはPWMで調整できる。
まずはArduino IDEを使ってLCD表示を試してみた。
使用したライブラリはTFT_eSPI
ライブラリマネージャからライブラリをインストールしたらライブラリのフォルダに行って(Arduino\libraries\TFT_eSPIの中)
User_Setup.hをWT32-SC01用に書き換える。
上の方からディスプレイコントローラは
#define ST7796_DRIVER
のところだけをコメントアウト外す。(他のところはコメントアウト)
ピン配置設定のところは全部コメントアウトして
#define USE_HSPI_PORT 1 #define TFT_MISO 12 #define TFT_MOSI 13 #define TFT_SCLK 14 #define TFT_CS 15 #define TFT_DC 21 #define TFT_RST 22 #define TFT_BL 23
とした。
そしてSPIクロック設定は
#define SPI_FREQUENCY 80000000
に変更した。
あとは適当なサンプルを実行してみた。
バックライトをONにするために
pinMode(TFT_BL, OUTPUT); digitalWrite(TFT_BL, 128);
上の2行を
tft.init();
の下辺りに入れる。128のところを変更すれば明るさが調整できるので可変できるようにしてもいいかも。
最初User_Setup.hをいじるの知らなくてバックライトがうねうねしてたけどちゃんと設定したら映った。
最初User_Setup.hをいじるの知らなくてバックライトがうねうねしてたけどちゃんと設定したら映った。
解像度も480x320あるので結構色々な情報が表示できそう。ESP32はCANトランシーバをつけるだけでCANが使えるので車載OBD2ディスプレイとかも作れそう。デュアルコア活用できそうだし。
LCDの動作確認もできたので次回はタッチスクリーンの確認してみないと。
0 件のコメント:
コメントを投稿