LED回路工作部屋 > 簡易電圧計 製作紹介 【最終更新日:2012/2/6】
簡易電圧計 製作紹介
■ 簡易電圧計について

補足ですが、実際のところ電圧計を作るのが目的ではなく、ある物の電圧(電源等じゃりません)データをパソコンで取得するための基礎実験です。一応、電圧計という形にしただけのものです。

 この電圧計はPICで取込んだA/D変換値を、シリアル通信でパソコンへ送り、ソフトで電圧値を表示します。  ここで使用するPICの型番はPIC16F688ですが、7セグメントLEDで電圧値を表示する場合はピン数が多いPIC16F886が適します。
 A/D変換値は10ビットの内、8ビット256分解(左詰めでADRESHの部分だけ)を利用して1分解を0.1V換算で0〜25.5Vまで測定できるようにします。もともとの用途が車やバイク等のバッテリー電圧測定なので、この用途ではこの測定範囲で十分である。



■ 入力電圧を分圧、A/D変換する

 測定する最大電圧値が25.5Vなのは、A/D変換値を0〜255の範囲で取得するので、1カウント0.1Vで換算し易いからです。分圧抵抗値は最大25.5Vの測定時にA/D変換用の入力を5Vにしたいので、分圧する際の抵抗比は20.5 : 5 になります。計算上20.5の部分を10kΩとすると5の部分は2.439kΩになるので、手持ちの抵抗を探した結果、10kΩと2.39kΩにしました。あとはプログラムで誤差を補正しようと思いましたが、




■ 回路図と電圧の表示

 測定する電圧は分圧してAN7から取込みA/D変換します。変換値の上位8bitをレジスタへ保存し、PICのTxからパソコンへ送信します。パソコンでは受信した値を10進数で取扱い、0.1V単位で表示するだけです(144なら14.4V)。




■ 7セグメントLEDで表示する場合は?

 7セグメントLEDで表示する場合は、A/D変換値をBCDに変換しなければなりません。

BCD (Binary Coded Decimal) とは?
2進数の値を4桁用いて、10進数における1桁分 の値を表現する方法のことです。


 例えば、A/D変換値は16進数で結果がでますが、その結果を10進で表すると144だとします。この電圧計では電圧換算計算すると 144 x 0.1v 14.4Vになるわけですが、7セグメントLEDで14.4Vと表示すには、144を1と4と4に分割して、それぞれの桁に対応した値をを7セグメントLEDに表示しなければなりません。PICでBCD変換する際に一番単純(簡単)な方法は「その元となる2進数の値をカウントする」です。下記プログラムではA/D変換値を T_Dataに移し、 CALL命令BCD_H0 を呼び出すと C1 C2 C3 に値を返します。例えばA/D変換値が2進数表記で"1111 1111"、10進数表記で"255"ならT_Dataに値を入れてCALLで BCD_H0 を呼べば、C3=0010(2) ※()内は10進数表記 , C2=1001(5) , C1=1001(5) の値が入り、それをテーブルリストで7セグメント表示に対応させれば、25.5Vの表示になります。





■ パソコン側で使用するソフト

・簡易電圧計ソフトのダウンロード



■ とある掲示板の紹介