Arduino Shield series 汎用LCD I2C 化アダプター
I2C LCD
Galileo 7 Printed 2010-02-06 本製品について 豊富に出回っている汎用のキャラクター液晶ディスプレイモジュールは、パラレル接続でコントロー ルするようになっていますが、これをI2C(TWI)でコントロールできるようにするアダプターです。 電源以外に2 本の制御線をつなぐだけでコントロールできるため、ピン数の少ないマイコンに最適で す。 汎用の液晶ディスプレイモジュールを使用するため、好みの文字数やデザインのものを使うことがで きます。 電源は5V 対応ですが、最近増えてきている、3.3V の電源系でも使えるよう、LCD 駆動電圧を発生す るためのチャージポンプ回路を搭載しています。 バックライトLED の ON/OFF 制御もできます。(電源 5V 時) おまけ機能として、シリアルでも文字表示や簡単なコントロールができます。 (写真 左:バックライトLED 制御ありとして組み立てた例、右:3.3V 対応として組み立てた例) はじめにお読みください 本製品は電子工作キットのため、電子回路や組み立てについて知識のある方を対象としています。 誤った取扱いをすると、本製品やこれを取り付ける機器の故障や損傷、感電、火災やその他の重大 な事故につながる可能性があります。 本製品を使用したために発生する損害については、責任を負いかねます。 細心の注意を払って製造しておりますが、丌良品等がありましたら同等の新品と交換させていただ きます。 本製品を取り扱う際には、けがや事故、破損などにご注意ください。 静電気により故障する可能性がありますので、アースバンドなど静電気対策を行ってください。 本製品の仕様は、改良やその他の理由で予告なく変更することがあります。パーツリスト 組み立て前にすべてのパーツがそろっているかご確認ください。 種類 品番 数 種類 品番 数 基板 I2C LCD 1 コンデンサ 0.1uF (104) 積層セラミック 1 IC ATtiny2313 1 コンデンサ 10uF 電解 1 半固定抵抗 10~50kΩ 1 コネクタ IC ソケット 20P 1 3.3V の電源で使用される場合は、以下のパーツも必要です。 種類 品番 数 種類 品番 数 ダイオード 1S1588 (1S2076A 等) 2 コンデンサ 0.1uF (104) 積層セラミック 2 バックライトLED の ON/OFF 制御を使用される場合は、以下のパーツも必要です。 種類 品番 数 種類 品番 数 トランジスタ 2SC1815 1 抵抗器 4.7kΩ 1 抵抗器 22~100Ω(LED 電流による) 1 キャラクター液晶ディスプレイモジュール、ヘッダーピン・ソケット等は別途ご用意ください。 回路図
組み立て 各パーツや組み立てについての詳細は、知識のある方を対象と想定しているため省略しています。 組み立ては背の低い部品から半田付けしてください。 抵抗器、コンデンサ・・・、最後にコネクタ類という順序で半田付けすることをおすすめします。 IC ソケットのある IC は、組み立てが完了してから IC ソケットへ取り付けてください。 5V 対応とする場合は、ジャンパーをはんだ付けしてください。(図中、紫色) 3.3V 対応とする場合は、チャージポンプ回路のパーツを半田付けしてください。(図中、緑着色) バックライトLED に対応する場合は、該当回路のパーツを半田付けしてください。(図中、赤着色) ヘッダーピンは使用する液晶ディスプレイモジュールに合うよう、1 列・2 列、基板の表裏を使い分 けてください。 半固定抵抗は裏面につけると、液晶ディスプレイモジュールを重ねて使用する際に操作が楽です。 数値のないコンデンサは0.1uF(積層セラミック)です。 極性のあるパーツは、○印のあるほうが+極です。IC は○印が 1 番ピンです。 図中、品番記号や単位記号(抵抗器:Ω、コンデンサ:F)を省略しています。 値が「~」表記の部品は、その範囲内の別の部品を使用することがあります。 ジャンパー設定 ジャンパーの設定により、液晶ディスプレイモジュールのピン配置に合わせた電源の供給が可能です。 電源を逆接続すると、本製品やモジュールが故障する可能性がありますので、モジュールの仕様書を よくご確認ください。 (パーツの足の切れ端等をはんだ付けしてください) 1:Vss(GND) / 2:Vdd 1:Vdd / 2:Vss(GND)
使い方 液晶ディスプレイモジュールとI2C について知識のある方を対象としているため、詳しい解説は省略 しています。 SCL、SDA は通信速度に応じた値の抵抗器でプルアップしてください。 本製品のスレーブアドレスは「0111110」です。(設定により「0111111」) 通常、液晶ディスプレイモジュールをパラレル接続した場合には、インストラクションコードにより 初期化し、文字コードを送って表示を行いますが、I2C でも同様のデータを送り操作を行います。 I2C により、スレーブアドレスと RW 信号、RS 信号(とコントロールバイト)、データの順に送りま す。 データは液晶ディスプレイモジュールのインストラクションコード、または表示する文字コードを指 定します。(インストラクションコードの詳細は液晶ディスプレイモジュールの仕様をご覧ください) 3.3V 対応とする場合は、コントロールバイトのチャージポンプを ON に設定してください。 ボリュームは液晶の表示濃度の調節用です。見やすい濃度に調節してお使いください。 Galileo 7 ホームページでサンプルスケッチを公開していますのでご参照ください。 I2C 通信例 LCDへ1バイト書き込み S 0 1 1 1 1 1 0 0 A x RS CE C4 C3 C2 C1 C0 A D7 D6 D5 D4 D3 D2 D1 D0 A T Slave Address Write Control Byte Data Byte
LCDへ複数バイト書き込み
S 0 1 1 1 1 1 0 0 A x RS CE C4 C3 C2 C1 C0 A D7 D6 D5 D4 D3 D2 D1 D0 A D7 D6 D5 D4 D3 D2 D1 D0 A A T Slave Address Write Control Byte Data Byte Data Byte
LCDより1バイト読み込み
S 0 1 1 1 1 1 0 1 A D7 D6 D5 D4 D3 D2 D1 D0 A T Slave Address Read Data Byte (from LCD)
LCDへControl Byteを送信後、1バイト読み込み
S 0 1 1 1 1 1 0 0 A x RS CE C4 C3 C2 C1 C0 A S 0 1 1 1 1 1 0 1 A D7 D6 D5 D4 D3 D2 D1 D0 A T Slave Address Write Control Byte Slave Address Read Data Byte (from LCD)
S :Start Condition T :Stop Condition A :Acknowledgement
SDA SCL
Start Condition Stop Condition ・・・
※コントロールバイト 「x」は未使用、「RS」は LCD の RS 信号の値に反映されます。(0:Low、1:High) 「CE」が 1 のとき C4~C0 の値は設定データとなり、内容は以下とおりです。 C4 C3 C2 C1 C0 機能 0 L P A I L=バックライト LED の点灯制御(0:OFF、1:ON) P=チャージポンプ(0:OFF(電源 5V)、1:ON(電源 3.3V)) A=I2C スレーブアドレス※(0: 「0111110」、1:「0111111」) I=液晶モジュールの自動初期化※(0:OFF、1:ON) 1 - - - - 予約 設定は保存され次回の電源ON 時にも有効です。(※印は次回電源 ON 時から有効) 自動初期化は、カーソルなし、5x8 ドット、2 行として初期化されます。処理に約 0.6 秒かかります。 ※シリアルによるコントロール おまけ機能として、シリアル(RXD のみ)でも文字表示や簡単なコントロールができます。 シリアルの転送速度は9600bps、ストップビット 1bit、パリティなし、フロー制御なしです。 シリアルで受信した文字をそのまま液晶ディスプレイモジュールへ表示します。 インストラクションコードを処理することはできませんので、あらかじめI2C のコントロールバイト の設定により自動初期化をON にしておいてください。 以下のエスケープシーケンスが利用できます。(ESC 文字コードは 0x1b です) 画面クリア ESC [ * または ESC [ 2 J
カーソル移動 ESC [ y ; x H または ESC [ y ; x f (x 桁、y 行)
カーソルあり ESC [ > 5 l カーソルなし ESC [ > 5 h ※キャラクター液晶ディスプレイモジュール 普通、液晶ディスプレイモジュールの電源は5V ですが、搭載されている制御 IC は 3.3V で動作可能 のものが多くあります。 制御IC に日立製 HD44780 が搭載されている場合は、IC 表面に「U」の印字があるものが 3.3V で使 用可能です。(Sunlike 社の LCD モジュールは互換 IC が搭載されていますが、多くは 3.3V で使用でき るようです) モジュールメーカーの動作保証はありませんので、あらかじめ 3.3V での稼働を確認の上ご使用くだ さい。 3.3V 動作させる場合は、I2C により、チャージポンプの設定を ON にしてください。
電源が5V の場合は、I2C により、バックライト LED の ON/OFF 設定ができます。
電源が3.3V の場合、バックライト LED を点灯させることはできません。バックライト LED には別途
ファームウェア 本製品に使用している ATtiny2313 には、あらかじめファームウェアを書き込んだ状態で出荷してい ます。 改良のため、ファームウェアは随時更新しています。 最新のファームウェアについては、Galileo 7 ホームページで公開しています。 なお、ファームウェアのアップデートを行うには、AVR マイコンへプログラムを書き込むためのライ ターが必要です。 参考(使用例) 液晶ディスプレイモジュール接続イメージ (使用モジュール:Sunlike 製 SD1602HULB、SD1602HUOB) 液晶ディスプレイモジュール接続イメージ (使用モジュール:AZ DISPLAYS 製 ACM0802C)