ちょっとTea Time!? 瞬測抵抗値計を考える!の巻き 2020.8.30

ことのはじまり
 実験などでつかった受動部品(抵抗やコンデンサなど)は、その度に捨てていたのでは勿体ないので回収箱に入れておきます。
本当は、値を確認したうえで部品箱にもどせばいいのですが、どうしても面倒になってしまいます。そして、回収箱がたまってきたら、
やっぱり面倒ですが値を確認しながら部品箱に戻したりします。でも、その作業が本当に面倒になってきて回収箱がどんどん増殖してきます。
 なにが面倒かといえば抵抗値の確認です。コンデンサであれば部品に耐圧や容量が明記してあるので、測定しなくてもいいのですが、
抵抗についてはいちいちテスターで値を測定しなければなりません。そう、なにを隠そうカラーコードが読めないんです。一時期覚えようとしましたが、
すぐに忘れてしまいます(物覚えが悪い?)。テスターでの抵抗値の測定自体は、すこし面倒なくらいなのですが、なにが問題かといえば、
テスターでの測定時間なのです。 このTeaTime!?のきっかけは、テスターによる抵抗値測定が遅いことからはじまりました。


一度使用した部品は、もったいないので捨てずに回収箱で一時保管です。

抵抗値測定の憂鬱
 現在、主につかっているテスターは3台あります。
なぜ3台もあるかといえば、一時期単身赴任していたことがあるので、そのときに実家置き用に買ったので
複数台になっています。それぞれには特徴があります。

@FLUKE83V
 古くからつかっているためか、時々調子が悪くなる。でも、動いているときは性能は良好。
 抵抗値の測定は約1秒でこの中では最速(それでも1秒かかる)。
 電池の消耗が大きく、006Pの電池を頻繁に交換している。

AMETEX M3870D(秋月で購入)
 抵抗値の測定は約2秒と遅い。
 トランジスタのhFEや、インダクタンス、キャパシタンスが測れるのが便利。
 最大の欠点は導通チェックのブザーの鳴りが遅い。1秒遅れて鳴るので、ほとんどつかいものにならない。
 一時期液晶表示が不調になったので、Bを購入。

BSANWA CD732
 Aの更新として購入。性能は普通かな?
 抵抗値の測定時間は約2〜3秒と遅い。いや、遅すぎる!
 使い勝手が悪い点は、しばらくすると勝手にオートOFFになってしまうこと。電圧をのんびり測っていたりすると
 ピーとなって、勝手にシャットダウンしてしまいます。消し忘れ防止にはいいかもしれないけど・・・・・。
 この機能があるということは、どちらかいえばホビーユース向けでしょうか。


主に使っているテスター。左から@FLUKE83V AMETEX M3870D(秋月) BSANWA CD732

いずれにしても、いま持っているテスターでは抵抗値の測定に1秒以上かかってしまいます。
1秒ならいいじゃん!という声も聞こえてきそうですが、実際に1秒というのは結構長い時間で、
次々と測りたいときに1秒待たされるのは、かなりストレスが溜まります。

瞬測の抵抗値測定を検討する

 狙いは、抵抗器にプローブを当てたら即時に抵抗値が表示されるようにすることです。
目標となる仕様は、下記といったところです。
 @測定時間は瞬測(0.1秒以下)
 A抵抗の測定範囲は常用の、およそ100Ω〜1MΩ程度。出来れば下限は10Ω。欲張れば1Ω。
 B測定精度はE24系列がわかればいいので、2〜3%でよい。
 C測定装置は簡単に。5V単一で動作し部品数は最小とする(PICの内蔵ADの12ビットをつかいたい)。


具体的に考えていきましょう。

検討案1)
 基本的には測定にはADコンバータを使うことになります。PICをつかうことを想定して、表示は液晶になります。
で、もっとも簡単に測れそうなのが下図のような構成です。分圧用の抵抗(R_DIVIDOR)をつかって、ターゲット抵抗からの
発生する電圧をAD変換します。この測定が基本にはなるでしょうが、分圧用の抵抗をどの値にするかです。


