ESP32+MicroPythonで液晶ディスプレイ(LCD)の使い方
目次
はじめに【ESP32+MicroPythonでLCD(液晶ディスプレイ)表示する】
MicroPythonではprint()関数でコンソール出力ができます。PC接続時には手軽で便利ですが、マイコン単体で使用したい場合には不便です。LEDや7セグメントLEDでは情報も限られるので、LCD(液晶)ディスプレイを接続してみたいと思います。
事前準備:MicroPythonのセットアップ
準備として、ESP32にMycroPythonをセットアップしておきます。こちらの記事で紹介しています。
回路図
LCDディスプレイとESP32を接続します。ピンは以下のように使用しました。
- GND:GNDピン
- VCC : 5Vピン
- SDA : 21番ピン
- SCL : 22番ピン
プログラムの作成
こちらのサイトを参考にさせてもらいました。 I2C LCD with ESP32 and ESP8266 using MicroPython
ライブラリの準備
上記のサイトから「lcd_api.py」と「i2c_lcd.py」をダウンロードします。ESP32に転送しておきましょう。
- Thonnyではmain.pyをESP32に書き込まなくても実行できますが、ライブラルは転送されていないとエラーになります。忘れずに転送しておきましょう。
- lcd_api.pyはi2c_lcd.pyで呼び出しています。main.pyでは使用していませんが、必ず転送してください。
main.pyの作成
main.pyを作成します。
import machine
from machine import Pin, SoftI2C
from i2c_lcd import I2cLcd
from time import sleep
I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #ESP32用の設定
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
while True:
lcd.putstr("Hello!")
sleep(2)
lcd.clear()
lcd.putstr("Good Bye!")
sleep(2)
lcd.clear()
動作確認
main.pyを実行します。LCDに「Hello!」と「Good Bye!」が2秒おきに表示されれば成功です。
おわりに
LCDディスプレイが使えるようになったので、単独動作させることができそうです。次回は温度を表示させるプログラムを作成してみたいと思います。