風速値表示ユニットからの信号線をCMOS IC 4024 バイナリーリップルカウンタでカウント値をバイナリーに変換した出力7ビットをデコードし表示する1.8inch TFT液晶を使いたかった為、CPUとしてESP32DevKitCを予定して回路図を作製しました。ただ表示だけなら小型のArduinoNANOでもいいのではと思い、並行して1.8inch TFT液晶ディスプレーを繫いでの表示が上手く出来るか確認してみることにしました。ネット情報を探ると結構Arduino系でのTFT液晶ディスプレーの表示は可能の様です。ArduinoNANOを使った1.8inch TFT液晶ディスプレーのサンプルがありました。

動作確認した所、色の設定が上手くありません。スケッチを最初コピペした所、液晶表時上の文字化けがありましたが、スケッチを一端消キーボードから打ち直しでOKとなりました。また、位置ずれもあり、直接ライブラリの書き換えで対応出来る情報より変更対応して位置ずれも治りました。

■位置ずれ修正
ライブラリはAdafruit_ST7735_and_ST7789_Library で、その中のAdafruit_ST7735.cpp ファイルの下記2箇所です。

void Adafruit_ST7735::initR(uint8_t options) {
  commonInit(Rcmd1);
  if (options == INITR_GREENTAB) {
    displayInit(Rcmd2green);
    _colstart = 0;//2->0
    _rowstart = 0;//1->0

  } else if ((options == INITR_144GREENTAB) || (options == INITR_HALLOWING)) {

■色修正
他、RGBカラーでなくBGRカラーの為、数カ所色の入れ替わりとオレンジ色が出ない事象もありました。入れ替わりは単に適当なカラー設定値で何回か直接色を設定し目的の色になった事を確認した上で、直接Adafruit_ST77xx.h ファイルを書き換え手直しし、設定カラー通りに色表示できるようにしました。

// Some ready-made 16-bit ('565') color settings:
#define ST77XX_BLACK 0x0000 //OK
#define ST77XX_WHITE 0xFFFF //OK
#define ST77XX_RED 0x001F //ORIGIN BLUE:0xF800
#define ST77XX_GREEN 0x07E0 //LIME
#define ST77XX_BLUE 0xF800 //ORIGIN RED:0x001F
#define ST77XX_CYAN 0xFFE0 //ORIGIN YELLOW:0x07FF

#define ST77XX_MAGENTA 0xF81F //OK
#define ST77XX_YELLOW 0x07FF //ORIGIN CYAN:0xFFE0
#define ST77XX_ORANGE 0x0BFF //SET MAKE 0x0BFF ORANGE ORIGIN 0xFC00

オレンジ色は手探りで色確認です。他の順当な方法もあるようでしたが、設定通りに色が出ればそれでOKとしました。力ずくです。このスケッチだけで、他では通用しません。Hi!
書き換えたライブラリファイルは元の状態に後で戻す必要もあります。他のスケッチで使う場合不具合となります。

設定通りの色がちゃんと表示出来る様になったので、早速、設定した数値に風速がなった状態を想定して数値38を表示させてみました。

ArduinoNANO-TFT-1

ArduinoNANO-TFT-2

ArduinoNANO-TFT-3

風速バイナリーデータ7ビット分のポートを割り当てて、デコードスケッチをコーディングですが、まずはArduinoNanoの端子情報を準備しました。1.8inch TFT液晶Displayで使ったポート以外から使用できる7ポート分を選びます。

ArduinoNano−PORT


つづく?