キャラクタ液晶モジュールLCD1602について
📌 はじめに
LCD1602は、16文字×2行表示ができるキャラクタ液晶モジュールです。もともとはHD44780互換パラレルインターフェースで動作しますが、I2Cインターフェース変換モジュール(PCF8574など)を使えば、配線本数を2本に削減し、ArduinoやRaspberry Piなどから簡単に制御できます。
🏛 背景と誕生理由
HD44780互換液晶は長年、家電や産業機器の情報表示に利用されてきました。しかし、パラレル接続(4bit/8bitモード)は配線が多く、マイコンのI/Oピンを大量に消費するのが難点でした。
そこで登場したのがI2C接続用の拡張モジュール。これにより、SDAとSCLの2本の信号線+電源GNDだけで液晶を制御でき、配線の手間とI/O消費を大幅削減できるようになりました。
⚙️ LCD1602の構造
-
表示エリア:16列 × 2行
-
文字生成:CGROM(英数字・記号)+CGRAM(ユーザー定義文字最大8個)
-
コントローラIC:HD44780または互換品
-
バックライト:白色LED(ON/OFF制御可)
-
I2C変換モジュール:PCF8574などのI/Oエキスパンダ
I2Cモジュールを外すと、従来のパラレル方式でも使えます。
🔌 I2C接続のメリット
-
配線本数削減:SDA・SCL・VCC・GNDの4本だけ
-
I/Oピン節約:マイコン側のGPIO使用を最小限に
-
拡張性:I2Cバスに他のセンサーやモジュールを追加可能
-
接続の簡単さ:ジャンパワイヤ数が少なく、配線ミスが減る
Arduino UNOの場合、従来8本以上必要だった配線が4本に。さらに他のI2Cデバイス(RTCや温度センサー)とも共存可能。
🔄 基本的な使い方
1. 接続
-
VCC → 5V(または3.3V対応品の場合3.3V)
-
GND → GND
-
SDA → マイコンのSDAピン(例:Arduino A4)
-
SCL → マイコンのSCLピン(例:Arduino A5)
2. アドレス確認
-
PCF8574モジュールのデフォルトは
0x27
または0x3F
-
i2cdetect
コマンド(Raspberry Pi)やスキャナースケッチ(Arduino)で確認可能
3. ソフトウェア制御例(Arduino)
-
ライブラリ:
LiquidCrystal_I2C
-
初期化
LiquidCrystal_I2C lcd(0x27, 16, 2); lcd.init(); lcd.backlight(); lcd.print("Hello, I2C!");
lcd.createChar()
を使えば、温度記号やバッテリーアイコンなどのカスタム文字も表示可能。
🧩 応用例
-
温湿度センサー(DHT22など)+LCDでリアルタイム表示
-
RTC(DS3231)と組み合わせて時計表示
-
メニュー選択UIの表示
🆚 I2C接続とパラレル接続の比較
項目 | I2C接続 | パラレル接続 |
---|---|---|
配線本数 | 4本 | 6〜10本 |
I/Oピン消費 | 少 | 多 |
通信速度 | やや遅い | 高速 |
拡張性 | 高い | 低い |
I2C接続は通信速度がパラレルより遅いため、アニメーションのような高速更新には不向き。
💡 使う嬉しさ
-
配線のシンプル化で工作の失敗率が激減
-
I/O節約で他のデバイスも同時利用可能
-
豊富なライブラリで初心者でも簡単に使える
-
長年使われてきた信頼性のある表示モジュール