2019/09/23(MON) | 【電子工作】LCDを使ってみる |
---|---|
3連休は
台風がニアミスで 雨だったり風だったりで バイクに乗ろうかと思ったけど サス付けて、ちょっとだけでしたね。 で、部屋に篭って電子工作 まぁいつものごとくPICマイコンね。 今回はI2Cで制御できるLCDを使ってみます。 LCDってのは液晶ね。 今回は8文字×2行の小さめのを使ってみた。 ↓これね 裏に5P×2行のPINのコネクタを付けました で、ブレッドボードに使うには 間隔が狭いので変換器を自作します。 こんな感じにブレッドボード上で使います。 ちなみに10pinありますが 電源で2pin バックライトの電源で2pin コントラスト調整で1pin I2C通信で2pin I2Cのアドレスで2pin 使わないのが1pin で、合計10pin PICマイコンとの接続はI2C通信用2pinだけ とりあえず。8pinでI2Cモジュールを持っている PIC12F1822を使ってみました。 ↓こんな感じ。 ちなみに I2CとはInter-Integrated Circuitの略ね。 フィリップス社で開発されたシリアルバスらしい。 2本の信号線、シリアルデータ (SDA) とシリアルクロック (SCL) で 制御できる。 しかもPICマイコンで、 I2C用のモジュールが内臓されているのがあるので そういうマイコンをセレクトすると2線で制御できるのだ。 でね。 いつもはアセンブラでプログラムを書いているんだけど 今回は、処理が複雑になりそうだったので 初のC言語でプログラミングっ! #あ、ちなみに仕事ではC言語は使っています。 #PICマイコンで初めてという意味です。 まずは、開発環境の整備で コンパイラのインストールからw インストールしたあとは プロジェクト作って云々はアセンブラと同じ。 で LCDのデータシート(説明書)が 非常に不親切で、ハード的な情報はあるんだけど ソフト的な情報が少ない・・・ いろいろググって ↓やっと文字が出せた・・・ 実は、いろいろハマって オシロで測定しつつデバッグしました。 さんざんデータ通信の割り込みが入らないと思ったら マスターの設定にしなくちゃいけないところを スレーブの設定にしてた・・・orz マスターにしたら普通に割り込みが入った。 これで、デジタルタコメーターとか 水温計もスピードメーターとかも作れるぞっ! てか、 動作させながらデバッグモニタとしても使えそう。 今回作ったプログラムをちょっと整理して I2CとLCDを使うためのライブラリ化しておきますかね? イマイマはゴッチャ煮です。 ソースコードを紹介する時がくるかは不明www とりあえず、 またレベルがひとつ上がった気分です。 さて、なにを作りますかね? |