科学・計算関連

I2C LCDとは?液晶表示で使われる通信方式と基本構成を解説!(1602)

I2C LCDの意味と基本構成
当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

I2C LCDとは?液晶表示で使われる通信方式と基本構成を解説!(1602)

Arduinoなどのマイコンで文字を表示したいとき、よく使われる部品が1602 LCDです。

しかし、液晶の端子を多数つなぐ方法では配線が複雑になり、初心者は接続ミスを起こしやすくなります。

そこで役立つのが、少ない配線で液晶を制御できるI2C LCDです。

I2Cという通信方式の役割、1602 LCDの構成、接続時の注意点を知れば、表示装置をより扱いやすくできるでしょう。

この記事では、基本的な仕組みから配線、プログラムでの扱い方まで順に解説します。

I2C LCDの意味と基本構成

I2C LCDの意味と基本構成

それではまずI2C LCDの意味と基本構成について解説していきます。

I2C LCDの通信方式と表示装置

I2C LCDとは、I2C通信を使って文字表示用の液晶モジュールを少ない信号線で制御する仕組みです。

I2Cは、複数の電子部品が共通の通信線を使ってデータをやり取りするためのシリアル通信方式です。

1602 LCDは、1行に16文字、2行に文字を表示できる液晶表示器を指します。

一般的な1602 LCDは、文字を制御するために多くの端子を持っています。

そのままマイコンへ接続すると、電源端子のほかに複数の制御線とデータ線が必要になります。

I2C変換基板を液晶の背面に取り付けると、マイコン側からは電源線と2本の通信線だけで扱えるようになります。

通信に使う線はSDAとSCLで、SDAはデータ、SCLは通信のタイミングを伝える役割です。

たとえば温度計を作る場合、温度センサーの値を読み取り、その数値を1602 LCDの1行目へ表示できます。

2行目には湿度や動作状態を表示すると、画面を見ただけで装置の状況を把握しやすくなります。

I2C LCDは表示内容を増やすための部品ではなく、液晶を接続しやすくするための構成と考えると理解しやすいでしょう。

I2C LCDで必要になる基本配線は、VCC、GND、SDA、SCLの4本です。

液晶表示そのものは1602 LCDが担当し、I2C変換基板はマイコンとの通信を仲介します。

表示できる文字数や画面サイズは、I2C通信の有無ではなく液晶モジュールの種類によって決まります。

1602 LCDとI2C変換基板の役割

1602 LCDは文字を表示する部品であり、I2C変換基板は少ない配線で制御するための仲介部品です。

1602という表記は、16文字を表示できる行が2行あることを表します。

画面には英数字、記号、ひらがなの一部などを表示でき、利用できる文字は搭載されている表示コントローラーの文字パターンに左右されます。

多くの1602 LCDには、HD44780互換のコントローラーが使われています。

このコントローラーは、文字位置の指定や表示と非表示の切り替え、カーソル表示などの命令を受け取って画面を制御します。

一方、I2C変換基板にはPCF8574系の入出力拡張ICが使われることが多く、I2Cで受け取った信号を液晶用の信号へ変換します。

そのため、液晶本体が最初からI2C専用というより、従来の文字液晶に変換基板を組み合わせた製品が一般的です。

基板上には小さな可変抵抗があり、これは画面のコントラストを調整するために使います。

文字が表示されないときでも、コントラストが合っていないだけである場合があります。

また、バックライト用のジャンパーや半田パッドが設けられた製品もあります。

これは表示文字ではなく、画面の背景を明るくするLEDの点灯を制御する部分です。

1602 LCDの表示容量

1行あたりの表示文字数は16文字

表示行数は2行

同時に見える文字数は16文字×2行で32文字

32文字を超える情報を扱う場合は、一定時間ごとに表示を切り替えたり、文字列を横へスクロールさせたりする工夫が必要になります。

マスターとスレーブによる通信の流れ

I2C通信では、Arduinoなどの制御側がマスターとなり、LCD側は指定を受けるスレーブとして動作します。

マスターは通信を始めるタイミングを決め、どの機器へ命令を送るかを指定します。

