PIC16F84電子遊戯(73) |
最終更新日:2002年6月9日 |
アヒルの乾電池チェッカー(1ページ)へ (2ページ) (3ページ)へ |
|
アヒルの乾電池チェッカーの基本仕様 |
1)乾電池の目安の電圧を表示します。赤色LED(0.9V〜1.1V)、橙色LED(1.2V)、黄色LED(1.3V)、緑色LED(1.4V)、青色LED(1.5V〜1.7V)とします。
2)それ以外の電圧時も目安となる表示を行います。
3)単3電池、単4電池がチェック出来ます。
4)かわいいアヒルが御案内いたします。(なんじゃそりゃ?) |
アヒルの乾電池チェッカーの回路の追加 |
簡易A/Dコンバータの特性を見るためにLEDを3個追加しました。
最終的にはアヒルが表示する以外の電圧の表示を行います。 |
 |
(RB5、RB6、RB7に赤色LEDを追加した回路) |
 |
(赤色LEDを3個追加しました) |
アヒルの乾電池チェッカーのポート割付 |
ポート名 |
入出力 |
機能 |
RA0 |
IN/OUT |
コンデンサ充放電制御 |
RA1 |
IN |
OPアンプ出力より |
RA2 |
OUT |
NC |
RA3 |
OUT |
NC |
RA4 |
OUT |
NC |
RB0 |
OUT |
赤色アヒル君 |
RB1 |
OUT |
橙色アヒル君 |
RB2 |
OUT |
黄色アヒル君 |
RB3 |
OUT |
緑色アヒル君 |
RB4 |
OUT |
青色アヒル君 |
RB5 |
OUT |
低電圧表示 |
RB6 |
OUT |
補助用 |
RB7 |
OUT |
高電圧表示 |
|
今回のコンデンサの充放電に関しては、前回までのトランジスタでの制御からポートのみの入出力切り換えにて対応します。 |
アヒルの乾電池チェッカーの時間計測 |
電池電圧の違いにより、コンデンサ充電による電圧が一致するまでの時間を測ることにより簡易A/Dコンバータを構成しています。計測の概略は次の通りです。 |
タイマー割り込みでインクリメントされるカウンタをクリアする |
RA0ポートを出力Lにする(コンデンサの放電) |
時間待ち |
RA0ポートを入力にする(コンデンサの充電スタート) |
タイマー割り込みを有効にする |
RA1がLになるまで待つ |
タイマー割り込みを禁止する |
|
上記の処理により、タイマー割り込みでインクリメントされるカウンターの値が充電時間と比例関係を取ることが可能になります。 |
count |
タイマー割り込みでインクリメントされるカウンタ |
|
タイマー割り込みの間隔は前回と同じく、64usecとしました。 |
アヒルの乾電池チェッカーのコンデンサ充電の検証 |
今回の簡易A/Dコンバータの回路について電子回路シュミレータで検証しておきましょう。 |
 |
いかがでしょうか。乾電池の電圧を1.1Vとしたときの充電時間は約4.8msecと出ました。(コンデンサ制御のシミュレーションはポートの入出力切り換えを簡単に行うために、トランジスタで駆動しています。)
実際には少し違った値になりますが・・・・(ほぼ的中?) |
 |
乾電池電圧1.5V時のシミュレーションです。約6.9msecと出ました。
割り込みカウンタの割り込み間隔を決める目安となります。
(今回も割り込み間隔64usecでいいとする目安です。) |
アヒルの電池チェッカーのデータ測定 |
実際に回路を組んで見ると計算値通りにはなかなかいきません。
そこで、テストプログラムでデータを測定することにしましょう。
コンデンサの充電時間は8bitカウンタで計測可能なようにしてありますので、その計測時間を直接LEDにビット表示するソフトを作りましたので、それで各自計測してみてください。(なぜLEDが8個になったかわかりましたね。) |
 |
データ測定プログラムはこちらです。圧縮しています。展開するとHEXが生成されますので、そのままPICに書き込んでください。 |
 |
上の表はエクセルで作成したものです。乾電池の電圧からOPアンプに入る電圧を計算した値をもとにコンデンサの充電に掛かる時間を導きカウント値を出したものです。
まずは皆さんの回路でこの値を実測してみて下さい。
丁度アヒル5ヒキと追加LED3個のトータル8個のLEDが割り込みカウンタの8bitの値をそのまま表示してくれます。
私の場合は表中の実測の部分です。いかがでしたか、多分計算値とは少し相違があるはずです。次にこれを補正します。表の左上に「CR=****」の表記部分があります。
この値を少しずつ変化させて、実測値と計算値がなるだけ同じ値になるように調整するのです。特に今回は乾電池電圧付近(0.9V〜1.7V)に誤差がないように調整しましょう。
ちなみに私の場合は「CR=0.0167」となりました。コンデンサの値が実際には少ないようですね。(回路理論上はCR=0.02となります。) |
調整が終わればこの値を用いて実際のプログラムに反映することになります。
実測校正用計算エクセルデータはこちらです。圧縮していますので展開してお使い下さい。 |
ということで長くなりましたが、今回はここまでとしましょう。次回以降もよろしくです。 |
これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。 |
|
不明点などあればメールお願いいたします。nonchansoft@nifty.com |
|
 |