LCDモジュールを使う(ST7735)

コンピュータ、組み込み

Raspberry Pi Picoを使ってLCDモジュールの表示制御をします。
LCDモジュールは多種ありますが、今回比較的小型のST7735ドライバ搭載モデルを紹介します。

Raspberry Pi Pico 以外でのマイコンを使ったST7735の使用方法はこの記事の最後にリンクを貼ります。
目的のマイコンがあれば参照してください。

今回紹介するもの

LCDモジュール (ST7735) 1.8inch

特徴

液晶カラーモニタ1.8inch サイズでキレイなグラフィック表示ができます。
画面描画命令をSPIを使った通信で表示を行います。
SDカードスロットがついていますが、モニタ部とは独立していています。
電源とGNDは共通ですが、SPI配線と命令は通常のSDカードモジュールを制御するのと同じです。

製品情報
サイズ1.8inch
解像度(X, Y)128, 160
通信方式SPI
ドライバST7735
動作電圧3.2~5V
その他SDカードリーダ
外観

前面

背面

ST7735ドライバを搭載するLCDモジュールは、小型から中型(1inch~2inch)に使用されています。
今回使用するST7735ではSDカードリーダも搭載してます。

同じインチサイズでも非搭載のものもあるので、製品の背面を確認してください。

使用感

SPIで通信を行う場合どうしても配線が多くて煩わしさを感じます。
LCDを使用する配線は基本的にはどれを使っても同じだけの配線があるのでサイズは好みや組み込み筐体などの制約に合わせて選択するといいと思います。

発色もよく小型のゲームや操作パネルを作るのには適していると思います。

SDカードスロットの利用については電源は共通ですが通信線は別配線です。
同じ基板に実装されているから楽に制御できる部分はありません。

中型サイズLCD ILI9341はこちらで紹介しています。

準備

配線(TFTのみ)

SPI0を使用する配線です。
TFTのみを使用する配線です。
ST7735のVCCとLED(バックライト)は、Raspberrpy Pi Picoの3.3Vを使っています。

SDカードリーダを使用する記事は後日掲載します。

RP2040 picoワイヤ色ST7735
3.3VVCC
GNDGND
GP17CS
GP22RESET
GP28AO(DC)
GP19SDA(MOSI)
GP18SCK
3.3VLED

ライブラリ

LCDを制御するためのライブラリにはAdafruit製ライブラリを使用します。

ライブラリ名検索
Adafruit GFX LibraryAdafruit GFX
Adafruit ST7735 and ST7789 LibraryAdafruit ST7735

使い方

表示1

スケッチ

/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by たまねぎ
Released under the MIT license
About Licence
当サイトで掲載しているスケッチのライセンスについてOSSの利用について当サイトで掲載しているスケッチおよびプログラム(以下プログラム)は、Open Source Software(以下OSS)を利用しています。誰でも当サイ...
【スケッチの説明】 RP2040 搭載基板で使用できます。 LCDモジュールの表示制御を行います。 画面に色を変えながら "TAMANEGI"と表示します。 【準備】 SPI0を使用します。 RaspberrPy Pico - ST7735 3.3V - VCC GND - GND GP17 - CS GP22 - RESET GP28 - AO(DC) GP19 - SDA(MOSI) GP18 - SCK 3.3V - LED 【バージョン情報】 2022/7/9 : 新規 **********************************************************************/ #include <Adafruit_GFX.h> #include <Adafruit_ST7735.h> #include <SPI.h> //ピン番号設定 #define TFT_DC 28 // DC #define TFT_CS 17 // CS #define TFT_SCLK 18 // Clock #define TFT_MOSI 19 // MOSI #define TFT_RST 22 // Reset //SPI0をコンストラクタに指定する Adafruit_ST7735 tft = Adafruit_ST7735(&SPI, TFT_CS, TFT_DC, TFT_RST); void setup(void) { SPI.setTX(TFT_MOSI); //H/W SPI 設定 SPI.setSCK(TFT_SCLK); tft.initR(INITR_BLACKTAB); //Init ST7735S初期化 tft.fillScreen(ST77XX_BLACK); //背景の塗りつぶし //テキスト表示 tft.setRotation(3); //画面回転 tft.setTextSize(3); //サイズ tft.setCursor(0, 20); //カーソル位置 tft.setTextColor(ST77XX_RED); //赤 tft.printf("TAMANEGI\n"); tft.setTextColor(ST77XX_GREEN); //緑 tft.printf("TAMANEGI\n"); tft.setTextColor(ST77XX_BLUE); //青 tft.printf("TAMANEGI\n"); tft.setTextColor(ST77XX_YELLOW); //黄 tft.printf("TAMANEGI\n"); } void loop() { }

結果

カラフルに表示ができました。

TN方式です。
長手方向の視野角は少し狭くて、角度がつくと色味が変わります。
背景の黒は白っぽくなり、青と赤は背景に溶け込んでいるように見えます。

表示2

スケッチ

Adafruit製のライブラリは、線、矩形、円他多くの描画機能を有しています。
Arduino IDEからサンプルプログラムを読み出すことができます。

Arduino IDEからはサンプルスケッチを以下の手順で読み出すことができるので、ここまでの準備で配線した状態で動作するための手順を解説します。

File > Examples > Adafruit ST7735 and ST7789 Library graphicstest  を選びます。

下図変更前の行のスケッチを、変更後のように修正することで動作します。
配線の変更はありません。

結果

文字列や線など様々な描画関数のサンプルが次々に表示されます。
最後は下図右側の絵が表示され、色反転が繰り返されます。

ST7735を使ったマイコン基板のサンプル

絵をクリックするとサイト内のページへジャンプします。

基板名
LOLIN32 Lite
Luat OS ESP32C3
M5Stamp Pico Mate
NODEMCU V3 WIFI MODULE CH340G
TTGO-T8
Waveshare ESP32S2Pico
ESP32-WROVER-DEV
M5STAMP Pico Mate
W5100S-EVB-Pico
XIAO ESP32C3
LOLIN C3 Pico V1.0.0
M5Stamp C3 MATE
Lilygo T-TITE
LOLIN C3 MINI V2.1.0
Adafruit QT Py ESP32-S2
01Space ESP32-C3-C3FH4
01Space RP2040-0.42LCD

ライセンスについて

MIT License および ST7735/ST7789

Raspberry Pi Pico関連リンク

コメント

タイトルとURLをコピーしました