スレーブにはI2Cアドレスが割り当てられており、同じ通信線につながった機器の中から対象を選べます。

I2C LCDでよく見かけるアドレスには0x27や0x3Fがありますが、これは製品ごとに必ず同じとは限りません。

変換基板の配線状態やICの種類によって、異なるアドレスが設定されることがあります。

通信では、マスターがアドレスを送ったあと、対象のスレーブが応答します。

続いて送られたデータは、変換基板を通じて液晶コントローラーの命令または表示文字として渡されます。

たとえばカーソル位置を指定してから「25.4」という文字列を送れば、指定位置へ温度の数値を表示できます。

同じSDAとSCLの線には、温湿度センサーや時計モジュールなども接続できます。

ただし、同じアドレスを持つ機器を同じバスへ接続すると、マイコンは対象を区別できません。

複数のI2C機器を使うときは、機器のアドレスを確認することが重要です。

通信相手を住所で選び、内容を順番に渡す仕組みと考えると、I2Cの流れをイメージしやすくなります。

I2C通信で使う端子と配線

続いてはI2C通信で使う端子と配線を確認していきます。

VCC、GND、SDA、SCLの端子構成

I2C LCDの基本配線では、電源用のVCCとGND、通信用のSDAとSCLを正しく対応させます。

VCCは電源のプラス側、GNDは電源の基準となるマイナス側を接続する端子です。

SDAはデータを送受信する線で、画面に表示する文字や制御命令がこの線を通ります。

SCLはクロック信号の線で、データを読むタイミングを各機器で合わせる役割を持ちます。

端子名は基板の印字で確認できますが、製品によって並び順が異なるため、位置だけで判断してはいけません。

VCC、GND、SDA、SCLという文字を一つずつ確認してから配線する習慣が安全です。

Arduino Unoでは、SDAとSCLに対応する専用端子が用意されています。

Arduino Nanoなどでは、アナログ入力端子のA4がSDA、A5がSCLに割り当てられている構成が一般的です。

一方で、マイコンボードの種類によっては、SDAとSCLの端子位置が大きく異なります。

ESP32やRaspberry Pi Picoなどを使う場合は、そのボードの資料でI2Cに使えるGPIOを確認しましょう。

電源電圧も見落としやすい点です。

5Vで動作する1602 LCDが多いものの、使用するマイコンの信号電圧が3.3Vの場合は、通信レベルの条件を確認する必要があります。

端子名 主な役割 配線時の確認点
VCC 電源の供給 必要な動作電圧
GND 電位の基準 マイコンとの共通接続
SDA データ送受信 対応するSDA端子
SCL 通信タイミング 対応するSCL端子

配線を始める前に電源を外しておくと、誤接続による部品の破損リスクを抑えられます。

Arduino Unoと1602 LCDの接続例

Arduino UnoとI2C LCDは、4本の線を端子名ごとに対応させるだけで基本接続を作れます。

Arduino Unoでは、5V端子をLCDのVCCへ、GND端子をLCDのGNDへ接続します。

通信線は、UnoのSDA端子をLCDのSDAへ、SCL端子をLCDのSCLへ接続します。

Unoの基板によっては、SDAとSCLがAREF付近に独立して印字されています。

これらの端子は内部的にアナログ端子のA4とA5につながっているため、どちらの表記を使うかは基板の仕様に従います。

配線が4本だけで済むため、ブレッドボード上でも比較的すっきりと組み立てられます。

ただし、ジャンパー線がゆるいと通信が途切れ、画面が一部だけ乱れることがあります。

試作では、線を軽く動かしても表示が消えないかを確かめると接触不良を見つけやすくなります。

Arduino UnoとI2C LCDの対応例

Arduino 5VはLCDのVCCへ接続

Arduino GNDはLCDのGNDへ接続

Arduino SDAはLCDのSDAへ接続

Arduino SCLはLCDのSCLへ接続

センサーも同じI2Cバスへ追加する場合、SDA同士とSCL同士をそれぞれ共通に接続します。

