検索I2C接続の20桁x4行の液晶にIchigoJamを接続するIchigoJamからI2C接続の20桁x4行キャラクタ液晶へ文字を表示する実験に成功しました。この先も少し道のりがあるのと、私は未だこの液晶を入手していないので、備忘録として記しておきます。IchigoJam-FANグループの松永義幸さん(JR3KQF)によるものです。IchigoJam-FANグループの松永さんI2C-GPIOエキスパンダPCF8574Tこの液晶モジュールにはI2Cインタフェースを搭載していません。モジュールの裏側にI2CからGPIO(パラレル)変換のインタフェース基板が搭載されているタイプになります。変換基板にはNXP社のPCF8574Tもしくは互換品が搭載されています。I2Cを8本のGPIOに変換するICです。いったI2C液晶モジュールは、通常のI2C液晶と大きく異なる点があります。それは液晶ドライバIC(日立HD44780互換品)とのインタフェースが4ビット接続になっていることです。8本のGPIOのうち4本をデータ用に使用し、残るGPIOのうち3本~4本を、信号制御用に使用しています。そこで、今回、このような4ビット接続用のI2C液晶を制御してみようと思いました。私も類似の液晶を注文しましたが、入荷まで2~3週間。そこで、先行してプログラムだけを作成しようと、このI2Cインタフェース基板の回路(PCF8574TとHD44780との接続方法)を調べてみました。すると、結線方法には様々な方法があることがわかり、また、松永さんが購入したものと、私が購入したものでも異なることが分かりました。DB7例1は、Arduino公式ブログ内で配布されているライブラリに対応した結線例です。例2は、今回、松永さんが購入した液晶に搭載されていたI2Cインタフェース基板の結線例です。同氏に下図の結線図も作成していただきました。下図に数字が書かれているのが液晶(HD44780)側です。バックライト(BL)の接続の有無等もI2Cインタフェース基板によって異なります。下記はI2Cアドレスの検索ツールです。0コマンドに対して応答があるかどうかを検索するだけのものです。応答しないデバイスもあるかもしれません。—OK実験用プログラム下図は表示を確認するための実験用プログラムです。緑色の部分はデバッグ用、橙色の部分は明らかに最適化による効果が見込める部分、赤色は省略により高速化が図れるかもしれない部分です。このプログラムだけでIchigoJamのプログラム用メモリを占有してしまうで、実用に向けての改良が必要です。さんからのアドバイス)。83OK以下に修正版を示します。512バイトまで削減することが出来ました。2行の液晶サイズに対応しています。930行目と940行目の「'」を消すと4行サイズに対応できます。980行目の20は文字数です。16桁の液晶の場合は16に変更することで、若干、早くなります。I2Cアドレスは990行目です。poke#8ED,#FB&Q:ifi2cw(#27,#8EC,1,#8ED,1)?"E"elsertnAmazonで扱われていますご購入はこちらhttp://www.amazon.co.jp/gp/product/B00HTTZO9C/ref=as_li_qf_sp_asin_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B00HTTZO9C&linkCode=as2&tag=bokunimowakar-22またはhttps://www.amazon.co.jp/dp/B00HTTZO9C/(アフィリエイトタグなし)なお、販売元のページでは、I2C用のアドレスが0x20であることが書かれていますが、実際には0x27でした。これだけでも、若干の混乱がありました。一般的にも、初期値に0x27が設定されているものが多いようです。本ブログでの説明の通り、I2Cインタフェース基板の仕様によってプログラムの修正が必要です。上記の商品以外では動作しない場合があるのでご注意ください。前述の例1用には以下のように修正すれば動くと思いますが、動作確認は行っておりません。以下にI2C温度センサを使ったI2Cインタフェースについての説明ページを作成しました。(3)紹介ボクにもわかる電子工作bokunimo.netとの連携ブログです。関する情報などを掲載しています。(7)リンクは自由ですが、掲載情報についての責任は負いません。