PICAXEでGroveのRGBバックライト液晶モジュールを使ってみようとしています。

メモ2はLCD表示部です。
とまどいましたが,何とか表示できました(^^;;;



写真に撮るとバックライトは白かグリーンが良いですね。

なお,LCDからの配線は赤黒の電源とSDA(白)とSCL(黄)だけで,楽です(^^)

参考ページ
SeedstudioのGrove - LCD RGB Backlightのwiki
SeedstudioのJHD1214説明書



1.GroveのRGBバックライト液晶モジュールのLCD部のI2Cインターフェイス

・ LCD I2C Address 0x3E (JHD1313)

 PICAXEのBASICでは8bitアドレスなので,左に1つシフトする。
 0x3E=%011 1110 → %0111 1100=0x7C

・コントローラーはAIP31068L
 説明書はAIP31068Lで検索した方が詳しいのが多い



2.キャラクタLCDのI2Cインターフェイスは触れるレジスタが少なく,コマンド用のレジスタとデータ用のレジスタの2つ。

・以前からあるディスプレイなので,8bitパラレルデータ通信のコントローラをI2CからControl ByteとData Byteの組み合わせで動かしていると考えた方が良い。

・書込み様式図ではControl Byteの第7bitのCo(Continue?)の説明が詳しいが,第6bitにあるレジスタ切り替えのRSの方も大事。

・RS=0でコマンドレジスタ,RS=1でデータレジスタにデータが書き込まれる。


                 (JHD1214説明書より転載,一部改変)



3.PICAXEのBASIC言語で素朴なプログラム




・PICAXEのBASICではhi2csetupでスレーブアドレスを設定するとその後は変更がなければ維持されるので,inやoutのコマンドにはスレーブアドレスを記入するところがない。

・RGBバックライトのコントロールではレジスタアドレスを指定してデータを入れる。
 例:hi2cout 8,(0xAA) ; 第8レジスタにデータ0xAAを入れる

・LCDのコントロールでは最初のコントロールバイトの第6bitのRSでレジスタを切り替え,データを書き込む。レジスタアドレスの指定は無い。
 例:hi2cout (0x40,0x50) ;データレジスタにAsciiコード0x50 "P"を書き込む

・文字データをずっと同じアドレスに書き込んでいるように見えるが,表示先のアドレスは自動的に次に行く(Increment)設定にしてあるので,次々と場所を移して表示される。


ま,LCDの初期設定コマンドはほぼ説明書の通りの順番と内容です。どうもPICAXEの動作が遅いのでwaitやpauseの時間待ちは無くても大丈夫そうです (^^;;;;;;;

何のてらいも無いベタ書きのプログラムですが,ここまで来ればしめたものだと思っています。

後はカーソルの移動や画面操作をサブルーチン化してすっきりさせていけば,見栄えもよくなりますかね。

でもあまりカッコよく凝りすぎると,後から見て自分でも分かりにくくなる場合もあるのでほどほどに,ですね。