PIC10F222を使ったLCD表示温度計の実験                       nobcha(c)2010

 はじめに 

 PIC10F222のADCを使い、LCDに入力値の計算結果をLCDに表示すると言う実験です。温度センサーからのADC入力を7セグメントLEDに表示する実験の延長で表示をLCDに変えようというものです。

 PIC10F222は入出力端子は3本、デジタル入力端子が1本。アナログ端子をADC用に使うと出力端子に使用できるのは2本です。ここに今まで他のPICシリーズでも利用してきたTC4040Bカウンタを使用してつなぎます。

 また、バッテリー動作を考えて、単三電池一本で動かすようにステップアップコンバーターをつなぎました。

 

 実験仕様

 次のようにして実験を行います。

機能

詳しい内容

実験・試作・基板・ソフト

AN0ポートをADC入力にしてLM61BIZ温度センサーをつなぐ LM61BIZ温度センサーは5Vで動作、出力電圧は(セ氏温度)*10mV+600mVである。PIC10F222のADCは(電源電圧)−(グランド)=5.0Vを256デジット分解能で逐次比較したビット数を出す。 HiTEC Cを使いますが、512ワードにプログラムを収めるため掛け算は使えず。また温度センサー10mV/1℃に対してADCが19mV/BITなので、±2℃の表示誤差が出ます。
16字2行のLCD表示はSC1602コンパチを使用 4ビットモードでつなぎます。 PIC10F222からはTC4040Bに与えるパルス数とパルス送り出し後のEn信号でLCD制御回路を動作させます。

TC4040Bをシフトレジスタ的に使用する

バイナリーカウンタのQ出力を設定するために必要なパルス数を積算してTC4040Bに送り出します。CLKの時間を延ばすとリセットになります。

詳しい説明はこちらにあります

ニッケル水素充電池1本で電源供給 ホルテック社製のステップアップコンバータHT7750Aを使用して5Vを作り出します HT7750Aが作る5Vの立ち上げが遅いので、LCDのイニシャルルーチンでは2秒間待ってからスタートします。

 

 

 回路

 回路図です。PIC10F222用ICソケット+ICSPコネクタ基板、TC4040B+SL1602基板を作成し、それらをブレッドボードに差し込みます。それ以外のLM61BIZとかHT7750Aはそのままブレッドボードに差して使います。

回路図は水魚堂さんのBSchを使いました。また関連記号類も利用させていただきます。公開された作者さん達のご努力に感謝いたします。http://www.suigyodo.com/online/schsoft.htm

 

 プログラム

 環境はMAPLAB V8.56、コンパイラはHiTECH社 C10/12/16用LITE V9.80、です。プログラムはMAIN表示の2つに分けて作成しました。表示関数を引き込むhファイルタイミング制御の__delay_ms(),__delay_us()関数を引き込むためのhファイルが必要となります。

 

 実験風景

 お得意のブレッドボードスタイルです。マイコン基板、表示基板は使い回しを考えてユニバーサル基板でまとめています。ステップアップコンバーター用の大容量コンデンサですが、手元に丁度良いタンタルコンが無く、OSコンで代用しました。

 消費電流はとみるとバッテリー側で60mA、5Vでは12mAも流れています。LCDをみやすいようにバックライトを点けているのでそれで10mA近く喰ってます。実用試作のときはバックライト無しにして、表示文字も少なくてよいので、1行LCDにすればよいのではと思っています。

 

全体目次に戻る

アイコンは「牛飼いとアイコンの部屋」から提供受けました。ありがとうございます。

inserted by FC2 system