LoginSignup
1
2

More than 1 year has passed since last update.

Arduino UNOにTFT LCDを接続しよう

Last updated at Posted at 2021-05-30

Arduino UNOに汎用のILI9341 TFT液晶モジュールを接続した時の資料です。

Arduino の出力装置に液晶モジュールを追加したときの資料です。

ハードの用意

●Arduino UNO
●LCD

aitendo の★2.8インチ★TFT液晶モジュール★240x320★ [M028C9341SD]
https://www.aitendo.com/product/16038
コントローラチップ:ILI9341
動作電源:3.3V

●3.3V<->5V相互変換モジュール

LCDの動作電源が3.3Vなので電圧変換必須です。
aliexpressなどで数百円程度で売ってます。

●とりあえず配線は以下のようにしました。

8pin -> LCDのMISO
9pin -> LCDのSCK
10pin -> LCDのMOSI
11pin -> LCDのDC
12pin -> LCDのRESET
13pin -> LCDのCS

3.3Vの電源とGNDとバックライトのLEDもつなぎます。

標準的なSPI通信です。SPIはシリアル通信なのでジャンパ線は少な目です。

全信号ピンは直結はせずに 5V <-> 3.3V 電圧変換をかませます。
VCCは3.3VでバックライトのLEDも3.3Vです。

ソフトの用意

●次の3つのライブラリをArduino IDEで使います。
Arduino IDEのライブラリマネージャから検索しinstallします。

Adafruit GFX Library
Adafruit ILI9341
Adafruit BusIO

動作確認

Arduiono IDEから
ファイル -> スケッチ例 -> Adafruit ILI9341 -> graphicstest
でテストします。

●defineの書き換え
以下のdefineを追加します。


//#define TFT_DC 9
//#define TFT_CS 10
#define TFT_CS 13
#define TFT_DC 11
#define TFT_MOSI 10
#define TFT_CLK 9
#define TFT_RST 12
#define TFT_MISO 8

define のピン番号はLCDに書かれてあるピンとArduinoのピン番号に合わせる必要があります。

スケッチのコンストラクタを書き換えます。


// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
// Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
// If using the breakout, change pins as desired
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);

コンパイルしマイコンボードに書き込めば完成です。

IMG_1609.JPG

スケッチのgraphicstestのソースを適当に好きなように書き換えれば自分の思うがままの表示が出せると思います。
Adafruiライブラリは充実していてdraw系の関数は一通りそろっていると思います。

GFX library for arduinoでの動作確認

GFX library for arduinoを使って動作確認できます。
ライブラリ管理からinstallしdefineなどを修正すれば動作しました。

examplesのHello worldなどでピン番号をあわせれば動きます。


#define TFT_CS 13
#define TFT_DC 11
#define TFT_MOSI 10
#define TFT_SCK 9
#define TFT_RST 12
#define TFT_MISO 8

Arduino_DataBus *bus = new Arduino_SWSPI(TFT_DC /* DC */, TFT_CS /* CS */, TFT_SCK /* SCK */, TFT_MOSI /* MOSI */, -1 /* MISO */);

Arduino_GFX *gfx = new Arduino_ILI9341(bus, TFT_RST  /* RST */, 0 /* rotation */, false /* IPS */);

LCDのコントローラの型番でコンストラクタが変わります。
ILI9488の場合は
Arduino_ILI9488_18bit
で動く場合があります。

Adafruit

Adafruitという単語がよくでてきます。
これはAdafruitというユニークな製品を生み出してる最先端メーカーです。
社長が女性でガチガチのエンジニアっぽいです。
なるほどと思わせるようなものが色々あります。
7インチTFT + SPI + アクセラレータなんかもかなり需要があるのではと思います。

1
2
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
2