液晶表示:CG-RAMの表示がちょいと違う
昔人間ですんで、「これで行こう」と決めたことは
いつまでも引きずっています。
今回のトラブルは液晶表示器の外字登録。
使ったのは秋月で買ったI2C液晶 AQM1602XA
I2Cで安定して使えるようになって、6本線で
つなぐ液晶表示器はちょいと縁遠くなりました。
キャラクタ表示の液晶表示器、8文字分のCG-RAMに
外字を登録できます。
文字コードとして0x00~0x07に対応するパターンを書き
込むと、登録した文字が出てくるという仕掛けです。
しかし、その先頭文字が「0x00」となり、C言語の
ヌル終端文字列:Wikipedia に引っかかってしまうので、
文字列の中に入れられません。
実質、7つの外字しか利用できないのです。
そこで、この表にあるよう、
CG-RAMの文字コード0x00~0x07を0x08~0x0Fと
して定義しておくという手法を使ってきました。
文字列の中に入れずに単独文字として書き込む
ぶんには0x00で問題なしなんですが
ところが今回のAQM1602XAでこれをすると、定義した
CG-RAMではなく、内蔵された文字が出てきちゃったのです。
16文字×2行の液晶、その下段に0x00~0x0Fの文字を
表示してみました。
左の8つがCG-RAMに入れた登録外字。
昔の液晶なら同じ字が右に8つ並ぶのですが、
この液晶だと、内蔵文字になってしまい、
今までの手法が使えません。
ということで、登録した8つのCG-RAM文字は
0x00~0x07で表示するという、まっとうな処理に
変更しなくちゃなりませんでした。
※関連
・PIC AVR 工作室別館 arduinoの館->キャラクターLCD
・よく使うパラレル接続液晶(LCDモジュール)のコネクタ信号
・液晶表示モジュールを4ビットモードで使ったときの空きピン処理
| 固定リンク
「トラブル遭遇」カテゴリの記事
- 基板検査をしていたら消費電流が小さいのが出現(2026.04.15)
- 歯医者の残物:ヘッドランプ(2025.12.29)
- 24クリックのロータリーエンコーダ、調子が悪くなり交換(2025.11.20)
- MADE IN USAでも信じるな!(ミノムシクリップの話)(2025.11.11)
- 8文字×2行のI2C液晶表示器に注意(2025.10.21)
「Arduino」カテゴリの記事
- tinyAVRのシリアル出力(だけ)を割り込みでというライブラリ(2026.03.22)
- ATtiny1614:タイマレジスタの初期設定を見る(2026.01.06)
- ラジオペンチさんの「ダイソーのゆらゆらLEDキャンドルライト」#2(2025.09.15)
- ラジオペンチさんの「ダイソーのゆらゆらLEDキャンドルライト」(2025.09.11)
- ATtiny402サンプル:"Wire.h"を使わずI2Cで液晶表示 AQM1602だと(2025.09.09)


コメント