ST7789 IPSディスプレイ
電子工作に使えるディスプレイとして以前紹介した2.8インチILI9341ディスプレイなど、すでにいくつか持っているのですが、記事の最後に触れたように画質が悪い上に視野角がとんでもなく狭いという問題がありました。
ST7789ディスプレイ
ということでアリエクでIPSのディスプレイを買ってみました。
5個セットが1750円、一つあたり350円です。
https://ja.aliexpress.com/item/1005005769316344.html
- 1.69インチ
- IPS液晶パネル
- 280x240px (7:6)
- フルカラー
- タッチパネルなし
- SPIインターフェイス
- ドライバIC ST7789

ディスプレイサイズはSDカードより一回り大きいくらい
このディスプレイは2.8インチILI9341ディスプレイと比べるとサイズは小さいのに画素数は同じくらいなので、電子工作に使われるディスプレイとしては最高クラスに画素密度が高いです。
自分が今見ている21.5インチのフルHDディスプレイが100dpiですが、このディスプレイはその倍の200dpiと完敗です。メインノートのMacBookAirのディスプレイが224dpiなのでそれと同じくらいです。
その他の特徴として角が丸くなっています。
Adafruitにも同じような製品があり、コントローラーやサイズも同じです。switch-scienceでは3600円と、かなり高価な製品のようです。
ピン配置
| Pin | Description |
|---|---|
| BLK | バックライト電源 |
| CS | SPI CS |
| DC | データ・コマンド |
| RES | リセット |
| SDA | SPI MOSI |
| SCL | SPI SCK |
| VCC | 3~5V |
| GND |
動かしてみる
配線

プログラム
前回同様、Adafruit GFXライブラリを使うので、ほとんど同じプログラムで動きます。
ライブラリの詳しい使い方は以前の記事を参考にしてください。
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>
#include <Fonts/FreeSans24pt7b.h>
#define CS 17
#define SCK 18
#define MOSI 19
#define RST 20
#define DC 21
Adafruit_ST7789 tft = Adafruit_ST7789(&SPI, CS, DC, RST);
void setup() {
tft.init(240, 280);
tft.setRotation(3);
tft.fillScreen(ST77XX_WHITE);
tft.setCursor(30, 50);
tft.setFont(&FreeSans24pt7b);
tft.setTextColor(ST77XX_BLACK);
tft.printf("Hello World!");
}
void loop() {}

Lが多い...
画素密度が高いだけあって非常に見やすいです。
目的の視野角に関しても完璧で、ほぼ真横からでも問題なく読めます。

画像表示
ソースコード
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>
#include "fedora42.h" // https://moris.day/files/blog/st7789-ips-display/fedora42.h
#define CS 17
#define SCK 18
#define MOSI 19
#define RST 20
#define DC 21
Adafruit_ST7789 tft = Adafruit_ST7789(&SPI, CS, DC, RST);
void setup() {
tft.init(240, 280);
tft.setRotation(3);
tft.drawRGBBitmap(0, 0, fedora42_day, 280, 240);
}
void loop() {}

Fedora42の壁紙
写真でうまく伝えられないのが残念な程に画質が良いです。
発色などはMacBookに劣りますが、これだけの画素密度、視野角があれば電子工作用途で困ることはないでしょう。
これがひとつ350円ですから大当たりですね。