PIC 67:Controller for LCD (I2C)


 1:I2C式の液晶モジュール
 2:大形デイスプレー
 3:アイコン表示

 最近ミニLCD([ストロベリー・リナックス社]から)が出回っているので試して見ました。
 細かい情報はそこから得て下さい。

[ミニLCDを試す!]
 最近I2C式のLCDが出ています。小形でどんな物だろうか!と通信販売で購入してみました。
 一般に寸法が大きいので小さな物が欲しかった所で、種類は小形な物の他大形表示もあって面白そうですね。

 少し「文字が小さ過ぎる」感じもありますがI2Cでコントロールすることから、使い慣れた8ピンのPICでもコントロール出来そうです。

1: I2C液晶モジュール!
 まず、PICは8ピンのPIC12F629を使い、内蔵の4MHz発振動作としました。
 サンプルプログラムを見るとAVR用なので直接利用出来ません。タイミングの所をメモし、移植して動作させました。
 以前使ったLCDコントロールと同じコマンドなので助かりました、但しコントロールはI2Cを通しての実行です。プリント基板は実験用なので以前の物を再利用しました。
 I2Cのプルアップは27KΩです、これは手持ちの抵抗がたくさんある為で、特に意味ある抵抗値ではありません。

サイズ 46X32 mm
文字  5.26X2.26 mm
電源は 低電圧3.3V動作

[画面に出して見る]
 Softを作り、ICを差して3.3Vを加えると文字が出て来ました。予定通り「ABC… BY M.キクチ」と出るつもりがABCのところが表示がおかしくなっていました。
 理由は不明、そこで以前作ったLCDのプログラムを参考に少し追加した所正常に画面に出て来ました。

 表示は結構速く、初期設定を過ぎれば使えそうです。あまり早いのは無理かも知れませんが…。
 表示初めの部分[012... キクチ]までほとんど同時に表示され、見た感じでは遅れたとは思えません。

[プログラムを作って!]
 ソフトですが、サンプル程度の文字表示だけならPIC12F629で約390バイトです。全体で1KBあるのでまだだいぶ使えそうです。

ハードウエア
 いつもの様に万能基板を使って試しています。消費電流は3.3Vで0.67mA流れました。電圧により大きく変わります、大形LCDは少し増えて0.73mAでした。コントラストは少し濃いめです後で調整が必要です。

 電流は加える電圧により大きく変わるので、安定化電源が必要のようです。またデバイスによっても多少のばらつきがあるので、部品を変更するには調整が必要です。
 一般に電圧を上げると文字は濃くなります。

 コントラストと調整はSOFTでするのですが2バイト変更する必要があり、面倒です。プログラムは変数として設定しているので、数の変更だけで実行出来ます。(3.3Vで0X00101000)です。

[接続ピンに付いて]
 部品には10ピンの端子が用意されていますが、実際には5本しか使いません。1つはリセットでこれもVddに接続すると4本の結線になります。
 結局、私の場合5本のピンを使うことにし、IC丸ピンソケットをカットして利用しています。用意されているピンは細いので、良く出回っているピンやソケットではゆるいので注意です!

 回路図は省略します、重要な結線は2本だけ(Scl、Sda)です。これが分からない人はI2Cに付いてかなりの説明が必要です…。


大形サイズ

2: 大形デイスプレー
 大きさは[102X36mm(表示部分は102X28mm)]ソケットは小形の物と同じです。写真は裏側に付いている差込を外し、付け替えて表示させています(プログラムは同じ)。

 形が大きくなると文字も大きくなり見易いです。少し透けているので説明書に「バックライトの使用も可」とありました。
 後方に付けてもLEDがもの凄く電流を食うので、メリットは無いようです。また、付けてもあまり明るくありません。
 白紙を入れると少し明るい感じがしました。

 液晶で一部黒い部分は内部動作に必要な配線です。従来の物はここがなく下側に出され、ゴム見たいな物で結線しています。その分メリットとしては平たく出来ることでしょうか。
 あのゴム見たいのが古くなると外れて動作しなくなる、のですがこれだと外れなければ、相当長持ちしそうです。


[作って見た感じ]
 どうもICの消費電流は電源電圧によって変わります。1mA以下で動作しているので、もっと工夫すると更に節電出来るようです。
3.3V 0.67mA 0.55mA(ICのみ)
2.8V 0.59mA 0.49mA
2.4V 0.55mA 0.43mA :大形デイスプレー、薄いのを我慢し動作の確認だけ。
 IC分を差し引くと約0.12mAとなり、かなり少ないので小さな電池動作でも可能です。


電池Box

3: アイコン表示
 アイコンはスペシャルコマンドで少しメモリーを食います。
 試しに電池アイコンを表示させると20バイトぐらい使っていますがサブルーチン化して使い易くしました。A/Dコンバーターを動作させ電源を監視して表示させる、なども考えられます(でも小さくて見難い…)。
 アイコンの表示方法は[サンプルプログラム(このプログラムで420バイト)]に入れて置きます。

 表示するにはIconアドレスとIconビットをセットしますが、詳細(アドレスやビットなど)はストロベリー・リナックス社の資料をダウンロードして御覧下さい。

アイコン表示のプログラムは!

void Lcd_Icon_Dsp(char I_add,char I_bit)
{             // I_add=Icon Address   I_bit=Icon bit
     Lcd_Comd(0x39);           //Function Specal
     Lcd_Comd(0x40 | I_add);   //set of Icon Address
     Lcd_Data(I_bit);          //set of Icon bit
     Lcd_Comd(0x38);
}

実行のサンプル
     Lcd_Icon_Dsp(0x0d,0x1e);  // 電池 Box
     Lcd_Icon_Dsp(0,0x10);     // Antenna

 プログラムは再利用しているので、全体に無駄が多い。個々に作れ直せばもっと処理スピードは上がります、でも−メモリーに余裕が無いので・・・(~o~)v。

2010/11/27 作成   



 [MENU] [MAIN MENU]

inserted by FC2 system