PICAXEでGroveのRGBバックライト液晶モジュールを使ってみようとしています。
メモ2はLCD表示部です。
とまどいましたが,何とか表示できました(^^;;;
![](https://stat.ameba.jp/user_images/20190924/21/pta55/d6/c6/j/o0800069514598297866.jpg?caw=800)
写真に撮るとバックライトは白かグリーンが良いですね。
なお,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でデータレジスタにデータが書き込まれる。
![](https://stat.ameba.jp/user_images/20190924/21/pta55/81/06/j/o0800030214598298237.jpg?caw=800)
(JHD1214説明書より転載,一部改変)
3.PICAXEのBASIC言語で素朴なプログラム
![](https://stat.ameba.jp/user_images/20190924/21/pta55/56/1f/j/o0732050714598298042.jpg?caw=800)
・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の時間待ちは無くても大丈夫そうです (^^;;;;;;;
何のてらいも無いベタ書きのプログラムですが,ここまで来ればしめたものだと思っています。
後はカーソルの移動や画面操作をサブルーチン化してすっきりさせていけば,見栄えもよくなりますかね。
でもあまりカッコよく凝りすぎると,後から見て自分でも分かりにくくなる場合もあるのでほどほどに,ですね。
メモ2はLCD表示部です。
とまどいましたが,何とか表示できました(^^;;;
![](https://stat.ameba.jp/user_images/20190924/21/pta55/d6/c6/j/o0800069514598297866.jpg?caw=800)
写真に撮るとバックライトは白かグリーンが良いですね。
なお,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でデータレジスタにデータが書き込まれる。
![](https://stat.ameba.jp/user_images/20190924/21/pta55/81/06/j/o0800030214598298237.jpg?caw=800)
(JHD1214説明書より転載,一部改変)
3.PICAXEのBASIC言語で素朴なプログラム
![](https://stat.ameba.jp/user_images/20190924/21/pta55/56/1f/j/o0732050714598298042.jpg?caw=800)
・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の時間待ちは無くても大丈夫そうです (^^;;;;;;;
何のてらいも無いベタ書きのプログラムですが,ここまで来ればしめたものだと思っています。
後はカーソルの移動や画面操作をサブルーチン化してすっきりさせていけば,見栄えもよくなりますかね。
でもあまりカッコよく凝りすぎると,後から見て自分でも分かりにくくなる場合もあるのでほどほどに,ですね。