ESP32

ESP32でLCDディスプレイモジュールを使って文字を表示する

ESP32とLCDディスプレイモジュール(キャラクタ液晶ディスプレイ)を使って、文字を表示してみたいと思います。

LCDディスプレイモジュールの準備

Amazonで格安で買える「LCDディスプレイモジュール」とI2C通信が行える「シリアルインターフェースボード」を購入しました。

  • 1602 LCD ディスプレイモジュール DC 5V 16×2キャラクタ
  • 1602 LCD ブラック IIC/I2C/TWI/SPI シリアル インタフェース ボード

中国から郵便で送られてきていて、忘れた頃にポストに投函されていました。購入してから届くまでに大体2週間程度ぐらいかかりました。

LCDディスプレイモジュールとシリアルボードを接続して使用します。

直接半田付けしてしまっても良いかと思ったのですが、貧乏性なのでピンソケットを使用しました。

ESP32とLCDディスプレイモジュールを接続

ESP32とLCDディプレイモジュールを接続します。

シリアルボードのGND、VCC、SDA、SCLの4つをESP32に接続します。

GNDと5Vは、ESP32のGNDと5Vのピンに接続します。

SDAはESPの21ピン、SCLは22ピンに接続して下さい。

次に、I2C通信で使用するLCDディスプレイモジュールのアドレスを調べます。

アドレスは、Arduinoホームページにある「i2c_scanner」というプログラムを使用します。下記のサイトにアクセスして、ページ中間ぐらいにあるプログラムをArduino IDEに貼り付けて実行します。

Arduino Playground – I2cScanner

Arduiono IDEのシリアルモニタでESP32からの応答を確認して下さい。プログラムの通信速度は「9600bps」になっているので注意して下さい。

取得したアドレスはプログラム作成時に使用するので、控えておいてください。

文字列表示 プログラム作成

LCDディプレイモジュールに文字列を表示するプログラムの作成を行います。

まずは、LCDディプレイモジュールを使用するためのライブラリをインストールします。

Arduino IDEを起動して、メニューの「ツール」→「ライブラリを管理」を選択します。

表示した「ライブラリマネージャ」のテキストボックスに「LiquidCrystal I2C」を入力します。

「LiquidCrystal I2c by Frank de Brabander」が表示されるので、「インストール」ボタンを押してインストールします。

インストールが完了したらプログラムを書いていきます。

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const unsigned int ADDRESS = 0x27;
const int CHARS_NUM = 16;
const int LINES_NUM = 2;

LiquidCrystal_I2C lcd(ADDRESS, CHARS_NUM, LINES_NUM);

void setup() {
  lcd.init();
  lcd.backlight();
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Hello World!");

  lcd.setCursor(0, 1);
  lcd.print("DISP TEST");

  delay(100);
}

プログラムについて簡単に説明いたします。

1行目で、I2C通信を使用するためのライブラリのヘッダを読み込みます。

2行目で、LCDディスプレイモジュールを使用するためのライブラリのヘッダを読み込みます。

4行目で、「i2c_snanner」で取得したLCDディスプレイモジュールのアドレスを設定しています。

5行目で、LCDディスプレイモジュールの1行で表示できる文字数を設定しています。

6行目で、LCDディスプレイモジュールで表示できる行数を設定しています。

8行目で、「LiquidCrystal_I2C」クラスを使用するための変数を設定しています。4,5,6行目で設定した値を引数に入れて初期化しています。

11行目で、LCDディスプレイモジュールの初期化、12行目で、バックライトをONにしています。

16行目で、ディスプレイの1行目の先頭にカーソルを移動させ、17行目で、「Hellow World!」の文字列を設定しています。

19行目で、ディスプレイの2行目の先頭にカーソルを移動させ、20行目で、「DISP TEST」の文字列を設定しています。

ESP32とパソコンをUSBケーブルで接続して、「マイコンボードに書き込み」を行ってください。

1行目に「Hellow World!」、2行目に「DISP TEST」が表示されます。

文字が表示されない場合は、LCDディスプレイモジュールに接続したシリアルボードについている「可変抵抗」をドライバで調整します。これで、ディスプレイの明るさの調整が行えます。

「LiquidCrystal I2C」ライブラリのおかげで簡単に文字列が出力できました。

【参考図書】