簡易低抵抗測定器

概要

自作の測定器では、電圧(V)、電流(I)、周波数(F)、容量(C)などに関する事例は多いのですが、意外と抵抗 に関する事例は少ないのではないでしょうか。

電圧や電流の値は、測定器で測定しないと分かりませんが、抵抗は、部品自体に明記(カラーコード)されている ので、あまり必要性が無いように思います。

しかし、明記されていない抵抗(例えば、配線に使用するリード線やプリント基板の銅箔などの抵抗)については どうでしょうか?

そこで、今回は、特に低い抵抗(R)を測定する測定器を製作してみました。

<仕様>

レンジ1では、0.2Ω未満の測定を可能とする。(1mΩ単位の測定)

レンジ2では、1.8Ω以下の測定を可能とする。(10mΩ単位の測定)

動作原理

一般的なテスターでは、2線式測定回路が採用されています。 しかし、この2線式測定回路には、次のような問題があります。

測定結果には、未知の抵抗(Rx)と測定器との接続に使用されるリード線(RL)が含まれてしまう。

高抵抗の測定では、RLはほぼ無視されるが、低抵抗では無視できなくなる。

そこでこれらの問題を解決するために、4線式測定回路を採用します。

リード線(RL(A))は、定電流のため無視できる。

リード線(RL(B))は、電圧計の内部抵抗を高く出来るため無視できる。

<抵抗測定回路(2線式と4線式)>

<LM317による定電流回路(125mA)>

<A/D変換の基準電圧> 高精度シャント・レギュレータ(TL431)を使用し、基準電圧は、2.5Vとする。(正確には、2.495V)

<レンジ切り替え> 測定精度向上のため、2段階切り替えとする。

レンジ1(0.2Ω未満の測定)
オペアンプで、101倍の増幅を行うことにより、0.2Ω未満の測定精度向上を図る。
最大値(約2.4V)=0.19Ω×定電流(125mA)×101倍

レンジ2(1.8Ω以下の測定)
オペアンプで、11倍の増幅を行うことにより、1.8Ω以下の測定精度向上を図る。
最大値(約2.5V)=1.8Ω×定電流(125mA)×11倍

回路図

ソースコード

※LM317による定電流回路は、計算上は、125mAですが、実測値は、抵抗値(R110Ω)の誤差も有り、 123mAでした。プログラム上はこの値を採用しています。

//********************************************************************** /* 『低抵抗測定器』 */ //********************************************************************** #define SW1 PORTA.F5 #define SW2 PORTA.F4 #define LED PORTB.F0 //********************************************************************** void main() { static unsigned char buf[20]; static unsigned int cnt; static double ad, offset; // OSCCON = 0b01110000; // クロックは8Mhz CMCON = 0b00000111; // コンパレータは使用しない。 // Ａ／Ｄ変換を使用する。 ANSEL = 0b00000100; ADCON1.VCFG1 = 1; ADCON1.VCFG0 = 0; // ポートを初期化する。 TRISA = 0b11111111; TRISB = 0b00000000; // ＬＣＤを初期化する。 Lcd_Custom_Config(&PORTB,7,6,5,4,&PORTB,3,2,1); Lcd_Custom_Cmd(LCD_CURSOR_OFF); Lcd_Custom_Cmd(LCD_CLEAR); Lcd_Custom_Chr(1, 6, 'm'); Lcd_Custom_Chr(1, 7, 0xF4); Lcd_Custom_Out(2, 6, "uV"); Lcd_Custom_Out(2, 14, "uV"); // offset = 0.0; LED = 0; // while (1) { //電圧の測定 ad = 0.0; for (cnt = 0; cnt < 1000; cnt++) { ad += Adc_Read(2); Delay_us(500); } ad = ad / 1000.0; if (ad > 1020.0) { Lcd_Custom_Out(1, 11, "error!"); Delay_ms(100); Lcd_Custom_Out(1, 11, " "); continue; } //レンジ切替 if (SW2 == 1) { ad = ((ad * 2.44140625) / 101.0) * 1000; } else { ad = ((ad * 2.44140625) / 11.0) * 1000; } //電圧の表示 WordToStr(ad, buf); Lcd_Custom_Out(2, 1, buf); //SW1がONであれば、測定電圧は、オフセット値とする。 if (SW1 == 0) { offset = ad; WordToStr(ad, buf); Lcd_Custom_Out(2, 9, buf); } //抵抗値を計算し表示する。 ad = (ad - offset) / 123.0; //123.0は定電流の値です。 WordToStr(ad, buf); Lcd_Custom_Out(1, 1, buf); // LED = 1; Delay_ms(100); LED = 0; Delay_ms(100); } } //**********************************************************************

動作確認

左側:317です。 右側:LMC662、TL431、PIC16F88、LED、LCDです。

各レンジでは、測定前に、測定端子を短絡し、オフセット値を設定します。 LCDの表示内容は、左上(未知抵抗の値)、左下(未知抵抗の両端電圧)、右下(オフセット電圧)です。

0.1Ω(100mΩ)の測定結果(100mΩ)です。

0.1Ω(100mΩ)の測定結果(102mΩ)です。(リード線の両端から測定)

0.15Ω(150mΩ)の測定結果(148mΩ)です。

0.18Ω(180mΩ)の測定結果(185mΩ)です。

ブレッドボードで使用する接続線の測定結果(40mΩ)です。

手持ちのプラスドライバの測定結果(32mΩ)です。

抵抗のリード線の測定結果(1mΩ)です。

1Ω(1000mΩ)の測定結果(1001mΩ)です。

1.5Ω(1500mΩ)の測定結果(1505mΩ)です。