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 3 years have passed since last update.

ESP32で ILI9341 TFT液晶を動かす

Last updated at Posted at 2019-11-28

赤い基板の 320x240 dot の TFT 液晶モジュール。
IMG_20200925_181151303 (1).jpg
写真は 2.2インチと 2.8インチのもの。とても良く似ている。これを含め、2.2インチ、2.4インチ、2.8インチ、3.2インチのバリエーションがある。
http://www.lcdwiki.com/Main_Page#SPI_Display

4つとも ILI9341 がコントローラ。 Adafruit ILI9341 ライブラリで動かしてみた。

環境

  • Ubuntu18.04
  • Arduino 1.8.10
  • ESP32

ライブラリインストール

「ツール」-「ライブラリを管理...」でライブラリマネージャを呼び出し、「Adafruit ILI9341」を検索してインストール

サンプルプログラム

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

接続

ILI9341 ESP32
VCC 3.3V
GND GND
CS GPIO5
RESET 16
D/C 17
SD(MOSI) 23
SCK 18
LED 3V3
SDO(MISO) 19
T_CLK (N.C.)
T_CS (N.C.)
T_DIN (N.C.)
T_OUT (N.C.)
T_IRQ (N.C.)

設定

  • D/C 17
  • SD(MOSI) 23
  • RESET 16

以下の箇所を探して


// For the Adafruit shield, these are the default.
#define TFT_DC 9
#define TFT_CS 10

// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

以下のように書き換える。

// For the Adafruit shield, these are the default.
#define TFT_RST 16
#define TFT_DC 17
#define TFT_CS 5

// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC,TFT_RST);

これで動いた。

(2021/01/30 追記)

バックライトLCDのON/OFFをコントロールする場合はLEDピンをGPIOに接続する。例えばGPIO4に接続したときは


#define TFT_BACKLIGHT_PIN 4

としておいて、適宜


  pinMode(TFT_BACKLIGHT_PIN,OUTPUT);
  digitalWrite(TFT_BACKLIGHT_PIN,HIGH);

とする。

ピン解説

ILI9341は動作モードが沢山あるが、
4-wire 8-bit data serial interface Ⅱ
を使っているのかな?

cf., a-Si TFT LCD Single Chip Driver
240RGBx320 Resolution and 262K color ILI9341
Page 24 of 239
6. Block Function Description
MCU System Interface

その場合、使用信号線は SCL,SDI,D/CX,SDO, CSX の5つとなる。更にLCDのPowerOn時にRESET信号が必要なので、6線になりますね。

ILI9341
VCC 3.3V
GND GND
CS (CSX) Cable Select
RESET リセット信号送出用
D/C (D/CX) データ・コマンドコントロール用
SD(MOSI) (ILI9341側から見てSDI) SPI MOSI
SCK (SCL) SPIクロック
LED バックライトON/OFF信号 モジュール内部でスイッチ用トランジスタにつながっているのでこれがLED電源というわけではない
SDO(MISO) (ILI9341側から見てSDO) SPI MISO LCDデータリード用(使用しない)
6
5
1

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?