LoginSignup
1
1

70歳の挑戦... パラレル接続のTFTモジュールを使ってみた

Posted at

 SPI接続だけでなくパラレル接続のTFTディスプレイモジュールも使ってみたいと、ア〇〇ンでポチってしまいました。

para0.jpg

3.95 インチ TFT LCD ディスプレイ
ILI9488 480x320 スタイラス付きタッチ ディスプレイ モジュール
16 ビット パラレル バス、低消費電力、開発ボード用
ASHATA

あまり見聞きしたことのないブランドです。「16ビットパラレル」となってますが、写真では8ビットのピン配でしたのでエイヤっと購入、直ぐ届きました。(今現在は届くのに約一か月待ち、でも少しお安くなってる?;∀;)
 Arduino UNO用シールドになっているのでまずUNOで動くか確認(最終的にはESP32でタッチパネル機能も使いたいのです。)さて使えるのか?ネットの情報も少なく、少し悩みました。見つけました!
「Examples → GFX Library for Arduino → HelloWorldGfxfont」
の中に記載してあるURL

に跳び、そこのパラレルインターフェースの設定でやってみたところ画面が表示されました。ただ、フリーフォントのせいか画面が左右反転のように見えここで悩みました。フリーフォントはやめてシンプルにしたところ理解できる画面表示になりました。それが冒頭の写真でコードは以下になります。

UNO_TFT_Parallel.ino
// 3.95" TFT LCD Shield Test on UNO

#include <Arduino_GFX_Library.h>

Arduino_DataBus *bus = new Arduino_SWPAR8(A2, A3, A1, A0, 8, 9, 2, 3, 4, 5, 6, 7);
//(TFT_DC, TFT_CS, 25 /* WR */, 32 /* RD */, 23 /* D0 */, 19 /* D1 */,
// 18 /* D2 */, 26 /* D3 */, 21 /* D4 */, 4 /* D5 */, 0 /* D6 */, 2 /* D7 */);
Arduino_GFX *gfx = new Arduino_ILI9488(bus, A4 /*DF_GFX_RST*/, 0 /* rotation */, false /* IPS */);

void setup(void) {
  Serial.begin(115200);
  Serial.println("Arduino_GFX Hello World Gfxfont example");
  // Init Display
  if (!gfx->begin()) Serial.println("gfx->begin() failed!");
  gfx->fillScreen(BLACK);
  gfx->setRotation(0);

  gfx->drawRect(0, 0, gfx->width(), gfx->height(), CYAN);
  gfx->setCursor(gfx->width() - 76, 0);
  gfx->setTextColor(RED);
  gfx->println("Hello World!");
  gfx->setCursor(gfx->width() - 76, gfx->height() - 8);
  gfx->setTextColor(WHITE);
  gfx->println("Hello World!");

  delay(2000);  // 5 seconds
}
int x, y = 0, r = 0;
void loop() {

  y = y % gfx->height();
  uint8_t size = random(1, 5);
  gfx->setCursor(size * 10, y);
  gfx->setTextColor(random(0xffff));
  gfx->setTextSize(size);
  y += 10 * size;
  if (y > gfx->height() - 10) {
    y = 0;
    gfx->fillScreen(BLACK);
    r++;
    if (r > 3) r = 0;
    gfx->setTextSize(1);
    gfx->setRotation(r);
    gfx->drawRect(0, 0, gfx->width(), gfx->height(), CYAN);
    gfx->setCursor(gfx->width() - 76, 0);
    gfx->setTextColor(RED);
    gfx->println("Hello World!");
    gfx->setCursor(gfx->width() - 76, gfx->height() - 8);
    gfx->setTextColor(WHITE);
    gfx->println("Hello World!");

  } else {
    gfx->println("abcde!");
  }
  delay(500);  // 1 second
}

とりあえず不要な部分はカットしてあります。次回はいよいよESP32への移植ができるか?
 最後まで見ていただきありがとうございました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1