ESP32-2432S028 LovyanGFX で画面表示とタッチ制御
はじめに
Cheap Yellow Display とも言われている ESP32-2432S028 でまず画面表示とタッチ制御してみます。
1番簡単かつ扱いやすい「LovyanGFX」というライブラリを使用します。
私が購入した時点では、1500円台というかなり安価に販売されていますので、使い勝手が良さそうです。
各センサー収集した情報の表示部として活用しても良いと思います。
開発環境
OS : Windows 11 Pro
ESP32:ESP32-2432S028
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:2.0.17
使用ライブラリ:LovyanGFX(1.1.16)
使用パーツ
ESP32-2432S028
Ofegtom (オウバンゲ)
ポチップ
作業内容
配線図
なし。
ライブラリインストール
LovyanGFX
TFT(IPS)液晶ディスプレイ と タッチスクリーンを 制御するライブラリをインストールします。
スケッチ作成
#define LGFX_AUTODETECT
#include <LovyanGFX.hpp>
static LGFX lcd;
void setup(void)
{
Serial.begin(115200);
lcd.init(); // 最初に初期化関数を呼び出します。
lcd.setRotation(0); // 回転方向を 0~3 の4方向から設定します。
// (4~7を使用すると上下反転になります。)
lcd.setBrightness(128); // バックライトの輝度を 0~255 の範囲で設定します。
lcd.setColorDepth(24); // RGB888の24ビットに設定
lcd.fillScreen(TFT_DARKGRAY); // 画面全体の塗り潰し
}
void loop(void)
{
uint16_t tX, tY;
bool touched = lcd.getTouch(&tX, &tY);
if( touched ) {
Serial.println("touched (" + String(tX) + "," + String(tY) + ")");
lcd.setColor(TFT_YELLOW);
lcd.drawCircle (tX, tY, 20);
}
}
コード説明
必要なライブラリをインクルードします。
この時自動的に接続設定を検出してくれる「LGFX_AUTODETECT」を定義しておきます。
#define LGFX_AUTODETECT
#include <LovyanGFX.hpp>
初期化処理をして、ダークグレイで塗りつぶしています。
lcd.init(); // 最初に初期化関数を呼び出します。
lcd.setRotation(0); // 回転方向を 0~3 の4方向から設定します。
// (4~7を使用すると上下反転になります。)
lcd.setBrightness(128); // バックライトの輝度を 0~255 の範囲で設定します。
lcd.setColorDepth(24); // RGB888の24ビットに設定
lcd.fillScreen(TFT_DARKGRAY); // 画面全体の塗り潰し
画面タッチを検出しています。
bool touched = lcd.getTouch(&tX, &tY);
画面タッチを検出すると、シリアルモニタに座標を出力し、タッチした座標を中心に黄色の円を描画しています。
Serial.println("touched (" + String(tX) + "," + String(tY) + ")");
lcd.setColor(TFT_YELLOW);
lcd.drawCircle (tX, tY, 20);
動作確認
起動するとダークグレイの画面になります。(写真では青色が強めですが。)
画面をタッチすると黄色の円が描画されます。
タッチの検出と描画が早いため、ちょっとタッチしただけで複数の円が描画されています。
おわりに
配線せずに2.8インチのディスプレイを使用でき、2000円以内で手に入れることができるので、かなり好印象です。
コメント