ESP32+MicroPythonで液晶ディスプレイ(LCD)の使い方

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番ピン

LCD回路図

プログラムの作成

こちらのサイトを参考にさせてもらいました。 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ディスプレイが使えるようになったので、単独動作させることができそうです。次回は温度を表示させるプログラムを作成してみたいと思います。