2015年9月
aitendoで購入したI2C接続のキャラクタLCD「LCD16X2-I2C」の使用報告です。テストプログラムも公開します。
ATmega328Pで制御しています。3.3V、8MHz動作。I2Cは100kHzの設定。LCDのリセット線も制御しています。
LCDはキット品を購入したので自分でハンダ付け。I2Cのプルアップ抵抗は10kΩで、基板背面にチップ抵抗を取り付けるようになっています。
部品をいじってるうちにバックライトの線が1本もげましたが、単純にハンダ付けし直せばよいだけです。
ところで、LCDの動作テストとは関係ありませんが、ついでに紹介します。
ブレッドボードに挿す、電源動作確認用のLEDモジュールを作りました。これまでは、LEDと抵抗と…と毎回挿していました。
LCD16X2-I2CのコントローラSPLC792Aは、より知られたST7032と基本的に互換性があります(内部オシレータの設定コマンドがないなど一部異なる)。コマンドはキャラクタLCDの代表的なコントローラHD44780のものと同等で、それに加えコントラスト調整などの拡張コマンドが定義されています。
SPLC792AのデータシートにはI2Cで使用するときの初期化シーケンスが掲載されていないなど不便な点があるので、ST7032のデータシートと見比べながらプログラミングすると良いです。
SPLC792Aのデータシートにはスレーブアドレスが4種類設定できるようなことが書いてあります。しかしこのモジュールの基板上にそれらしきパターンはなく、スレーブアドレスは0x3E固定となっています。
表示テストといえば「Hello World」ですが、文字列の前に文字が出せないと話にならないので、最初はただ一文字「A」の表示テストから。
それが出来たので、文字列やユーザー定義文字をテストしました。動作良好です
SPLC792A(ST7032)独自の縦2倍角モードもテスト。行間に1ドットくらいの隙間があるので、ちょっと読みづらいです。
ここでは自作ライブラリを使用しています。
自分勝手な仕様なので他の人には使いにくいかもしれません。
コントローラ名でネットを検索したり、aitendoの商品ページを見ると、
すでに動作テストしている方々のプログラムが見つかります。arduino用のライブラリを公開している方もいます。
本LCDモジュールを使用する際は、様々なプログラムを参考にしてみると良いと思います。
最初、FFC(フラットケーブル)のハンダ付け不良に気付かず、表示が出せるようになるまでソフト側で無駄に試行錯誤を繰り返していました。
工作したらちゃんとテスターで確認しないといけませんね。失敗。
今回、初期化シーケンスを通すのに苦労しました。SPLC792AとST7032のデータシートをよく読み比べて理解できました。
さて、この小さなLCDモジュール、何かに使わないともったいないです。ちょっと考えておきましょう(気長に)。