🤖
エンジくん
これまでセンサーの値はシリアルモニターで確認してきたね。今度はLCD液晶ディスプレイに文字を表示して、本格的なデバイスを作ろう!たった4本の線でつながるI2C接続は超便利だよ!
1このレッスンで学ぶこと
- 📺 I2C LCD(16×2) — 16文字×2行の液晶ディスプレイ
- 🔌 I2C通信 — SDA/SCLの2本だけで通信
- 📝 lcd.print() — 文字列や数値を表示
- 📍 lcd.setCursor() — 表示位置を指定する
- 🎮 バーチャルLCDシミュレーター — 文字を入力して表示できる!
2用意するもの
💡 I2C LCDはジャンパー線4本だけでOK!(VCC・GND・SDA・SCL)HC-SR04と同じ手軽さだね。
3I2C通信のしくみ
🔌 I2Cとは?
🤖
Arduino
マスター
→
SDA (A4)
SCL (A5)
📺
LCD
スレーブ(0x27)
SDA(A4)
データの送受信
SCL(A5)
タイミングのクロック信号
アドレス(0x27)
複数のデバイスを1本のバスで区別
📐 LCD 16×2の座標
row=0
[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]
row=1
[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]
例:lcd.setCursor(5, 1) → 2行目の6番目の位置にカーソルを移動
4コードを見てみよう
#include <Wire.h> // I2C通信
#include <LiquidCrystal_I2C.h> // LCDライブラリ
// LCDオブジェクト(I2Cアドレス 0x27、16列、2行)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin(); // LCD初期化
lcd.backlight(); // バックライトON
// 1行目に表示
lcd.setCursor(0, 0);
lcd.print("Hello, World!");
// 2行目に表示
lcd.setCursor(0, 1);
lcd.print("EngiKids :-)");
}
void loop() {
// ここでセンサーの値などを表示できる!
}
⚠️ LCDのI2Cアドレスが0x27で動かない場合は0x3Fを試してください。LCDモジュールによって異なります。
💡 LiquidCrystal_I2CライブラリはArduino IDEの「ライブラリを管理」から「LiquidCrystal I2C」を検索してインストールしよう!
5回路のつなぎ方
6実際につないでみよう!
7クイズに挑戦!
🤖
エンジくん
I2C通信とLCDのコマンドをしっかり覚えよう!次のレッスンでセンサーと組み合わせて使うよ!
クイズを読み込み中…
8バーチャルLCDシミュレーター 📺
🤖
エンジくん
テキストボックスに文字を入力してLCDに表示してみよう!プリセットボタンでいろんなメッセージも試せるよ!
9まとめ
- ✅ I2C LCDは VCC・GND・SDA(A4)・SCL(A5) の4本で接続
- ✅
#include <LiquidCrystal_I2C.h>でライブラリを読み込む - ✅
lcd.begin()とlcd.backlight()で初期化 - ✅
lcd.setCursor(col, row)→lcd.print()で任意の位置に表示 - ✅ アドレスは 0x27 か 0x3F(LCDモジュールによって異なる)