AQM0802の文字表示

もう少し自由にAQM0802に文字を表示してみます。そのためには液晶の仕様を知る必要がありますね。

AQM0802の仕様

AQM0802液晶の命令コードやキャラクタの文字コードがわかれば、i2csetコマンドでこの液晶を自由自在に操作できそうです。

部品にはデータシートがついていなかったのですが、スイッチサイエンスのサイトの工作記事から秋月(!)のサイトのデータシートにリンクが張られています。命令コードの方はぼやけていてよく読めないので改めてAQM0802で検索しなおしたらマルツパーツの鮮明な資料を見つけました。

とりあえず初期化処理はよくわからないけれどデータシートのサンプルをちょっと変えてカーソル表示ONにしただけでいいでしょう。それ以外の命令といえば改行ぐらいしか使わないかな。

液晶の初期化

いまひとつデータシートを読んでも何をしているのかわからない部分がありますが、とりあえず2回に分けてデータを送ればいいようです。

sudo i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c i
sudo i2cset -y 1 0x3e 0x00 0x38 0x0d 0x01 i

2回に分けているのは、それぞれのコマンド送信間隔を200ミリ秒以上取る必要があるためです。データシートには電力を安定させるためだとあります。シェルのコマンドなら余裕で200ミリ秒以上の時間がかかるんでしょうね。

カーソル周りの制御

命令命令コード内容
Clear Display0x01全画面消去
Return Home0x02ホームポジション(1行目1桁目)へ戻る
Set DDRAM address0x80 / 0xc01行目1桁目へ移動(Return Homeと同じ)/ 2行目1桁目へ移動(改行と同じ)
0x81 / 0xc11行目2桁目へ移動 / 2行目2桁目へ移動
0x82 / 0xc21行目3桁目へ移動 / 2行目3桁目へ移動
0x83 / 0xc31行目4桁目へ移動 / 2行目4桁目へ移動
0x84 / 0xc41行目5桁目へ移動 / 2行目5桁目へ移動
0x85 / 0xc51行目6桁目へ移動 / 2行目6桁目へ移動
0x86 / 0xc61行目7桁目へ移動 / 2行目7桁目へ移動
0x87 / 0xc71行目8桁目へ移動 / 2行目8桁目へ移動
Display ON/OFF0xc0カーソルOFF
0xd0カーソルON

文字表示はカーソル位置に対して行われるので、データアドレス0x00にこれらのコードを送ってカーソル移動が制御できるようになると、結果的に文字表示位置を自由自在に指定できることになります。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments