ひょんな事でTS820用のDDS-VFOをArduinoNanoでやり始めて、VFOsysなるアナログに見せたデジタルでのダイヤル型DDS−VFOに興味を持ったことから、ESP32 DivKitCを使うことになりました。VFOsysは本当にデジタルでアナログを扱うという素晴らしいDDS−VFOの単なるデジタル表示ではない点が素晴らしいと思いました。特に、ESP32 DivKitCとTFTのLCDを組み合わせたプログラムが、これからの主流になるのだろうということです。液晶LCDでのデジタル表示も勿論目的用途では外せないものではあります。
ということで、今回VFOsysで使用した 1.8 TFT SPI 128*160 V1.1 のディスプレーを使ってESP32のTFT_eSPIの対応するTFT(128*160)サンプルプログラムを動かして見ることにしました。特に興味があったのが、メーターです。JF3HZB UeboさんのブログでもSignal MeterをPIC32MX250F128Bで作った画像処理のシグナルメータがありました。デジタルで作成されていることに感激でした。PICでもやりたいのですが、TFT_eSPIのサンプルにメータがありましたので、ESP32 DivKitC+1.8inch TFT のディスプレーで見てみたいと思いトライしてみました。TFTも中華から購入済みです。最初、サンプルプログラムなので、問題なく動くと思っていましたが、やはり初体験では、右往左往状態になりました。兎に角、手当たりしだい試すのですが、上手くは行きません。あれこれとやっている内に段々と調べて試している内に情報も増え、ある情報でハッと気づくもんなんです。まず、サンプルプログラムはよく考えられて作成されています。というのは、TFTの種類、ESP32などの種類に合わせて定義を設定するヘッダーが用意されているんです。User_Setup.hというヘッダーです。これには悩みました。最初はどれを選んで、どれを使わないかの設定の仕方がわかりませんでした。設定した記録のWeb情報も最初はみつけれませんでした。このため、適当に設定してコンパイルしてもエラーをばかりで、本当に動くサンプルなのかと思うような状況でした。使用するのはESP32です。対応するTFTのドライバーの設定は購入した物はST7735Sなので問題はないだろうと思いました。次のドライバー設定を選択するのですが、これが違ったらおかしいぐらい他にはありません。
#define ST7735_DRIVER
画面のWIDTH,HEIGHTもTFTの仕様(128*160)から全く問題は無いはずです。
#define TFT_WIDTH 128
#define TFT_HEIGHT 160
が、しかしそれ以外の設定では、TFTの初期化の定義がわかりません。何かでは1.8インチのTFTのサンプルプログラムでは見てはいたのですが、たくさんあるうちのどれかを選ぶとなると、わからない状態になります。これは、後からのWeb情報から判明することになります。
他は、ESP32に対するTFTのピンの接続です。これも問題はなかったのですが、2つの接続がわかりませんでした。特に、購入したTFTにはSD用端子も付いていて、迷わせるんです。下記の4つです。
SD_CS, SD_MOSI, SD_MISO, SD_SCK

選ぶ接続は以下で明白なのですが、MISO,MOSI,SCLKが特に迷わせられました。
#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)

特にTFTのピン接続がわからない状態でした。1.8inchi TFTの端子名は
VCC
GND
CS
RESET
A0
SDA
SCK
LED
です。
TFT_CSはCSと同じで問題ないでしょう。他はTFT_SCLKはSCKかな?というぐらいです。情報がないとこれぐらいの対応しかわかりません。TFTのVCCとGNDは問題なく電源とグランドとわかります。
それ以外は、Web情報を調べてゆく内に少しずつ分ってきます。

VCC  は問題なく電源3.3V
GND  は問題なくGND
CS:(15)は     (TFT_CS)に対応、間違いなかったです。
RESET:(4)は(TFT_RST)に対応、間違いなかったです。
A0:(2)は (TFT_DC)に対応、Web情報より
SDA:(23)は(TFT_MOSI)に対応、Web情報より
SCK:(18)は(TFT_SCLK)に対応、間違いなかったです。
LED:は VCCに接続、Web情報より
左がTFT端子名:()はESP32 DivKitC側の端子番号です。

Web情報の1つは中華のWebページからです。User_Setup.hの選択を載せてくれていました。

http://ep.ckvs.tyc.edu.tw/blog/files/6-5919-9910.php

下記がページの表題です。
ESP32-WROOM-32D + TFT LCD(含環境設定)

TFTのWIDTHは132誤記で選択肢にはありません。128です。HEIGHTも162は誤記で160です。
以下抜粋です。
1.開啟 [ \Arduino\libraries\TFT_eSPI-master\User_Setup.h ] 檔案
2.將以下程式碼取消註解

23    #define ST7735_DRIVER      // Define additional parameters below for this display
55    #define TFT_WIDTH  132
57    #define TFT_HEIGHT 162
76    #define ST7735_BLACKTAB
167   #define TFT_MISO 19
168   #define TFT_MOSI 23
169   #define TFT_SCLK 18
170   #define TFT_CS   15
171   #define TFT_DC    2
172   #define TFT_RST   4
231   #define LOAD_GLCD
242   #define SMOOTH_FONT
261   #define SPI_FREQUENCY  27000000

先に言ったTFTの初期化(リセット)が76の #define ST7735_BLACKTAB  です。
他、231、242、261も同じに設定します。(コメント化を外す)それ以外はコメント化(//)します。
167のTFT_MISOの19は繋がなくても良いとのことです。(SD_MISO)

上記の接続で、下記サンプルプログラムがコンパイルOK,書き込みOKとなりました。

TFT_Meter_5.no
CIMG8711

1.8inch TFT にメータのサンプル表示が出来ました。動画は少しピンぼけ!

バックが白で針が赤で綺麗なメーターです。無線のトランシーバー用のSメーターへ応用できれば最高ですね!スケッチを印刷して、少し見てみましょうか?改良できるかしらん?
他のTFT_eSPIのサンプルも試してみたいと思っています。
本当にESP32 DivKitCに取り憑かれてしまいました。なにせ、接続はESP実験ボードとTFTディスプレーの簡単接続だけで動作するし、しかも面白いのです。VFOsysをきっかけに、購入してよかったです。

つづく?