PIC F1シリーズのDACで電源電圧追従キャラクタ液晶を作ってみた

ストロベリーリナックスや秋月からI2C制御のキャラクタ液晶モジュールがいくつか発売されているが、私もいろいろ使わせていただいて重宝している。air variableさんが普通のパラレル方式の液晶モジュールを使って互換LCDを製作されているのに触発されて、自分でも作ってみた。

しかし、ただ作るのでは意味がないので、将来的には教材にも使えるように考えて、いろいろ機能を付け足してみた。

特に、教材で使用する場合、電源電圧が5Vのときや3.3Vの時など、各種の電圧を使用するので、その度に回路を組み替えたりプログラムをいじったりするのは面倒で、いっそのことI2Cバスごとモジュール化していろいろな製作物に使えるようにしたい。ストリナのI2C液晶には、液晶の濃さや液晶電圧のコントロールをするためのコマンドが用意されているので、これをできるだけエミュレートしてみることにした。air variableは、秋月LCDのエミュレートを考えていることからPIC16F68xを使用していたが、最初から作るのでできるだけ小さく作ることからも14ピンのF1チップPIC16F1823を使用することにする。PICでのI2Cスレーブはハードウエアがないと使い物にならないことは以前の実験でわかっているのでI2Cスレーブのハードが搭載されていることが必須となるが、F1シリーズはどれも備わっているので問題ない。

ということで、回路図は以下の通り。

I2CLCD1823

パスコンやダイオードの型番などは省略されているが、トランジスタは普通のものならOKで、ダイオードもショットキーバリアなどの電圧降下の小さいものならOK。普通のSWでもいけるが、2.8Vではかなり薄くなる。電圧の制御はDACを使用して約42kHzで制御している。周波数を低くするとオーディオ系の表示には使用できないと思う。いや、できなくはないか・・・・ノイズがピーピーするだけで・・・。その時にはコンデンサも大きめの方がいいと思う。とりあえず、PICは32MHzで動かしているので、十分処理能力があって問題はなかった。

ソフトウエアは例によってXC8で作っている。ストリナ液晶の制御チップST7032iのエミュレーションを行っているが、拡張コマンドのコントラストとフォロアーのコマンドを受け付けるようにしてある。というかしてあった。私は、ストリナ液晶を使用するときはフォロアーの制御で電源電圧の違いを吸収していたのだが、よーく考えたら、PICのADCを使えばおおよその電源電圧を測ることができるので、わざわざプログラムを書き換えるよりも、自分で電源電圧を見て追従するようにすればいいんじゃないか?ということで、フォロアーのコマンドは無視して電源電圧に追従してコントラストを調整するようにしてある。使用するキャラクタ液晶モジュールによっては、コントラストが多少変わってくるのでコントラストの調整コマンドはそのまま使えるようにしてある。おおよそではあるが、秋月のキャラクタ液晶を使用すればストリナのSB1602Bと同じ濃さになるようにしてある(つもり)。

ということで、完成したストリナI2C液晶互換電源電圧自動追従液晶モジュール(長い)を電源電圧を変えてみた動画を撮ってみたのがこれ。

わざわざ液晶モジュールをI2C仕様にしてまでも使ってみたいという奇特な人のためのHEXファイルはこちら(i2clcd1823:例によって拡張子をHEXに変えて使用する)。

ただし、追加部品は200円未満なので秋月I2C液晶モジュールを買うよりは安くつくと思うが・・・。将来的にはI2Cバスでモジュール連結する教材を作る予定なので、私の場合はこれでオッケー!(2012年流行語大賞ノミネート語らしい。使い方オッケー?)

  1. トラックバックはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。