汎用キャラクタLCDのI2C化(1)

i2cLcd-1

最近ではI2Cで制御できるLCD(ACM1602など)が販売されていますが、この連載では、普及している一般的なパラレル制御のキャラクタ表示LCDをI2C化し、ACM1602のように使えるようにします。

●I2C化の利点

16行×2行のキャラクタ(文字)表示LCDを1個だけ使うのなら、ACM1602がコンパクトで便利ですが、I2Cスレーブアドレスが固定など自由度があまりありません。

そこで、種類の多い汎用品をI2C化していろいろ使えるようにしたいと思います。汎用品をI2C化したときのおもな利点を挙げます。

  • パラレル信号に互換性があれば、メーカを問わずいろいろなLCDが使える。
  • 一部ピン配列が異なるが、40文字×4行の大型のもの(C-51849NFJ-SLW-ADN)にも対応可能。
  • 文字の色の違いやバックライトの有無などいろいろなLCDが使える。
  • I2Cスレーブアドレスを自由に設定できるため、複数のLCDを同一のI2Cバスへつなげることができる。何個つないでも2本の信号線で制御できるので省配線にもなる。

●I2Cの制御について

6~7年前になりますが、I2C制御のLCDはWSN143 I2C/SPI制御液晶表示器、I2C制御の7セグメントLEDはWSN129 I2C/SPI7セグメントLED数値表示器と、I2Cで制御するというコンセプトの製品を5~6種類ぐらい、PICをコントローラとして作っているのですが、今回はArduinoをコントローラにして新しく設計しました。

当時、ACM1602のようなコマンドコードを垂れ流しにするようなシンプルな構造は思いつかなかったのですが、今回は、ライブラリの流用なども考えて、ACM1602と同じような動作にして、制御方法をコンパチブルにしました。また、40文字×4行用LCDに対応するため、独自に拡張したところもあります。

スレーブのI2Cアドレスを自由に変えられるので、複数のI2C化LCDを並列接続して、2本の信号線だけで制御することもできます。たとえば、下図のようなイメージです(図にはありませんが、実際は全デバイスのGNDも接続する必要があります)。

I2C_block

次の写真は書籍「Arduino実験キットで楽ちんマイコン開発」に掲載したもので、ブレッドボードでI2C化回路を作っています。黄色の線で囲った部分が今回製作する部分で、WSN282が載ったブレッドボード部分がWSN318に相当します。

I2cLcdMal

●WSN318 LCD I2C化 モジュール

今回はI2Cコントローラ用Arduinoとして、WSN318も使用します。ブレッドボードで製作したものを基板化してまとめたものです。

i2cLcd-2

このモジュールはCQカチャduino(WSN282)相当として作動します。WSN319 変換アダプタを使用すると、WSN283(USB/電源部)が接続できます。I2C化LCDのコントローラとして作動するときは、WSN319もWSN283も不要ですが、ファームウェアやLCD制御プログラムを書き換えるときは、両基板を接続すれば、Arduino2009相当として作動します。

LCDには一般的な2列×7(14ピン)のLCDのほか、2列×9(18ピン)の40文字×4行LCD(C-51849NFJ-SLW-ADN)も接続できます。但し、14ピンのLCDと18ピンのLCDでは制御方法が少し違うため、それぞれ専用のファームウェア(LCD制御プログラム)を入れる必要があります。

コネクタ形状の違いで直結はできませんが、1列×14ピン(バックライトの2本含まず)のLCDもワイヤ接続できます。

基板の説明や回路図などは製品ページを参照してください。→ WSN318 LCD I2C化 モジュール(Arduino互換)

次回より回路やプログラムなどの詳細を説明します。


Arduinoを使ったLCDや7セグメントLEDのI2C化の記事は書籍「Arduino実験キットで楽ちんマイコン開発」でも取り扱っています。なお、同書籍では上記写真のように試作機をブレッドボードで製作しましたが、現在は次のような専用の小型基板を用意しています。それぞれ、Arduinoを専用コントローラとして使っていますが、プログラムは通常のArduinoとして作成し、そのまま作動します。

参考文献

コメントは受け付けていません。