PICでLCDを操作する

はじめに

秋月電子LCDディスプレイモジュールを購入したので、PICで動かしてみた。

今回用意するのは

事前準備

上のLCDディスプレイモジュールは、そのまだとバックライトがつかないので、J3とR9に抵抗を半田付する必要がある(取扱書に載っている)

f:id:kyonta1022:20211103211413j:plain

データシート

ディスプレイモジュールのデータシート。結構やることがある....

https://akizukidenshi.com/download/ds/sunlike/SC1602BBWB-XA-GB-G.pdf

ライブラリ

LCDを駆動させるにあたりスクラッチで書くのもいいが、ArduinoのLiquidCrystalライブラリみたいな感じで、詳細を知らなくてもサクッと使えるモノはないかを探してみると、以下のライブラリと遭遇した。こちらは、説明用のブログがセットになっているので大変わかりやすく、導入が簡単だったのでこれを使用した。

Github

github.com

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

kyonta1022.hatenablog.com

上のブログに倣ってHeader Filesに config.h の作成をして、Source Filesに main.c を作成する

gist.github.com

gist.github.com

Githubからソースをダウンロードしてきて、lcd.hlcd.c をプロジェクト直下(\MPLABXProjects\lcd.X)に配置する。

f:id:kyonta1022:20211105193159j:plain

lcd.h をHeader Filesにインポートする

Header Files > Add Exists Item > lcd.h

f:id:kyonta1022:20211105193503j:plain

lcd.c をSource Filesにインポートする

Header Files > Add Exists Item > lcd.h

f:id:kyonta1022:20211105193646j:plain

コンパイルする

回路図

小型ボリュームは抵抗値を変えられるようになっており、これでディスプレイの液晶濃度を調整できる。これがないと文字が見えない状態になっているので、調整のためには必須となる。

f:id:kyonta1022:20211103210924p:plain

f:id:kyonta1022:20211103211429j:plain

まとめ

PICでLCDを使うにはセットアップやコマンド送信など結構やることが多くてめんどそうだなと思っていたが、こういうライブラリを使うとサクッとできて敷居が下がるので、大変便利だった。ここまで簡単にできてしまうとArduinoでなくても全然良い。