回路
組み立て
左写真はケース内部の様子。秋月KitとL/Cメーター基板を重ねて実装、パネルSW類は以前のCメータ部品をそのまま使用しました。 LCD部は、そのままでは光が漏れるのと、ちょっとぎらついた感じなので青系のアクリルでカバーをかけ、LCD部のみ透過するようアクリルの裏面は塗装 しました。
|
ソフトの説明
ソフト開発にはCCS社のCコンパイラを使用、ソースリストはこちら。未知のLxを求める場合
Lx={(Fref/Fx)^2-1}xLref (ここでFrefは基準Lref(100uH)時の発振周波数、Fxは未知のLとLrefの合成インダクタンス時の発振周波数)、で求められます。同様に
Cx={(Fref/Fx)^2-1}xCref
この計算をアセンブラで作ろうとすると作る以前に挫折してしまいそうですが、Cなら lx = ((fref/fx) * (fref/fx)-1) * lref と記述すればいいので、
ソフト開発がとても楽になります。
LCD表示 はライブラリーとして別になっていたものを一本化しました。通常4bitモードで使用する場合RB4-7のポートを割り付けますが、今回はRB0-3を使用 しましたのでSWAP命令で上位と下位を入れ替えてデーターをLCDに送出します。
F-COUNTER TIMER2で0.1secゲートを作り、TIMER1で周波数をカウントします。
keisan1,2 FrefとFxからそれぞれ未知のLx,Cxを計算します。keisan2はレンジ4(1uF〜)の計算を受け持っています。
Calculat Ave 周波数カウントを5回実施しその平均値を求めています。1回の周波数測定は0.1secなので0.5sec毎にデーターを更新し、低容量測定時のばらつき 低減を狙ってみました。
main 各ポートの初期設定、LCD初期表示、初期キャリブレーション実施後各レンジ設定に応じた処理に分岐します。分岐にはswicth文を使いました。
LCD表示では"nF"表示を止め、使い慣れているpF、uFにしています。
その他 レンジ切り替えに伴いCAL動作するようにプログラムを組みましたが、正確なCALになりませんでした。原因として、レンジ切り替えに伴う発振条件変化に伴う
安定化の時間にもう少しwaitが必要。ただあまりwaitをいれると間延びした動作になるので、今のところ必要に応じてCAL SWを押すことで対応しました。
校正、使用感
測定精度は使用するLref、Crefによって決定される他、回路の浮遊容量などが影響します。当局の場合、+/-1%クラスのL/Cが入手出来なかったので、1uF〜100mH J級、
(1,10,100uH,1mH,100mH)と1pFから1uF J級の各容量値(1,10,100,1000pF,0.01,0.1,1uF)を測定してその誤差が平均的に+/-3%以内の誤差になるようLref Crefを決定しましたが、
実用十分な精度におさまりました。
実際の使用状態をアップしてみました、1uH〜0.1H、1pF〜10uFまで測定しています。
L/C Meter demo(動画 YOUTUBEへ)
今回、動画編集はYoutube Editを使ってみましたが、使い勝手がまだ理解できておらずうまく見れていますか。