6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Adafruit_ILI9341 ライブラリを使ってTFT液晶でテキスト表示

Last updated at Posted at 2019-12-09

「ESP32で ILI9341 TFT液晶を動かす」
https://qiita.com/nanbuwks/items/72503cf93c5f2ed0deeb

では

「ファイル」-「スケッチ例」-「カスタムライブラリのスケッチ例」-「Adafruit ILI9341」-「graphicstest」

のサンプルプログラムを使ってTFT液晶を動かしました。

しかしながらこのプログラムでは、テキストは単に色とサイズを変化して出力するだけでした。


  #include <Fonts/FreeSans24pt7b.h>
  Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC,TFT_RST);
  tft.begin();
  tft.setTextColor(ILI9341_BLACK);
  tft.setTextSize(1);
  tft.println("Hello World!");

Adafruit_ILI9341 ライブラリで使えるテキスト描画について調べてみました。

環境

  • ESP32 (WEMOS LOLIN32) + 2.8in TFT module
  • Arduino 1.8.10
  • Ubuntu 18.04

テキスト色を指定


  tft.setTextColor(ILI9341_BLACK);

黒を指定

テキストサイズ指定


  tft.setTextSize(1);

サイズを指定。2を指定すると縦横2倍。

描画位置を指定


  tft.setCursor(x, y);

テキストの左下のドット座標を指定

背景色を指定



  tft.setTextColor(ILI9341_WHITE,ILI9341_RED);  tft.setTextSize(1);


これで背景色が赤になります。しかしながらフォントによっては指定が無効となりました。

フォントを指定

せっかくのドットマトリックスなのできれいなフォントにしたいですね。


  tft.setFont( &FreeSans24pt7b );

とすると24ポイントのドットフォントが使えます。
FreeSans24pt7b.hはAdafruit GFX Graphics Libraryを設定するといっしょに読み込まれます。
しかしながら必ずしも以下は必要ないぽい


# include <Adafruit_GFX.h>

使えるフォントは

「Using Fonts」(Adafruit GFX Graphics Library)
https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts

によると

FreeMono12pt7b.h FreeSansBoldOblique12pt7b.h
FreeMono18pt7b.h FreeSansBoldOblique18pt7b.h
FreeMono24pt7b.h FreeSansBoldOblique24pt7b.h
FreeMono9pt7b.h FreeSansBoldOblique9pt7b.h
FreeMonoBold12pt7b.h FreeSansOblique12pt7b.h
FreeMonoBold18pt7b.h FreeSansOblique18pt7b.h
FreeMonoBold24pt7b.h FreeSansOblique24pt7b.h
FreeMonoBold9pt7b.h FreeSansOblique9pt7b.h
FreeMonoBoldOblique12pt7b.h FreeSerif12pt7b.h
FreeMonoBoldOblique18pt7b.h FreeSerif18pt7b.h
FreeMonoBoldOblique24pt7b.h FreeSerif24pt7b.h
FreeMonoBoldOblique9pt7b.h FreeSerif9pt7b.h
FreeMonoOblique12pt7b.h FreeSerifBold12pt7b.h
FreeMonoOblique18pt7b.h FreeSerifBold18pt7b.h
FreeMonoOblique24pt7b.h FreeSerifBold24pt7b.h
FreeMonoOblique9pt7b.h FreeSerifBold9pt7b.h
FreeSans12pt7b.h FreeSerifBoldItalic12pt7b.h
FreeSans18pt7b.h FreeSerifBoldItalic18pt7b.h
FreeSans24pt7b.h FreeSerifBoldItalic24pt7b.h
FreeSans9pt7b.h FreeSerifBoldItalic9pt7b.h
FreeSansBold12pt7b.h FreeSerifItalic12pt7b.h
FreeSansBold18pt7b.h FreeSerifItalic18pt7b.h
FreeSansBold24pt7b.h FreeSerifItalic24pt7b.h
FreeSansBold9pt7b.h FreeSerifItalic9pt7b.h

これだけあるらしい。

しかしながらこれらは先の背景色指定はできませんでした。
あらかじめ


  tft.fillRect

などでボックスを描いておき、その中に描画することが必要となります。

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?