NOKIA5110LCDは、NOKIA携帯5110に使われていたモノクロ・グラフィック液晶モジュールで、現在もAmazonなどで入手可能です。
解像度は、48×84ドットでVcc=2.7V~3.3Vですので、ESP32に直結できます。コントローラチップは、モトローラのPCD8544です。
ArduinoやSTM32では、LCD5110_Basicというライブラリ(Rinky-Drink Electronicsというサイトからダウンロードできます)を使いましたが、ESP32では、コンパイル時にエラーがでてしまい、利用できません。(Arduino IDEを使っています)
そこで、GitHubからAdafruit PCD8544 Nokia 5110 LCD LibraryとAdafruit GFX Libraryをダウンロードして、Arduino IDEのライブラリーにインストールして利用しました。
ESP32-DevKitCとNOKIA5110の接続は、次の通りです。
GPIO14(HSPI SCK)------CLK
GPIO13(HSPI MOSI)-----DIN
GPIO27-------------------D/C
GPIO15(HSPI SS)--------CE(CS)
GPIO26-------------------RST
3V3-----------------------Vcc
GND----------------------LIGHT,GND(5110のLIGHTは、GNDに接続するものとVccに接続するものがあるので要確認)
回路図です。
ライブラリーのサンプルプログラムをコンパイル・書き込むと表示デモが表示されました。
写真のイメージが表示された後、グラフィック表示やテキスト表示のサンプルが次々に表示されました。
勉強のために、いつものように「Hello world!」を表示させてみます。
NOKIA5110のCE(CS)をGNDに接続すると配線が1本少なくなります。回路図です。
この回路でテストします。
サンプルのスケッチを見ながら、必要な部分を抜き出したスケッチです。
これで、このライブラリの基本的な使い方が分かります。
setContrast()の数値は、50くらいが適当でした。
最初のdiplay.display();で花のイメージが表示されます。続いて、TextSize(1)で黒文字で「Hello world!」が表示されました。
表示の仕組みですが、display.println("Hello world!");でバッファにイメージが作られ、次の行のdisplay.display();でNOKIA5110にデータが送られて表示されます。
テキスト表示、グラフィック表示についてもう少し調べて、次回掲載します。