配線を枝分かれさせても通信は可能ですが、長すぎる線や複雑な配線はノイズの影響を受けやすくなります。

まずはLCDだけを接続して表示確認を行い、そのあとに他の部品を増やす手順が扱いやすいでしょう。

通信方式ごとの配線数と特徴

I2C LCDの大きな利点は、表示用の信号線を2本にまとめられる点です。

文字液晶を並列通信で接続する場合、一般的にはRS、E、複数のデータ線を使います。

4ビット方式でも複数のGPIOが必要になり、センサーやモーター用に使える端子が減ってしまいます。

I2C方式なら、LCDの制御に必要な信号線はSDAとSCLの2本です。

SPI通信も少ない線で高速に通信できる方式ですが、通常はクロック線、送信線、受信線、機器選択線などを使います。

I2Cは通信速度よりも、複数の機器を少ない線で扱いやすい点に強みがあります。

小型の工作で、温度センサー、加速度センサー、RTC、LCDを一緒に使う場面では特に便利です。

一方で、動画のように大量のデータを高速表示する用途には向きません。

1602 LCDは短い文字情報を表示する装置なので、I2Cの通信速度でも実用上は十分な場合が多いでしょう。

通信方式 主な信号線 配線数の傾向 向く用途
I2C SDA、SCL 少ない センサー、文字液晶
並列通信 制御線、データ線 多い 従来型LCDの直接制御
SPI クロック、送受信、選択線 中程度 高速な周辺機器

I2Cを選ぶ際は、配線の少なさだけでなく、接続する全機器のアドレスが重複しないかも確認しましょう。

1602 LCDの表示設定と制御命令

続いては1602 LCDの表示設定と制御命令を確認していきます。

文字位置と行ごとの表示設定

1602 LCDでは、表示する行と文字位置を指定してから文字列を送ることで、意図した場所へ情報を配置できます。

16文字2行の画面では、左上が1行目の先頭となります。

多くのライブラリでは、列番号と行番号を使ってカーソル位置を指定します。

列番号は左端を0として数え、右端の16文字目は15になります。

行番号も上段を0、下段を1として扱う形式が一般的です。

そのため、2行目の先頭に文字を表示したい場合は、列番号0と行番号1を指定します。

温度表示では、1行目に「TEMP」、2行目に測定値を置くと、項目名と数値の関係が分かりやすくなります。

表示位置を指定せずに文字を続けて送ると、前の文字の直後へ順番に表示されます。

16文字を超える長い文字列は、見える範囲を超えた部分がそのまま読めるとは限りません。

日本語は1文字あたりの扱いが英数字と異なる場合があり、ライブラリやLCDの文字コードによって表示できない文字もあります。

初心者の確認用には、まず英数字の短い文字列を表示すると、配線とプログラムの問題を分けて考えやすくなります。

表示位置の考え方

1行目の先頭は列番号0、行番号0

1行目の最後は列番号15、行番号0

2行目の先頭は列番号0、行番号1

2行目の最後は列番号15、行番号1

画面レイアウトを紙に16文字ずつ書き出してから作ると、文字が途中で切れる失敗を減らせます。

初期化とバックライトの操作

I2C LCDを使うプログラムでは、最初に液晶のアドレスと画面サイズを指定して初期化します。

初期化は、マイコンがどのLCDをどの表示形式で制御するかを準備する処理です。

アドレスが実物と異なると、プログラムが正しくても液晶は応答しません。

表示サイズについても、1602用の設定と2004用の設定を取り違えると、行位置の扱いが期待と異なることがあります。

多くのライブラリでは、初期化のあとにバックライトを点灯し、画面を消去してから文字を表示します。

画面を消去する処理は便利ですが、測定値を頻繁に更新する場面で毎回実行すると、ちらつきの原因になります。

数値だけを書き換える場合は、同じ位置へ新しい値を上書きする方法が適しています。

以前の数値より新しい数値の桁数が少ないと、古い文字が残ることがあります。

たとえば「100.0」のあとに「99.0」を表示すると、末尾に不要な文字が残る場合があります。

その場合は、表示幅をそろえるか、余分な位置へ空白を書き込む工夫が必要です。

