ESENは,顧客のアプリケーションのための標準文字LCDモジュールの幅広い範囲を提供しています.最小数の制御ピンで表示を達成することができ,MCUを選択しやすくします.
市場での一般的なキャラクターLCDモジュールは,図1のように I2Cインターフェースをサポートする転送ボードを追加します.生産プロセスが増加し 生産率も低下しました.
| 図1:I2Cをサポートする転送ボードを追加する市場における一般的なキャラクターLCDモジュールです. | 図 2: ESEN の 1602 文字の液晶モジュール.I2C と SPI インターフェースをサポートし,追加のトランスミッションボードを必要としません. |
リレーボードを追加する必要はありません. Arduino Unoの開発ボードを接続すれば, 異なる通信インターフェイスを使用して文字LCDモジュールを直接制御できます.
LCMのピンを定義する
表1LCMピンの定義
| ピンナンバー | シンボル | 記述 |
|---|---|---|
| 違う 違う1 | Vss | 地面 |
| 違う 違う2 | Vdd | ロジックの電源 |
| 違う 違う3 | V0 | コントラスト調整 |
| 違う 違う4 | RS | コマンド/データ選択 |
| 違う 違う5 | RW | 読み書き選択信号 インターフェース6800 8/4ビットのみ |
| 違う 違う6 | E について | インターフェース6800 8/4bit のための信号のみを有効にする |
| 違う 違う7 | DB0/SA0 | 6800 8 ビットインターフェースのみのデータバスライン 0 I2C インターフェースの SA0 アドレス設定行 |
| 違う 違う8 | DB1/SA1 | 6800 8ビットインターフェースのみのデータバスライン1 I2C インターフェースの SA1 アドレス設定行 |
| 違う 違う9 | DB2 | 6800 8 ビットインターフェースのみのデータバスライン2 |
| 違う 違う10 | DB3 | 6800 8 ビットインターフェースのみのデータバスライン3 |
| 違う 違う11 | DB4 | 6800 8/4 ビットインターフェースのみのデータバスライン4 |
| 違う 違う12 | DB5/CSB/CSB | 6800 8/4 ビットインターフェースのみのデータバスライン5 CSBは,I2CとSPIインターフェースの選択ラインを有効にする. |
| 違う 違う13 | DB6/SDA/SCLK | 6800 8/4 ビットインターフェースのみのデータバスライン6 I2CインターフェイスのためのSDAデータライン SP インターフェースの SCLK タイミング |
| 違う 違う14 | DB7/SCL/SID | 6800 8/4 ビットインターフェースのみのデータバスライン7 I2C インターフェースの SCL タイムライン SPI インターフェイスのためのSID データライン |
| 違う 違う15 | A+ | B/L + の電源 |
| 違う 違う16 | K- | B/L の電源 - |
上記の表のV0については,文字のコントラストを調整するために20k Ohmの変数抵抗が使用されます.テキストが目に見えない場合,またはテスト中に背景画像を表示し続けると,コントラストを調整するためにこの変数抵抗を回してください.
V0変数抵抗の接続方法は,図3に示されているように:
| 図3V0 変数抵抗の接続方法 |
LCMと開発ボードを Arduino Uno に接続する方法
図4に示すように,4つのLCM通信インターフェイス (I2C,SPI,6800 8bit/4bit) のArduino Unoへの接続方法.ユーザは,I2CとSPIインターフェースは,キャラクターLCDモジュールを制御するために GPIOピンの数が少ない必要があると観察することができます.
I2Cインターフェースでは,Arduino UnoがI2Cピンの内部にプルアップレジスタを供給しているため,SDAとSCLピンの接続に追加的なプルアップレジスタはありません.プログラムで内部プルアップ抵抗が無効になっている場合外部に引っ張る電阻が接続されている必要があります.
| (a) についてI2C インターフェイス接続 | (b) についてSPI インターフェイス接続 |
| (c)6800-4ビットインターフェース接続 | (d) について6800-8ビットインターフェース接続 |
| 図4Arduino Uno に 4 つの LCM 通信 インターフェイス の 接続 方法. | |
LCM コマンド
すべての通信インターフェイスがLCMの完全なコマンドセットを使用できるわけではありません.SPIインターフェイスでは,RW制御ラインとMISOピンはありません.したがって,読み込みコマンドはサポートされません.書き込みのために,命令データまたは表示データを書くかどうかを決定するためにRS制御ラインを通して.
I2C インターフェースでは,RW コントロールラインも存在しないので,読み込みコマンドもサポートされていません.コマンドデータや表示データを書く前に,命令制御コード (A0=0) またはデータ制御コード (A0=1) が送信され,次のバイトがコマンドデータか表示データかどうかを決定する必要があります..
SPI と I2C インターフェースのタイミング
図5と図6には2つのタイミング図が示されています.これはSPIインターフェースを通じてLCMを制御するタイミング図です.ユーザは,LCMが典型的なMCUが提供する典型的なSPIインターフェースではないSPIを使用していることを観察することができます.送信されているバイトがコマンドなのかデータなのかを判断するには,追加のRS信号行が必要です.時計線 (SCLK) が低いレベルにあるとき,データライン (SID) のビットデータ (BIT7~BIT0) が変化する.. ビット (BIT7~BIT0) のデータは,クロックライン (SCLK) が高いレベル (BIT7~BIT0) にあるときに記録される.
| 図5SPI 書き込みコマンドのタイミング |
| 図6SPI 書き込みデータのタイミング |
図7と図8は,I2Cインターフェースを通じてLCMを制御するタイミング図を示しています.チップ選択バー (CSB) を除いて,読み手は,I2Cインターフェース制御がコマンドデータまたは表示データを書くために毎回3バイトを送信することを観察することができます2番目のバイトのA0ビットが 3番目のバイトがコマンドデータか表示データかを決定します
| 図7I2C 書き込みコマンドのタイミング |
| 図8I2C 書き込みデータのタイミング |
コード
LCMはプログラム設定を変更することで直接コンパイルして使用できます.
ステップ1: LCMの1行に最大文字数を設定する.
例えば,次の設定では,1行に最大 16 文字を設定します.
![]()
ステップ2: LCM の最大行数を設定する.
例えば,次の設定では,LCMは2行になります.
![]()
ステップ3: LCMインターフェースを設定します
例えば,次のセットは I2C インターフェースです.
![]()
Arduino Unoの開発ボードにプログラムをコンパイルしてアップロードします
図9は3つのLCMの画面の図式図を示しています.
ディスプレイコントラストが明るく暗くなった場合,V0ピンの変数抵抗は,図10のように適切なコントラストに調整できます.
| (a) 光コントラスト 光文字のみが見えます. | (b) 適切なコントラスト | (c) ダークコントラスト 各文字には明らかな影があります |
|---|---|---|
| 図93つのLCMのスクリーンの図面図 | ||
![]()
図10V0ピンは調節可能
完全なデモコードの要求がある場合は,私達に連絡してください.
コンタクトパーソン: Mr. james
電話番号: 13924613564
ファックス: 86-0755-3693-4482