8文字×2行のI2C液晶表示器に注意
ADCの機能差 ATtiny402とATtiny1614
この記事は、
「データーシートは最新のを読むんだ!」が教訓に
なりましたが、今回も似たような教訓です。
「同じと思うな」
「隅から隅まで読むんだ」
のサンプルです。
液晶表示器、昔はパラレル接続のを使っていましたが、
最近は2本線でつなげるI2C接続のものばかり。
そんな中、「8文字×2行」の液晶表示器で「ありゃまぁ」
な事態に遭遇しました。
パラレル接続のACM0802やACM1602は、文字コード0x00~0x07の
部分にユーザー定義文字を入れられます。
0x08~0x0Fには同じデータが入るので
0x00も0x08も同じ文字が表示される
インターフェースがI2Cで16文字×2行のAQM1602YやAQM1602XA
はCG RAMの文字コードが0x00~0x07で、0x08~0x0Fの
重なりがなくなりました。
そして、8文字×2行のI2C液晶ACM0802C(コントラスト調整に
ボリュームが必要な形式)はパラレル接続のACM0802と同じ
ようにCG RAMの文字コードが0x00~0x07で、0x08~0x0Fの
重なりが残っています。
ところが同じ8文字×2行のI2C液晶でも、AQM0802A(30x20mmと小型)
のCG RAMは0x00~0x05までの6文字で、0x06と0x07には固定
文字「↓」「→」が入っているのです。
8文字のユーザー定義文字が使えると思っていたら、
0x06と0x07の文字が「あれれ?」っとなってしまったのです。
そして、8文字×2行のI2C液晶AQM0802Aの表示キャラクタ。
0x06と0x07は固定文字「↓」と「→」で埋まっています。
「似たようなもんなんで同じやろ」っと
いう思い込みは通用しませんでした。
こんな電池マークとバー表示(0本~5本)をしたかった。
バー表示、0本は0x5Fのアンダーバー。
1本は0x0Bの「L」字を使って、2本,3本,4本,5本の
4つをユーザー文字。
そして残り2つで電池マーク。









































最近のコメント