これがもっとも簡単は方法ですが、高抵抗値と低抵抗値の領域では誤差が大きそうです。


分圧用の抵抗を、測定したい抵抗値範囲100Ω〜1MΩの対数中央の10kΩにすると、測定電圧の
AD変換値は下表のようになります。PICの12BitADの誤差は非直線性誤差として2LSBありますので、
すくなくとも隣り合う抵抗値で4以上、確実に分離しようとすれば8以上のAD値の差がほしいところですが、
案1だと100Ω付近や1MΩ付近はほとんど測れません。ましてや、10Ω付近では測定不可です。

検討案1)の場合。高抵抗値と低抵抗値のあたいは測定は厳しい。


検討案2)
 測定レンジを広げるためにも、分圧電圧をPGA(可変ゲインアンプ)で増幅することを考えます。
マイクロチップからは1〜32倍で可変できるPGAが安くでていますし、手持ちにも1,2個あります。
これをつかって、低抵抗値での電圧をかさ上げすれば測定範囲が広くなるでしょう。


分圧用の抵抗を、検討案1に比べて大きくして33kΩにしてみました。
このときに抵抗値範囲1MΩ付近では、AD値の差は10以上確保できています。
ただし、100Ω付近では十分に測定できそうですが、10Ω付近はかなり厳しそうです。

対策案2)の場合。PGAのゲイン32倍にしても低抵抗値では測定は難しい。


検討案3)
 今度は分圧する抵抗を、測定対象の抵抗にあわせて切り替える案です。こうすれば、かなり広い範囲に
対応できることになります。ただし、電源(PICの出力端子)の都合からあまり電流を流すことはできません。多くとも数mAにしたいので
分圧用の抵抗値は低くても470Ωが下限でしょう。

この場合は、スイッチを何個用意するかですが、スイッチの数をあまり気にしなければ目標の抵抗値の範囲を
測定可能になりそうです。ただし、実際に試算すると10Ω付近だと、分圧抵抗470Ωだとあまり差はでません。
測定はできそうですが、明確に分離できるかはすこし懸念がのこりそうです。でも、これでいいかもしれません。

検討案3)の場合。

AD変換器の入力インピーダンスは?

いままでの試算は、AD変換器の入力インピーダンスを全然考えていませんでしたが、PICの内蔵ADCの
インピーダンスはそれほど高くないことが想定されます。データシートを見ると、明確には入力インピーダンスは
書いてありませんんが、「推奨されるソースのインピーダンス2.5kΩ以下」という記述があります。2.5kΩが入力インピーダンス
というわけではありませんが、PICのADCの性能を出すためには、2.5kΩ以下にソースのインピーダンスはしなさいという
ことなので、想定されるインピーダンスは1MΩ程度かもしれません。そうなると、1MΩの抵抗値をはかる場合には
かなり誤差が心配されます。
 そうなると、PICのADCの前にはアンプを入れたほうがいいことになるでしょう。
ということで、検討案4が登場です。

検討案4)
 検討案3にPGAを追加したものになります。こうすれば、PICに十分に低インピーダンスの電圧信号を供給することができますし、
またPGAの入力インピーダンスも十分高いので、1MΩの抵抗をつないでも気にすることはないでしょう。


この案で分圧抵抗を適当に選んで試算してみると、1Ω付近でも十分な差をもって抵抗値が測定(分類)できそうです。
分圧抵抗器については、下限の470Ωに加えて、切りの良い値の1k、10k、100k、1MΩの合計5種類を用意すればいいでしょう。

検討案4)の場合。分圧抵抗の切替とPGAを入れることで1Ω〜1MΩで十分な測定ができそうです。

回路図を描いてみましょう!

回路図は簡単です。ブレッドボードで試作しなくても、いきなり基板に組みつけてもいいでしょう。


シンプルな回路図です。


組み立ててみましょう

組み立ての基板にはAUDIO PLATE(STD)を使いました。ちょうどDCジャックを取り付けるパターンがあるので便利です。
そのほかは何もつかいませんが・・・・。
部品点数は少ないので、短時間で完成です。

