ESENは、お客様のアプリケーション向けに、幅広い標準的なキャラクタLCDモジュールを提供しています。制御ピンの数を最小限に抑えて表示を実現できるため、MCUの選択が容易になります。
市場に出回っている一般的なキャラクタLCDモジュールは、図1に示すように、I2Cインターフェースをサポートするために転送ボードを追加するため、LCMの厚さが増し、製造プロセスが増え、歩留まりが低下します。
![]() |
![]() |
図1: I2Cをサポートするために転送ボードを追加した、市場に出回っている一般的なキャラクタLCDモジュール。 | 図2: ESENの1602キャラクタ液晶モジュール。I2CおよびSPIインターフェースをサポートしており、追加の転送ボードは必要ありません。 |
リレーボードを追加する必要はありません。Arduino Uno開発ボードを接続するだけで、さまざまな通信インターフェースを使用してキャラクタLCDモジュールを直接制御できます。
ピン番号 | シンボル | 説明 |
---|---|---|
No.1 | Vss | グランド |
No.2 | Vdd | ロジック用電源 |
No.3 | V0 | コントラスト調整 |
No.4 | RS | コマンド/データ選択 |
No.5 | RW | インターフェース6800 8/4ビット専用の読み取り/書き込み選択信号 |
No.6 | E | インターフェース6800 8/4ビット専用のイネーブル信号 |
No.7 | DB0/SA0 | 6800 8ビットインターフェース専用のデータバスライン0 I2CインターフェースのSA0アドレス設定ライン |
No.8 | DB1/SA1 | 6800 8ビットインターフェース専用のデータバスライン1 I2CインターフェースのSA1アドレス設定ライン |
No.9 | DB2 | 6800 8ビットインターフェース専用のデータバスライン2 |
No.10 | DB3 | 6800 8ビットインターフェース専用のデータバスライン3 |
No.11 | DB4 | 6800 8/4ビットインターフェース専用のデータバスライン4 |
No.12 | DB5/CSB/CSB | 6800 8/4ビットインターフェース専用のデータバスライン5 I2CおよびSPIインターフェースのCSBイネーブル選択ライン |
No.13 | DB6/SDA/SCLK | 6800 8/4ビットインターフェース専用のデータバスライン6 I2CインターフェースのSDAデータライン SPインターフェースのSCLKタイミング |
No.14 | DB7/SCL/SID | 6800 8/4ビットインターフェース専用のデータバスライン7 I2CインターフェースのSCLタイミングライン SPIインターフェースのSIDデータライン |
No.15 | A+ | B/L +用電源 |
No.16 | K- | B/L -用電源 |
上記の表のV0に関して、20kオームの可変抵抗器を使用して文字のコントラストを調整します。テスト中にテキストが見えない場合や、背景画像が表示され続ける場合は、この可変抵抗器を回してコントラストを調整してください。
V0可変抵抗器の接続方法を図3に示します:
![]() |
図3:V0可変抵抗器の接続方法 |
4つのLCM通信インターフェース(I2C、SPI、6800 8ビット/4ビット)のArduino Unoへの接続方法を図4に示します。ユーザーは、I2CおよびSPIインターフェースが、キャラクタLCDモジュールを制御するために少数のGPIOピンしか必要としないことを確認できます。
I2Cインターフェースの場合、Arduino UnoはI2Cピン内にプルアップ抵抗器を提供しているため、SDAおよびSCLピンに追加のプルアップ抵抗器を接続する必要はありません。プログラムで内部プルアップ抵抗器が無効になっている場合は、外部プルアップ抵抗器を接続する必要があります。
(a)I2Cインターフェース接続 |
(b) SPIインターフェース接続 |
![]() |
![]() |
(c)6800-4ビットインターフェース接続 |
(d)6800-8ビットインターフェース接続 |
![]() |
![]() |
図4:4つのLCM通信インターフェースのArduino Unoへの接続方法。 |
すべての通信インターフェースがLCMのすべてのコマンドセットを使用できるわけではありません。SPIインターフェースにはRW制御ラインとMISOピンがないため、読み取りコマンドはサポートされていません。書き込みの場合、RS制御ラインを介して、コマンドデータまたは表示データのどちらを書き込むかを決定します。
I2CインターフェースにもRW制御ラインがないため、読み取りコマンドもサポートされていません。コマンドデータまたは表示データを書き込む前に、コマンド制御コード(A0=0)またはデータ制御コード(A0=1)を送信して、次に送信するバイトがコマンドデータまたは表示データであるかどうかを決定する必要があります。
2つのタイミング図を図5と図6に示します。これは、SPIインターフェースを介してLCMを制御するタイミング図です。ユーザーは、LCMが、一般的なMCUが提供する典型的なSPIインターフェースではないSPIを使用していることを確認できます。現在のバイトがコマンドであるかデータであるかを判断するために、追加のRS信号線が必要です。データライン(SID)のビットデータ(BIT7〜BIT0)は、クロックライン(SCLK)がローレベルのときに変化します。ビット(BIT7〜BIT0)データは、クロックライン(SCLK)がハイレベルのときにキャプチャされます(BIT7〜BIT0)。
![]() |
図5:SPI書き込みコマンドのタイミング |
![]() |
図6:SPI書き込みデータのタイミング |
図7と図8は、I2Cインターフェースを介してLCMを制御するタイミング図を示しています。チップセレクトバー(CSB)を除き、読者は、I2Cインターフェース制御が、コマンドデータまたは表示データを書き込むために毎回3バイトを送信することを確認できます。その中で、2番目のバイトのA0ビットは、3番目のバイトがコマンドデータまたは表示データであるかどうかを決定します。
![]() |
図7:コマンド書き込みのI2Cタイミング |
![]() |
図8:データ書き込みのI2Cタイミング |
プログラム設定を変更することで、LCMを直接コンパイルして使用できます。
ステップ1:LCMの1行あたりの最大文字数を設定します。
たとえば、以下では1行に最大16文字を設定します。
ステップ2:LCMの最大行数を設定します。
たとえば、以下ではLCMを2行に設定します。
ステップ3:LCMインターフェースを設定します。
たとえば、以下ではI2Cインターフェースを設定します。
ステップ4:プログラムをコンパイルし、Arduino Uno開発ボードにアップロードします。
図9は、3つのLCMの画面の概略図を示しています。
表示コントラストが明るいまたは暗い場合、V0ピンの可変抵抗器を適切なコントラストに調整できます。図10に示します。
(a) 明るいコントラスト 文字のみが見えます。 | (b) 適切なコントラスト | (c) 暗いコントラスト 各文字に明らかな影があります。 |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
図9:3つのLCMの画面の概略図 |
図10:V0ピンは調整可能です
完全なデモコードが必要な場合は、 お問い合わせください.
コンタクトパーソン: Mr. james
電話番号: 13924613564
ファックス: 86-0755-3693-4482