DC・Small Volt/Amper Mater
本業が少ない時はスキル向上を出来るだけ実行する様に心がけていますが・・・・これがなかなかできないのが現実です。皆さんはどうですか!? さて今日のお題は上のタイトルにもあります、小さな電圧/電流計を製作しましたのでレポート致します。
と言ってもこのお題は、マイコン工房のページの2008年6月5日にある内容と類似するものになりますが、今回の開発には少しこだわりを入れております。まず「小さい」こと、2chのアナログ入力
を用意し「電圧と電流を計測」すること、「精度が良い」こと、「ボタン電池1個で長い時間計測できる」こと、などの機能をコンセプトにして製作しました。どのくらい小さいかは下の写真を見て下さい。
電池持ちを長くするため、表示は点滅にしています。点滅表示速度は、0.5秒表示固定で周期はDIPスイッチで、約1秒周期と、約2秒周期
の切替選択になります。電圧と電流もDIPスイッチでの切替となります。
基準電圧には外部で用意し、手持ちにあったナショナルセミコンダクタ社のLM336Z-2.5VをVref+(RA3:AN3:3Pin)に入れています。ちなみに今回の仕様は・・・
● 計測電圧 DC0V〜+25.0Vまで
● 計測電流 DC0A〜+2.50Aまで
● 入力インピーダンス 1MΩ(電圧)、1Ω(電流)
● 精 度 ±0.5%-1dig (※ 目標値)
※ 片極性のみでマイナス表示はしません。
と言うものです。
製作した目的は出来るだけ小さく製作し、暗い盤内でも使える様、液晶ではなく7セグメントLEDを使い、長い時間計測できる物で、いくつかの場所を監視する目的で・・・と考えていました。あとは、高電圧を扱う機会が多いため、浮いた電圧の計測などにも威力を発揮します。
初めは白い4桁の7セグメントLEDが秋月電子さんで販売されていたのを見つけ、白いと言う珍しさで早速購入して動作させたのですが、ちょっと大きいなぁ〜と思い、急遽上の写真の物に作り替えた次第です。4桁のLEDはアノードコモン
、上の3桁のLEDはカソードコモン、プログラムで処置しました。いつもの仕様を下記に示します。
← 左は最初に製作した白色4桁7セグメントLEDを使った電圧電流計です。これはそれなりに使えそうです。今回製作した3桁の7セグメントLEDより少ない電流で点灯するので、より消費電流を小さくすることが期待できそうです。 このLEDはOpto Supply社製で、色は白の他にも青、緑、黄、赤色などの種類があるようです。値段は色によって、200円、250円、350円と言うラインアップでした。白はちなみに350円です。 |
ソフトウェアと言っても大したことをしておりません。以前と違うことは、CCS-CコンパイラからHI-TECH Cに変えたことです。故意に変えたのではなく、今持っているCCS-Cが今回使用したPIC16F1827
に対応していないためです。少しずつではありますが、このHI-TECH Cの癖が見えてきたような気がします。じつはその昔、Z-80を触っていたころにHI-TECH C for Z80を使おうとしていたことがあります。その当時C言語
を全く知らなかったので使えずじまいで終わっていまい、今思えば残念でなりません。
さて本題ですが、今回10ビットのA/Dコンバータなので3ケタのセグメント表示で十分だと思っています。出来るだけ最小桁の精度を確保するため、演算用データはfloat型を使っています。表示精度を確保するため、short long型
を使い、四捨五入をしています。そのため2Kバイトのメモリーの内、半分程の量を使っています。
一番苦労したのは消費電流を小さくするためのCPUの周波数Foscをいくつにするかでした。最小値(31KHz)にした場合、
演算ルーチンの時間がかかるためか、表示が追いつかない現象がありました(当たり前か!!)
落ち着いたところはFosc=4MHzでした。桁のスキャンは2msとし、タイマーはたくさん(4個)あるので、TMR2を使いました。TMR2
のタイマーはON/OFFができるので、必要な時だけ動作させる様にしています。
全体としてはウォッチドッグの設定で、タイムアップとスリープを繰り返すだけのプログラムです。PIC16F1827のシリーズはこのウォッチドッグ関連も改良されていて、TMR0
とは独立してプリスケーラが設定できるようです。かなりの幅で設定できるので助かります。
なお、電流の計測については手持ちの部品が無いため、今回は評価しておりません。入手次第、評価してまたレポートしたいと思います。一応、電圧のみの評価した内容を動画にしましたのでアップしておきます。動画再生時間が長くなっている事をお詫び申し上げます。飛ばしながら見て下さい。