基板が完成しました。

今回も横着してワイヤリングペンをつかいました。少々細いですが、問題ないでしょう。
ちなみに、ワイヤリングペンの巻きコイルも今回で3回目の入れ替えとなりました。最初は1巻きで一生つかえるかと
思っていましたが、結構つかうものです。なんせCPMを作りましたからね。
 それと、新しくデザインカッターをつかってみました。ちょっと、細かいところで銅線を切るのに便利です。

もう欠かすことができなくなったワイヤリングペンです。あと、デザインカッターも結構便利です。

さて、ソフトを組みましょう!

ハードが出来たので、ソフトも組んでいきましょう。とくに難しいところはありませんから、簡単にできるでしょう・・・・しかし・・・

バグ(その1)
 コンパイラに通したら、PIN_A4が未定義と言われます。そういえば、忘れていました。PIC18F25K80は28PinのPICなのですが、
いつもつかうPIC16F1938やPIC18F26K20と違い、PIN_A4(Pin6)の機能が違っているのです。ここはパスコンを接続するための、VCAP
という端子になっています。ということで、配線も少し修正です。

バグ(その2)
 低抵抗を測定したときに10%ほど値が低くなる現象が発生しました。10%もの誤差がでてくると、E24系列での分類を間違えてしまいます。
原因を調べると、分圧抵抗を470Ωに設定したときには結構電流が流れるのでPICの出力ピンの電圧が降下するようです。
実際に測定すると電源電圧が5.03Vに対して、ピンの電圧が4.66Vまで下がっていました。470Ωでは厳しかったようです。
そこで、少し測定精度が悪くなりますが、470Ωを2kΩに変更しました。ピンの電圧は4.88Vまで回復しましたが、まだまだ電源電圧に対して低めです。
そこで、未使用ピンを動員して出力をパラにしてやります。2kΩのドライブ時には合計5本のピンで駆動するようにしました。
そうすることで、出力電圧はほぼ電源電圧に等しくなりました。

回路図も修正
 最終的な回路図は下記のようになりました。ほんの少しだけ修正点を加えています。


これで最終版(かな?)

動かしてみましょう!

抵抗を測定する端子については、とりあえずリード線をY型にまげて、抵抗器を受けるようにしてみました。
本当は、クリップみたいなものがいいのですが、まずはソフトの検証のための仮組みです。


抵抗器を置くためのY型のポストを設けました。

ソフトとしては、電圧から計算した抵抗値(R)と、その値に対してもっとも近いE24系列の抵抗値(E24)を同時に
表示するようにしています。
 ちょっと計算した抵抗値が低めにでるようです(約1〜2%低い)。E24系列への分類には支障はない誤差なのですが、
