ESP32で2インチ I2C液晶モジュールを使ってみた(ST7567S、Arduino IDE) | a24a24a24のブログ

a24a24a24のブログ

アメピグ残党。
釣り、温泉、お出かけ、パソコン。最近、電子工作。

前回、超小型0.66インチのOLEDモジュールで表示を試しましたが

今度は2インチ強、やや大き目の液晶モジュールを買ってみました。

 

 

 

 

 

 

こんな部品です。

 

AliExpressのあちこちで売っています。

OLEDではなく、128x64ドットのバックライト付き液晶パネル。

チップはST7567S、I2C制御で550円くらい。画面の大きさを考えるとコスパ良。

 

パネル色は青、黒、グレーの三種類があります。

面白そうなので、青をポチッと注文。

 

 

 

 

 

画面のサイズは48.6mm×24.3mmで、計算すると2.13インチ。

0.96インチ SSD1306 OLEDと比べて、約5倍の面積です。

 

 

 

 

 

部品の到着後、ESP32に接続してみたところ

既成のライブラリでは動きませんでした。

有名な「U8g2lib.h」がST7567Sに対応しているようですが、

手元の部品=128x64 I2Cではうまく動かず(私の使い方が悪いのかもしれません)

 

どうやら「ST7567S 128×64 I2C」でも、微妙に仕様の異なる部品があるようです。

ダメやんけ。

 

 

 

 

 

結局、自前で制御のプログラムを作りました。

 

wire.hだけ読み込んで、あとはデータシートを元にポチポチとC言語で書き

20ほどあるコマンドを1つ1つ試して、想定通りの動きをするか確認していきます。

 

 

 

 

 

初期化コマンドをまとめるだけで一日がかりでした。

でもコマンドをほぼ全部試した結果、液晶の動きをひと通り理解できたと思います。

 

ネットに役立つ情報が見つからず苦戦する中、

下記のMicroPython向けソースコードが参考になりました。公開された方に感謝です。

https://forum.micropython.org/viewtopic.php?f=21&t=12747

 

この部品はキャラクタディスプレイではなく「グラフィックディスプレイ」なので

英数字のフォントデータをソフト側に用意し、

データシートを参考にして文字描画プログラムを作りました。

 

 

 

 

 

そして完成、無事動作。

 

 

 

以前作った「I2S WAVプレイヤー」にST7567Sの画面を取り付けてみました。

左下のSSD1306(0.96インチ)と比べて、大きい!

文字が大きすぎて、ドットのカクカクが見えるほど。

 

 

 

 

 

 

使用感や表示速度はOLEDとほぼ変わりません。

パネルの追従が遅く、0.1~0.2秒ほど残像がじわっと残ります。唯一の欠点でしょうか。

レトロな液晶の表示っぽくて、これはこれで趣があります。

 

発色はバックライトが明るくあざやか。綺麗に青と白が出ています。

目立つ滲みやチラつきはなく、視認性良好。

視野角は上下左右とも実用十分と感じました。


 

 

 

結論:なかなか良い部品です。

時計や、センサーの値表示に向いてそうですね。

電子工作でいろいろと用途を考えて、使ってみたいと思います。