プロジェクト09:テキストLCDの文字を表示
このプロジェクトで学ぶこと: I2C通信を使って液晶ディスプレイに文字や数値を表示する方法を学びます。わずか2本の信号線で複雑なディスプレイ制御を実現するI2Cの仕組みを理解します。
完成イメージ
[LCDに「Hello, World!」と経過秒数が表示されている写真を挿入]
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Uno R3 | 1 |
| LCD1602モジュール(I2C接続) | 1 |
| ジャンパー線 | 4本 |
回路図と配線
[回路図画像を挿入]
配線手順
- LCDの VCC をArduinoの 5Vピン に接続する
- LCDの GND をArduinoの GNDピン に接続する
- LCDの SDA をArduinoの A4ピン に接続する
- LCDの SCL をArduinoの A5ピン に接続する
I2C接続の便利さ 16本もピンがある液晶ディスプレイも、I2Cバックパックモジュール付きなら4本の配線だけで接続できます。SDA(データ)とSCL(クロック)の2本の信号線で128個までのデバイスを接続できる、非常に効率的な通信規格です。
Arduinoスケッチ(プログラム)
// LCD1602にテキストとカウンターを表示
#include <Wire.h> // I2C通信ライブラリ
#include <LiquidCrystal_I2C.h> // LCD制御ライブラリ
// I2Cアドレス0x27、横16文字、縦2行
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); // LCD初期化
lcd.backlight(); // バックライト点灯
lcd.setCursor(0, 0); // 1行目の先頭にカーソルを移動
lcd.print("Hello, World!"); // 文字を表示
}
void loop() {
lcd.setCursor(0, 1); // 2行目の先頭へ
lcd.print("Time:");
lcd.print(millis() / 1000); // 経過秒数を表示
lcd.print("s "); // 桁崩れ防止のスペース
delay(500);
}
コードのポイント解説
LiquidCrystal_I2C lcd(0x27, 16, 2) LCDオブジェクトを作成します。0x27はI2Cアドレス(モジュールによって0x3Fの場合もあります)。16, 2は16文字×2行を意味します。
lcd.setCursor(列, 行) 文字を表示する位置を指定します。左上が(0, 0)、2行目の先頭が(0, 1)です。
millis() Arduinoが起動してからの経過時間をミリ秒で返します。delay()と違ってプログラムを止めないため、より高度なタイミング制御に使います。
事前準備:ライブラリのインストール
LiquidCrystal_I2Cライブラリは別途インストールが必要です。
- Arduino IDEのメニューから 「ツール」→「ライブラリを管理」 を開く
- 検索欄に「LiquidCrystal I2C」と入力する
- 「LiquidCrystal I2C by Frank de Brabander」をインストールする
動作確認
- ライブラリのインストール後、スケッチをアップロードする
- LCDに「Hello, World!」と経過秒数が表示されれば成功
- 文字が見えない場合はLCD裏面の可変抵抗をドライバーで調整してコントラストを上げる
このプロジェクトで学んだこと
- I2C通信: 2本の信号線で複数デバイスを接続する通信規格を理解しました
- 外部ライブラリ: ライブラリのインストールと使い方を習得しました
millis():delay()に依存しないタイミング制御の第一歩を学びました
次のプロジェクト「サーミスタ温度計」では、数式を使ってセンサーの生の値を意味ある数値(温度)に変換します。
深掘り:技術の背景と社会への広がり
LCDの発明:時計から始まったディスプレイ革命
液晶(Liquid Crystal)は1888年にオーストリアの植物学者フリードリッヒ・ラインツァーが植物から発見しました。電気で光の透過を制御できることが分かったのは1960年代で、RCAのジョージ・ハイルマイヤーが1968年に世界初の液晶ディスプレイを発表しました。日本では1970年代に電卓・腕時計への応用が急速に進み、シャープが1973年に世界初のTN液晶電卓を発売。その後カラー化・高精細化が進み、現在のスマートフォン・テレビ・PCモニタへと発展しました。
IoT時代のディスプレイと情報可視化
組み込みシステムにおける小型LCDは、今日のIoT機器の「顔」です。工場の設備状態モニタ、農業用の環境センサー端末、医療機器の数値表示など、クラウドに接続できない現場でリアルタイムに情報を表示する役割を担っています。電力インフラが不安定な途上国では、太陽光発電と小型LCDを組み合わせたオフグリッドの環境モニタリングシステムが農村の気候変動適応を支える事例も増えています。
← プロジェクト08:サーボ | 全プロジェクト一覧 | 次のプロジェクト:サーミスタ温度計 →

