PICでLCDを操作する
はじめに
秋月電子でLCDディスプレイモジュールを購入したので、PICで動かしてみた。
今回用意するのは
- 16F628A
- SC1602BBWB-XA-GB-G
- 小型ボリューム 1KΩB
事前準備
上のLCDディスプレイモジュールは、そのまだとバックライトがつかないので、J3とR9に抵抗を半田付する必要がある(取扱書に載っている)
データシート
ディスプレイモジュールのデータシート。結構やることがある....
https://akizukidenshi.com/download/ds/sunlike/SC1602BBWB-XA-GB-G.pdf
ライブラリ
LCDを駆動させるにあたりスクラッチで書くのもいいが、ArduinoのLiquidCrystalライブラリみたいな感じで、詳細を知らなくてもサクッと使えるモノはないかを探してみると、以下のライブラリと遭遇した。こちらは、説明用のブログがセットになっているので大変わかりやすく、導入が簡単だったのでこれを使用した。
Blog
https://trionprojects.org/lcd-interfacing-with-pic-using-xc8/
Usage
https://trionprojects.org/lcd-library-for-8-bit-pic-microcontrollers/
セットアップ
LCD用のプロジェクトを作成する。作成方法は過去のブログ参照
https://github.com/Trionium/PIC-Libraries/tree/master/LCD
上のブログに倣ってHeader Filesに config.h
の作成をして、Source Filesに main.c
を作成する
Githubからソースをダウンロードしてきて、lcd.h
と lcd.c
をプロジェクト直下(\MPLABXProjects\lcd.X)に配置する。
lcd.h
をHeader Filesにインポートする
Header Files > Add Exists Item > lcd.h
lcd.c
をSource Filesにインポートする
Header Files > Add Exists Item > lcd.h
コンパイルする
回路図
小型ボリュームは抵抗値を変えられるようになっており、これでディスプレイの液晶濃度を調整できる。これがないと文字が見えない状態になっているので、調整のためには必須となる。
まとめ
PICでLCDを使うにはセットアップやコマンド送信など結構やることが多くてめんどそうだなと思っていたが、こういうライブラリを使うとサクッとできて敷居が下がるので、大変便利だった。ここまで簡単にできてしまうとArduinoでなくても全然良い。