ちょっと気になります。おそらくアンプのオフセットと、まだすこし端子電圧の低下が生じているのかもしれません。
こそっと、2%程度ほど下駄を履かせてやろうかな(笑。でも、その前に、誤差の原因をちゃんと突き止める必要がありますが、
もうこれで完成版にしたいので、たぶんやらないだろうな・・・・。

あと、抵抗は端子上に置いただけで測定できる場合もありますが、軽くでもいいので押さえないと測定値が安定しないようです。
そりゃ、接触抵抗がかなりありそうですからね。やっぱりクリップみたいなものが必要だなあ〜。

上に、電圧から計算した抵抗値、下にE24系列の分類値を表示するようにしています。


測定時は軽く抵抗を押さえる必要があります。でないと、接触抵抗がかなり影響するようです。

とりあえずは完成?

まだまだ表示関連の改善の余地があるかもしれませんが、まずは基本機能としては完成です。
抵抗器を端子に当てるだけで、瞬時に抵抗値がわかるので、便利に使えそうです。

ただし、ACアダプタで動作するようにしているので、電池駆動でもできるようにすべきだったかもです。
その場合は、バックライト不要のLCDに変更すべきかもしれません。まあ、使ってみて、おいおい改造して
みましょう。

まだ、バグあるかも知れませんがバイナリーはここにおいておきます。

さっそく実戦に! 2020.9.1

さっそく抵抗の回収箱から抵抗を取り出して、測定して分類です。
うん、やはり瞬時に抵抗値が測れるのでかなり作業がスピーディです。

こんな感じで抵抗値を測定して紙に貼り付けました。こんなのが2枚できました。


肝心の誤差は?
念のため、肝心の誤差も評価しておきました。
分圧抵抗をもともとの470Ωから2000Ωに変更したこともあり、低抵抗の領域での誤差が大きくなってしまっていますが、
分類ミスをしたのは1Ωの抵抗だけでした。1Ωの抵抗を0.91Ωと識別しています。
1Ωの抵抗だと実測値に対する誤差が21%もありますが、1Ωの実測値(1.2Ω)自体がいい加減です。1Ωの値だと
公称値からの誤差のほうがいいでしょうが、それでも6%の誤差があります。実際に内部情報を確認すると
AD値が62と小さいです。12Bit分解能(4096)で62ですから、電圧にすると76mVです。PGAは一応レールtoレールを謳っていますが、
誤差を含む領域かもしれません。一度、PGAの入出力特性も測っておく必要がありそうです。

今回のテストで1Ωでミスりましたが、まあ、1Ω台の抵抗で持っているのは1Ωと4.7Ωしかないので、全く問題蟻ありませんが・・・。
1Ω台でE24系列なんて、そもそも売っているのかしら?(そういえばセメント抵抗があるけと、大体値が書いてあるな〜)。



PICの出力Z(インピーダンス)は?
 今回の検討で、ちょっとミスったのはPICの出力端子の電圧が、電流が大きくなると低下する点です。考えてみれば当たり前ですが、
うっかり見落としていました。まあ、これを機会にPICの出力端子のインピーダンス(Z)を測定しておきましょう。今後、何かの役にたつかもしれません。
使用したPICはPIC18F46K22です。今回瞬測抵抗値計で用いたPIC18F25K80とは型番が違いますが、同じようなものでしょう。


測定時の構成です。


測定結果です。使用PICはPIC18F46K22です。

結果としては、PICの出力端子のHiGH時のインピーダンスは約73Ω、LOW時は23Ωといったところです。
分圧抵抗を10kΩと高めにした場合でも、出力電圧は電源電圧に対して0.7%低下します。これは、見逃せない低下ですね。
計算アルゴリズムに加えたら精度アップするでしょう。また、分圧抵抗2000Ωの場合、出力を5本パラにしていますが、それでも
出力電圧は0.6%は低下することになります。これも、加える必要がありそうです。
 流石に分圧抵抗100kΩ以上だと0.1%以下しか影響ありませんから入れなくてもいいでしょう。あ、でも計算するのは
CPUだけだから入れておいてもいいか。

プチ改造
 PICの出力インピーダンスを考慮したソフトに修正です。それにあわせて、回路も最小の分圧抵抗を470Ωに戻しました。
こうすることで低抵抗値領域の測定精度もあがるでしょう。また、5パラでの出力もやめて通常の単一出力に変更です。
気分的にディジタルでの出力端子をパラにするのは、気が進みません。といいいつつ、DACなんかは一杯パラにしていますが(笑。


回路図をもとに戻しました。ほんとの最終版?

これで1Ωの抵抗の分類も合うようになりました。ちなみに0.22Ωの抵抗でも試してみましたが、
うまく測定できるようです。でも、このあたりになったら接触抵抗も込みなので、何をはかっているか
わからないかもしれません。
 それに、このあたりの低い抵抗器はワット数も大きいので抵抗値が書いてありますから
測定する必要はないんですよね。


1Ωの抵抗も分類が合致するようになりました。


0.22Ωの抵抗も測れるようですが、接触抵抗もあるしどうだろう?

さて、これでいよいよTeaTime!?をおしまいにしましょう!
もうバグ残っていないと思うけど・・・・一応バイナリーを置いておきましょう。ここです。

ちょっとTeaTime!?といいながら長くなってしまいました。

(おしまい)