電子ペーパーモジュールを使う(SSD1680)

コンピュータ、組み込み

電子ペーパーモジュールを使ってみます。
LOLIN D32 PROでの接続をしました。

今回紹介するもの

LOLIN SSD1680(250×122)

特徴

LCDやOLEDと違い、電源を供給しなくても描画文字や画像は表示されたまま消えません。
色数は白と黒以外にもう1色を購入時に選択します。

製品情報
サイズ2.13inch
解像度(X, Y)250, 122
通信方式SPI
ドライバSSD1680
動作電圧3.3V
その他JST SH 1mm 10pin
外観

前面

背面

使用感

電子ペーパーの特徴は電源がなくても表示が残ることなので、表示更新の少ない使用方法が望ましいと思います。
マイコンがスリープモードや電源を遮断しておいても表示状態は保持されます。
常時表示しておきたいメモだったり、固有の番号(IPアドレスやMACアドレス)などを表示しておくと、装置を起動しての確認が不要になります。

LCDやOLEDモジュールに比べて描画はとても遅いです。
アニメーションや操作により表示が変化するような用途には不向きです。
発光していないので暗い場所での使用は不向きです。

SPI用のSHコネクタがついているので一部のマイコンからはケーブルの挿抜だけで接続できます。
LOLIN製のマイコン、LOLIN D32 PRO のコネクタ(JST SH1mm 10pin)をストレートで接続することでSPIの配線がコネクタの着脱だけでできます。

準備

ライブラリ

e-Paperを制御するためのライブラリはLOLIN Git-Hubからダウンロードします。
GitHub – wemos/LOLIN_EPD_Library: Arduino library for the LOLIN e-paper display

ライブラリ名確認時バージョン、更新日
Arduino library for the LOLIN e-paper display16, Jul, 2021

ダウンロードしたzipファイルをArduino IDEの
スケッチ > ライブラリのインクルード > ZIP形式のライブラリをインクルード
からインストールを行います。

使い方(LCD表示)

LOLIN D32 PROからサンプルを動作させる

説明

LOLINライブラリのサンプルから接続箇所を修正した簡単な文字列表示サンプルを掲載します。

その他のグラフィック命令のサンプルは
スケッチ例 > LOLIN_EPD > graphicstest_2_13_inch_250x122_TRI-COLOR_SSD1680
を参照してください。

配線

JST SH1mm 10pinケーブルをLOLIN D32 PROと SSD1680のコネクタに接続します。

スケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence/

【マイコン基板】
LOLIN D32 Pro

【スケッチの説明】
SSD1680の表示制御をします。

参考
graphicstest_2_13_inch_250x122_TRI-COLOR_SSD1680

【ライブラリ】
esp32 > ESP32 Wrover Module

【準備】
LOLIN D32 Pro <-> SSD1680
JST SH1mm 10pin ストレート配線の接続

【バージョン情報】
2023/2/20 : 新規
**********************************************************************/
#include <LOLIN_EPD.h>
#include <Adafruit_GFX.h>

//LOLIN D32 Proを使用する場合、以下マクロ定義がコメントアウトされているので、コメントを外すことで使用することができます。
/*D32 Pro*/
#define EPD_CS 14
#define EPD_DC 27
#define EPD_RST 33  // can set to -1 and share with microcontroller Reset!
#define EPD_BUSY -1 // can set to -1 to not use a pin (will wait a fixed delay)

LOLIN_SSD1680 EPD(250, 122, EPD_DC, EPD_RST, EPD_CS, EPD_BUSY);

void setup(void)
{
  EPD.begin();

  // large block of text
  EPD.clearBuffer();
  EPD.fillScreen(EPD_WHITE);

  EPD.setTextSize(4);
  EPD.setTextColor(EPD_BLACK);
  EPD.setCursor(0,0);
  EPD.println("TAMANEGI");

  EPD.setTextSize(3);
  EPD.setTextColor(EPD_RED);
  EPD.println("");
  EPD.println("SSD1680");
  EPD.println("Res=250 x 122");
  EPD.display();

}

void loop()
{
}

結果

表示しました。

電源がなくても表示が維持されています。

コメント

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