📟

LCDモジュールの使い方(I2C版)

2023/01/09に公開


I2C版では少ない配線で制御できる

I2C版の特徴

  • バックライトの ON OFF をソフト側で制御できる
  • GPIOが4本で済む (I2Cでなかったら8本必要)
  • コントラスト調整が簡単 (I2Cモジュールが可変抵抗を装備している)

部品

https://www.amazon.co.jp/gp/product/B083DT6181

https://www.amazon.co.jp/dp/B010Q000V2

モジュールについている青いのが可変抵抗。

配線

LCD 側 Arduino 側
SDA A4
SCL A5
GND GND
VCC 5V

ライブラリ

https://github.com/johnrickman/LiquidCrystal_I2C

別途インストールする。

コード

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

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

void loop() {
  lcd.home();
  lcd.print("COUNT:");
  lcd.print(millis());
}
  • 画面サイズ 16 x 2 はオブジェクト定義時に指定する
  • 最初に begin() ではなく init() を呼ぶ
  • begin() も用意されているが呼ばなくていいっぽい
  • バックライトが不要なら backlight() を呼ばないようにする

ドキュメントがない?

https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/LiquidCrystal_I2C.h

ヘッダファイルを見て察する。LiquidCrystal をベースとして使いやすくなっているように見える。

I2Cアドレスの知り方

A2 A1 A0 の状態で決まる。短絡していない状態が 1 になる。見ると短絡してないので 111 の 7 になる。ルールとして 0x20 から始まる。したがって 0x20 + 7 で 0x27 になる。

Discussion