title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM 16F886 で電圧ロガー
小さくも大きくも閉じたりもしません
12/02/05 02:05 / 電子工作

ここ最近、ずっと基本的な処理のコード(MPASM で文字列関連のサブルーチン)を作っていたのですが、ようやく出来たので電圧ロガーを作ってみました。

photo


ブレッドボード上に 16F886 と ADM232 と LCDユニットを付けて、RA0 に入力された電圧を LCD と RS232C に出力しています。

凄い基本的な構造ですが、これが出来ると、各種センサーなどを取り付けて処理が出来るようになります。

最初はブレッドボード上に作っていたのですが、いつまでもブレッドボードの上に残しておく訳にもいかないので、電子回路CAD を色々と物色。

いくつか試してみたのですが、P板.com で無料配布されている CADLUS Circuit にしました。

photo


CADLUS Circuit でブレッドボード上に作った奴を書いている様子。

photo

出来あがったものを Bitmap 出力(LCD部は省略)

さて、自分的なメモも兼ねて復習することがあります。

電子回路初心者の私は「電圧を計測するには、対象のプラスとマイナスを PIC に繋げないと駄目だよね?、PIC のデータシートとか見てると、RA0 とかに入力できるって書いてあるんだけど『マイナスはどこに繋げればいいの?』」という疑問がずっとありました。

テスターなどを使っていると当然、このような発想になるはずです(だよね?)

photo


マイナスを繋ぐと、1つの基板上に電源が2つ。
しかも片方は 12V です。PIC の耐圧は 5V 位と聞いているので、繋げたら壊れそうです。(実際に繋げたら壊れると思うので、実験の際には安定化電源を繋げて 5V 以下でテストしていました)

んで、答えは「GNDに落とす」

photo


良くわからんのですが、これで良いようです。
おそらく、きっと、未知のPICパワーが働いて・・・では無くて、キルヒホッフの法則?とかいう奴で、ちゃんと戻るようです。電子の動きって凄いね!
「マイナスとGNDはちゃうよ!」ってどっかで読んだ気がするのですが、多分こういうことなんだろうと思います。
まぁ、理論はわからんのですが実践で動いているので、多分オッケーです。

実際あちこちのサイトを見ていたのですが、この説明が無いのが殆どだったんですよ。電子回路の初歩の初歩なのかもしれませんが、ここで相当悩みました(^-^;

しかし、もう一つ問題があります。

マイナスをどこに繋げれば良いかはわかりましたが、PICに掛けられる電圧は 5V くらいです。
12V を突っ込んだら壊れます。(やってないけど、多分壊れるでしょう)

その前に1つ復習

PIC のデータシートなどを見つつ、アナログ入力を行う場合、基準電圧という物がありました。
外部から入力させることもできるようなんですが、PIC電源電圧を基準にすることも出来るようです。
電源電圧を正確に 5V にすれば、5V が基準電圧となります。

次に PIC16F886 の A/D変換の精度は 10bit です。
つまり、A/D 変換すると、0 〜 1023 の範囲でデジタル変換されるということになります。

この二つを合わせて考えると

0V の時は 0 が出るよ。5V の時は 1023 が出るよ。

ってことになります。
デジタル1に付き 0.0048V ってことです。
ここ重要です。

さて話は戻りまして、PICには 5V しか入力できない。
5V までしか計測できないんじゃ意味が無い。

どうするべ?と考えた時に「入力を5V以下に減らせばいいんでない?」ってことになります。

ここで回路図には載せてありますが「分圧」ってのを使います。これは何となく覚えていました(一応、工業高校の電気科です)
抵抗を2個並列に繋ぐと、それぞれの「抵抗の比率」によって電圧が分割されるって奴です。

回路図には 10KΩが2個並列接続されていますので、単純に電圧は 1/2 になります。
片方はGNDに落ちているので、消えていきます。
もう片方は PIC の RA0 に繋がっているので、電圧がかかります。

比率ってのが重要ですね。これが「-5V される」だと使えませんが「1/2 になる」ことを利用すれば、10V が入力されると 5V になる訳です。

ここで、A/D変換に話がまた戻るのですが、

0V 〜 5V で 0 〜 1023 です。
1:0.0048V です。

しかし入力は 1/2 にされています。逆を言えば「本当に計測したい電圧は PIC に印加されている倍の電圧である」ということになります。

つまり
0V 〜 5V で 0 〜 1023 は同じですが、比率の方は倍になり
1:0.0096V になります。
更にひっくり返すと
1023 の時は 10V になるってことです。

おぉ、分圧ってすげぇ・・・
しかし、デメリットもあります、比率が倍になると、精度は半分になるってことです。
(実際には、小数第三位まで必要になるというケースは余り無いと思うのですが、10bit A/D の場合は、精度は 0.0048V なので、それ以上の精度にする場合は 12bit A/D が必要になる訳です。)

さて、これで 10V まで計測できるようになりました。
しかし車用のバッテリー電圧を計測する場合は、最低でも 15V〜16V必要です。
チャーコンを見ていると 20V 位を出力している場合もありますので、余裕を見て 25V とします。
この場合、1/5 にする必要があるので、R1 を 10KΩ、R2 を 40KΩにすれば、最大 25V 入力された場合でも、PIC には 5V しか印加されないことになります。
ただし、精度は 1:0.024V です。でも充分な精度です。
凄いな分圧!(2回目)

なんか、凄い初歩の初歩に感動しているんですが(^-^;

あ、一応念の為なんですが「実際にこうしてみたら動いた」というトライ&ゴー方式なので「理論的に合っているかは、わかりません」
あとアセンブラコードは、恥ずかしくてまだ出せません。
まだ、こんなレベルなのでコメントだらけでハズカシー(笑)

[更新日付:2012/02/05 02:05:14]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+7eb8a404afc3cd276ec140803e744ed904fef0ab]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+7eb8a404afc3cd276ec140803e744ed904fef0ab]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.