バックライトは暗い場所で画面を見やすくしますが、電池で動かす装置では消費電力にも関係します。

必要なときだけ点灯する設計にすれば、携帯型の工作で稼働時間を延ばしやすくなります。

I2C LCDで起こりやすい不具合と確認方法

続いてはI2C LCDで起こりやすい不具合と確認方法を確認していきます。

文字が表示されない場合の点検項目

画面が光っているのに文字が出ない場合は、I2Cアドレス、コントラスト、通信線の順に確認すると原因を絞り込みやすくなります。

バックライトが点灯しているなら、少なくとも電源が液晶へ届いている可能性があります。

ただし、それだけではI2C通信や文字表示が正常とは判断できません。

最初に確認したいのは、プログラムに設定したI2Cアドレスです。

実際のアドレスと異なる値を指定すると、マイコンは存在しない機器へ通信を送ることになります。

I2Cスキャナー用のスケッチを実行すると、接続されている機器のアドレスを確認できます。

次に、変換基板の可変抵抗を少しずつ回し、文字が見える濃さになるか試します。

コントラストが極端な位置では、文字が黒い帯のように見えたり、まったく見えなかったりします。

SDAとSCLを入れ替えてしまうことも、よくある配線ミスです。

端子の並びを見ずに色だけで配線すると、別の基板へ流用したときに間違えやすくなります。

症状 考えられる原因 確認方法
バックライトも点かない 電源配線の誤り VCCとGNDの接続確認
光るが文字が見えない コントラスト設定 可変抵抗をゆっくり調整
何も反応しない アドレス違い I2Cスキャナーで確認
文字が乱れる 接触不良、電源不安定 配線と電圧の再確認

一度に複数箇所を直すのではなく、電源、配線、アドレス、プログラムの順に一項目ずつ確認することが近道です。

複数のI2C機器を使う場合の注意点

複数のI2C機器を同時に使うときは、アドレス重複と電圧条件を確認することが欠かせません。

I2Cでは、複数の機器が同じSDAとSCLを共有できます。

この特徴により、LCD、温湿度センサー、時計モジュールを少ないGPIOで接続できます。

しかし、同じアドレスの機器が2つあると、マイコンはどちらへ命令を送るべきか判断できません。

市販のI2C LCDで使われるアドレスは複数ありますが、同型の変換基板を2枚使うと重複する可能性があります。

基板によっては、アドレス設定用のジャンパーや半田パッドを変更して、アドレスを切り替えられます。

変更方法は製品ごとに異なるため、基板の印字と販売元の資料を確認してから作業しましょう。

また、I2Cの通信線にはプルアップ抵抗が必要ですが、多くのモジュールにはすでに実装されています。

複数のモジュールがそれぞれ強いプルアップ抵抗を持つと、通信条件が悪化する場合があります。

短い配線の小規模な工作では問題にならないことも多いものの、長い配線や多数の機器を使う場合は注意が必要です。

複数機器を接続する場合は、まず1台ずつ動作確認を行います。

その後、I2Cアドレスの一覧をメモし、重複がない状態で同じバスへ追加します。

表示が不安定になった場合は、機器を一度外して最小構成へ戻すと、問題の切り分けがしやすくなります。

I2C LCDと1602液晶の基本理解のまとめ

I2C LCDは、1602 LCDなどの文字液晶をSDAとSCLの2本の通信線で扱いやすくする構成です。

1602 LCDは16文字を2行に表示できるため、温度、時刻、測定値、装置の状態表示に向いています。

液晶本体は文字表示を担当し、I2C変換基板はマイコンとの通信を少ない配線へ変換します。

接続では、VCC、GND、SDA、SCLの端子名を確認し、マイコン側の対応端子へ正しくつなぐことが基本です。

表示されないときは、アドレス、コントラスト、通信線、電源の順に確認すると原因を探しやすくなります。

複数のI2C機器を使う場合は、アドレスの重複や信号電圧にも注意が必要です。

まずは短い英数字を1行表示する最小構成から試し、動作を確認できてからセンサー表示へ広げてみてください。