今回からI2C通信液晶モジュールのプログラムを作成していきます。最初は概要の説明です。
液晶モジュールの種類
電子部品の通販サイトを見ると、液晶モジュールには多くの種類があることがわかります。
表示領域や文字色の違いなどにより多くの製品が販売されていますが、液晶モジュールは表示を制御する方法の観点で大きく2種類に分類されます。ひとつは「キャラクタディスプレイ」、もうひとつは「グラフィックディスプレイ」です。
それぞれの製品例としては以下のようなものがあります。
LCDキャラクタディスプレイモジュール(16×2行)バックライト付 (秋月電子通商)
LCDグラフィック・ディスプレイモジュール(122×32ドット)バックライト付 (秋月電子通商)
最初にこれらの違いを説明します。
キャラクタディスプレイもグラフィックディスプレイも、液晶本体自体は以下のようにドット(点)から構成されています。
この図ではドットに色をつけていますが、実際の液晶モジュールでは何も表示していない場合、通常このドットは見えません。
情報を表示する際は、それぞれのドットをON/OFF制御します。例えば「A」を表示する場合は以下のようにドットのON/OFF制御を行います。
キャラクタディスプレイでもグラフィックディスプレイでも、液晶表示部ではドットをON/OFF制御して表示を行います。一方で、液晶モジュールを外部から制御する方法には大きな違いがあります。
例えば先ほどの「A」という文字を液晶モジュールに表示するは場合を例に考えてみます。
キャラクタディスプレイの場合は、液晶モジュールに対して「A」という文字を表示するように指示します。PICマイコンから制御する場合、PICマイコンは「A」という1バイトのデータを液晶モジュールに送ると、液晶モジュールはドットをON/OFF制御して「A」という文字を表示します。「キャラクタディスプレイ」とはキャラクタ(文字)を表示するディスプレイ、という意味です。
一方、グラフィックディスプレイの場合、液晶モジュールには「どの位置のドットをONにするか」という情報を送る必要があります。そのため、「A」という文字を表示する場合でも「どこの位置のドットをONにするか」というデータを液晶モジュールに送る必要があります。「グラフィックディスプレイ」とはドットを直接制御してグラフィック(画像)を表示するディスプレイという意味です。
グラフィックディスプレイの場合、「A」という一文字を表示するだけでも「A」のドットデータを作成してそれを液晶モジュールに送る、という大変さがあります。一方で、ドット単位でON/OFF制御できますので、文字以外にもグラフや画像なども表示することができます。
このようにキャラクタディスプレイとグラフィックディスプレイはそれぞれの特徴がありますので、用途に応じて使い分けることになります。
液晶モジュール種類 | 制御方法 | 用途 |
---|---|---|
キャラクタディスプレイ | 表示する文字データを送る | 数字や英文字、カタカナなど決まった文字を表示する場合に適している。制御は容易。 |
グラフィックディスプレイ | ドット制御情報を送る | 絵やグラフなど自由な描画をする場合に適している。ドット単位で表示制御するため、文字を表示する場合でもドットデータを作成して制御する必要があり、プログラムがちょっと大変。 |
実践編では温湿度、気圧の数値データを表示するだけですのでキャラクタディスプレイを使用していますが、グラフィックディスプレイに変更して、温湿度と気圧のグラフに表示して、さらに天気予報のアイコンも表示する、というのも面白いと思います。プログラムが大変ですが…
コントローラの種類
キャラクタディスプレイにしてもグラフィックディスプレイにしても、モジュール内部には液晶自体を制御するコントローラが内蔵されていて、そのコントローラを外部から制御することにより表示制御を行います。
市販されている液晶モジュールでは、このコントローラはいくつか種類があり、データ通信方式や制御コマンド(制御方法)はコントローラごとに異なります。
キャラクタディスプレイの代表的なコントローラは「HD44780」(日立製作所社製)と呼ばれているものです。このコントローラには互換品もあり、互換品を使用した液晶モジュールは以下のように「インターフェースIC: HD44780コンパチブル」(「制御ICはHD44780と互換品」という意味)などと記載されています。
LCDキャラクタディスプレイモジュール (16×2行バックライト付) (秋月電子通商)
コントローラICがHD44780か互換品の液晶モジュールであれば、同じデータ通信方式、同じ制御コマンドで制御することができます。
なお、実践編で使用する液晶モジュールのコントローラは、HD44780コンパチです。Sitronix社製の「ST7032」というコントローラが使用されています。このコントローラはデータ通信方式としてI2C通信をサポートしており、また制御コマンドはHD44780とは異なりますが、実践編で作成する液晶ディスプレイの制御プログラムは、コントローラとしてST7032を使用している液晶モジュールであれば流用できます。
今までの情報をまとめると、実践編で使用する液晶モジュールはキャラクタディスプレイで、通信方式はI2C通信です。以下のように、PIC16F18857からI2C通信で液晶モジュールのコントローラST7032を制御することにより表示制御を行います。
それでは、次回から液晶モジュールの制御プログラムを作成していきます。
更新履歴
日付 | 内容 |
---|---|
2018.7.4 | 新規投稿 |
早速の回答ありがとうございます。
実験してみたらうまく表示されました。
これだと老眼でもよく見えます。
ストロベリーLinuxの液晶も同じコントローラーのようです。
そのまま置き換え可能でしょうか?
https://strawberry-linux.com/catalog/items?code=27002
ご質問どうもありがとうございます。
はい、利用できます。コントローラはST7032ですので同じプログラムで動作します。なお、ピンが5本あり1番ピンがリセット端子になっていますので、リセットピンはVDDに接続する必要があります。