[ESP32]IoTマイコンを動かしてみる7 -LCD制御するよ編‐

5V駆動のLCDを3.3VロジックのESP32で動かすべく作戦を立てた前回。

実際につないで動作を確認してみます。


接続図おさらい

ESP32-DevKitCに良さげなブレッドボードを手に入れたので少し接続図を修正。

ESP32とLCDの接続ピンは下記の通り。

SD1602V ESP32-DevKitC
VSS GND
VDD 5V
VO 半固定抵抗
RS IO32
R/W IO33
E IO25
DB0
DB1
DB2
DB3
DB4 IO26
DB5 IO27
DB6 IO14
DB7 IO13
A 3V3
K GND

#表が見づらいので後でWordpressのプラグインを探そう。(修正済)

実際の配線はこんな感じ。

スケッチ

すみません。PlatfromIOが勝手に再インストール始まったみたいで使えないのでとりあえずArduino IDEのサンプルでお茶を濁します。

Arduino IDEから[スケッチ例]→[LiquidCrystal]→[HelloWorld]サンプルです。

変更点は下記。

RWはどうせReadしないからサンプルの通りGNDにして、lcd()で引数に指定しなくても良いと思う。

とりあえずつなげちゃったので指定しておく。

hello, world!

動いた。よかった。(バックライトがまぶしすぎて見づらいけれど。。)

最初何も表示されなくて焦ったけど半固定抵抗でコントラスト調整したら動きました。

データシートによるとVDD-VOの標準電圧が4.0V(Min. 3.8 – Max. 4.3)なので結構プラス側に調整しないとまともに映らないっぽい。

あと2行目がひたすらカウントアップしていくサンプルなんだけど30秒くらいでリセットされるのが地味に気になる。

まとめ

5V駆動のLCDでも頑張ればなんとかESP32で動かせた。

しかし配線がやっぱり多すぎる。シリアルなディスプレイを検討中。

せっかくなのでキャラクタディスプレイじゃなくてグラフィックディスプレイにしようかな。

というかせっかくの無線モジュールなのにHelloWorld表示しているだけじゃもったいないのでなにかウェブからデータを取得して表示するようにしたい。

それでは。おやすみなさい。

余談

と、前述したブレッドボードも含めて秋葉原のパーツ屋を巡ってきたのだが、めぼしいディスプレイモジュールは見つけられず、今回の回路が動かなかったときに備えてロジックレベル変換基盤も買ってきたのだけど、4bitとか半端なやつを買ってしまったのでパラレルでは使えず。

まあブレッドボード買えたから良いか。