自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用
秋月電子で販売されている SHARPの400×240モノクロLCDを ME社製ESP32ボードで動かしてみた。
秋月電子のサイトはこちら
使用したライブラリは次の2つ
- Adafruit_SHARP_Memory_Display
- Adafruit GFX library
上記のgithubサイトからダウンロードして Arduino-IDE の librariesフォルダにファイルを展開する方法でインストールする。
今回は別の方法「Arduino-IDE ライブラリマネージャ」からインストールする方法をやってみることにする。
「スケッチ」->「ライブラリをインクルード」->「ライブラリを管理…」を選択してライブラリマネージャが開くので、あとは検索機能を使ってライブラリを絞り込みインストールするだけ。次の画面はすでにインストール済なので「インストール」ボタンが押せませんが未インストールであれば「インストール」ボタンをクリックする。
SharpLCDとME-ESP32の接続はこんな感じにしました。
ME-ESP32ボードとの接続はこんな感じ。
動かしたサンプルプログラムは、Adafruit_SHARP_Memory_Displayに含まれる sharpmemtest.ino を使用した。Adafruit_SHARP_Memory_Display\examples\sharpmemtestフォルダにある。
sharpmemtest.ino の変更する箇所は次のところ。
変更前:
// any pins can be used
#define SHARP_SCK 13
#define SHARP_MOSI 11
#define SHARP_SS 10
// Set the size of the display here, e.g. 144×168!
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168);
変更後:
// any pins can be used
#define SHARP_SCK 13
#define SHARP_MOSI 27
#define SHARP_SS 33
// Set the size of the display here, e.g. 144×168!
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 400, 240);
後はビルド&書き込みして実行すれば試せます。
うまく行けばLCDに次のような表示がされる。
なお、今回はブレッドボードにME-ESP32ボードを配置しジャンパ線で接続したためIOピンのハイローの変化についていけないか、もしくはノイズが乗るのかなのか表示が乱れました。
そのため、IO処理の途中にウェイト「asm(“nop”);」を挿入して遅らせることにしたところ何とかちゃんと表示するようになりました。(ここは各自の環境に合わせて調整が必要なのかも?…)
試してはいませんがSharpLCDとESP32を搭載できる基板を作成して基板内配線にした場合はウェイト無しでもいけるのかもしれません。
次回はGR-KURUMIで自作したライブラリを ME-ESP32で動かしてみたいと考えている。