<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>電子工作 | ブログやま帽子</title>
	<atom:link href="https://yamabohshi.net/Blog/category/%e9%9b%bb%e5%ad%90%e5%b7%a5%e4%bd%9c/feed/" rel="self" type="application/rss+xml" />
	<link>https://yamabohshi.net/Blog</link>
	<description></description>
	<lastBuildDate>Tue, 12 Aug 2025 08:38:35 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>ＬＣメーター</title>
		<link>https://yamabohshi.net/Blog/lcmeter/</link>
		
		<dc:creator><![CDATA[yamabohshi]]></dc:creator>
		<pubDate>Sat, 30 May 2020 15:00:02 +0000</pubDate>
				<category><![CDATA[電子工作]]></category>
		<guid isPermaLink="false">https://yamabohshi.net/Blog/?p=956</guid>

					<description><![CDATA[LCメーターを作りました。PICを使ったデジタルLCメーターです。 電源はDC5V、消費電流 測定時17mA、キャリブレーション時 27ｍA。 コンデンサーの測定範囲は　1pF～2µF、最小分解能 0.001pF、精度± [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>LCメーターを作りました。PICを使ったデジタルLCメーターです。<br />
<img fetchpriority="high" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter.jpg" alt="" width="825" height="549" /></p>
<p>電源はDC5V、消費電流 測定時17mA、キャリブレーション時 27ｍA。<br />
コンデンサーの測定範囲は　1pF～2µF、最小分解能 0.001pF、精度±2%。<br />
コイルの測定範囲は　0.1µH～100mH、最小分解能 0.001µH、精度±2% です。</p>
<p>メインの構成部品には周波数カウンタ―とLC計算にPIC16F1827を、LC発振回路にコンパレータLM-311P、表示にI2CLCDを使用し、プログラムはMPASMで作成しました。</p>
<p>回路図です。自作ＬＣメーターで良く採用される回路ですが、コンパレータLM-311Pの負荷抵抗が330Ωと一般的に使われる1kΩよりかなり小さくなっています。ブレッドボードでの事前テストで、測定コンデンサーの容量が大きくなり発振周波数が低くなるとコンパレータ出力波形の立下りが振動するような傾向がみられ、周波数カウンタ―の読取り値が安定せず1µFを安定して測定出来ませんでした。色々試した結果、コンパレータの負荷抵抗を小さくすると立下りの振動を抑制出来、2.2µFを安定して測定できるようになりました。<br />
<img decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter-1.jpg" alt="" width="825" height="549" /><br />
コンパレータ＋入力と発振用LC、コンパレータ－入力とグランド間に入る10μFのコンデンサーにはタンタルや電解が使われますが、今回は積層セラミックコンデンサーを使って設置スペースを小さくしました。積層セラミックコンデンサーはDC電圧に依り容量が小さくなる特性があります。今回の場合、約1.7Vの電圧が掛かりMurataのデータでは容量は約60％に低下しますが、影響は無いようです。</p>
<p>PIC16F1827を使用した周波数カウンタ―は単独で100MHｚを超える周波数を測定できます。8ビットタイマーTMR2で測定時間１秒を作り、周波数のカウントに16ビットタイマーTMR1を使っています。測定開始命令でTMR2が１秒カウントを開始し、またTMR1が周波数カウントを開始します。１秒経過するとTMR2から停止命令出てTMR1がカウントを停止します。TMR1は16ビットなので約65kHz以上の周波数ではオーバーフローが発生し、同時にカウントが０にリセットされます。TMR1のオーバーフロー回数を2バイト(16ビット)の変数に保存することで、合計32ビット分 約4GHz がカウント可能になりますが、実際にはタイマー1のゲートT1CKIにそこまでの能力はありません。どこまでカウント可能なのかあれこれトライしながら調べている途中ですが、凡そ160MHz位ではないでしょうか。</p>
<p>LCメーターの測定原理はウェブで調べると多くの方が式を交えて詳しく説明されているのでこのブログでは取り上げませんが、発振回路に使用するキャリブレーション用コンデンサーの容量精度が概ねLCメーターの測定精度となります。他に測定精度に影響する要因は、計算式から実際の発振周波数がズレることや発振周波数が安定しないことなどがあります。Ｃ測定では測定周波数の比率を使用するのでXtalの発振周波数(測定時間)が安定であれば測定精度への影響は有りません。一方、L測定では算出式に周波数の絶対値が入るので、Xtalの仕様発振周波数と実際の発振周波数のズレが測定精度を悪化させます。</p>
<p>今回のLCメーターではキャリブレーション用コンデンサーとしてルビコンのポリフェニレンスルフィドフィルムコンデンサー 1000pF ±2%、を使っていますので、測定精度は ±2%となります。Xtalは秋月電子から購入した12.8MHzで、発振周波数許容値2.5ppm、周波数変化3.0ppmと通常のXtalの1/10の素晴らしいスペックですが、測定器が無いので実力は確認出来ていません。<br />
発振周波数が変動する要因は使用部品のコンデンサーやコイルの温度変化による容量、インダクタンスの変化、浮遊容量や浮遊インダクタンスの変化などがあります。ポリフェニレンスルフィドフィルムコンデンサーの温度係数は負で温度が上がると容量が少なくなり -100ppm/℃位、コイルはアミドンのトロイダルコアT-68-2に0.4mmφのウレタン線をぎっしり1層手巻きした43µHのもので、コアの温度係数は190ppm/℃位です。発振周波数の変動は最小測定範囲で測定値のふらつきとして顕著に現れます。最小分解能１桁目は不安定ですが、2桁目(0.01pF, 0.01µH)はまあまあ安定して読み取る事ができます。</p>
<p><a rel="nofollow" target="_self" href="/Blog/wp-content/uploads/2020/05/PartsList.jpg" alt="" width="825" height="549" />ここ</a>をクリックすると部品リストを表示できます。今回のＬＣメーターは2,000円弱で作れました。</p>
<p><img src=/Blog/wp-content/uploads/2020/05/LCmeter1-1.jpg alt="" align="left" hspace="15" width="412" height="274" />LCメーターは 47ｘ72mmのユニバーサル基板に組上げ、一番上の液晶は取り外し可能で（取り外してあります）、その下にPIC、Xtal、Trなどを配置しました。<br />
中央左の細長い黒色の部品はリードリレーで、右隣にキャリブレーション用と参照用コンデンサー、中央がコンパレータです。左下に参照用トロイダルコイル、LC測定切替用トグルスイッチ、赤と黄色タクトスイッチは各々キャリブレーション用と表示メニュー切替用です。右側中央の赤色LEDはRUN表示用、青色LEDは測定中に点灯します。<br />
一番下の緑色の部品はノンプレッシャーソケットで、ここにコンデンサーやコイルを挟んで容量やインダクタンスを測定します。始めはワニ口クリップで測定物を咥える方法でしたが、ワニ口クリップの置き方、部品の咥え方で測定値がコロコロと変わり安定しませんでした。どうも測定端の浮遊容量が悪さをしているようです。そこで測定物を固定出来る様にノンプレッシャーソケットを追加しところ測定値が安定するようになりました。</p>
<p>PIC16F1827のソフトはmpasmで作成しました。Cコンパイラーを使ったソフトを眺めるとなんとも簡単に出来ています。何を今更アセンプラーでやるんでしょうか。でも毎日が日曜日の私にはもってこいです。<br />
LCを求める計算では発振周波数の掛け算や割り算を使います。32ビット浮動小数の乗算、除算や2進数を2進化10進数へ変換する参考プログラム等をウェブを検索して調べて作成しました。とこらが、2進整数を10進整数(bcd)に変換するプログラムは沢山あるのですが、2進少数を10進少数に変換するアセンブラプログラムは色々探したのですが見つかりません。この変換プログラムが必要な人は大勢いるはずだし、cコンパイラーではいとも簡単に皆さん小数計算しています。cコンパイラーの大元はアセンブラーなので、きっと何処かにあるはずなのですが。</p>
<p> 仕方ないので自分でコーディングしました。2進数を右に1ビットシフトするとその値は1/2になります。2進数の右側に8ビットのゼロクリアした10進変換用の変数を繋げます。この変数は上位4ビット、下位4ビットで各々10を表現するようにします。さて、繋げた全体を右に1ビットシフトすると、2進数の最下位ビットの1は繋げた10進変換用変数の最上位ビットに移動します。変数の上位4ビットが表す10進数の値は8になります。ここは1/2にしたのだから5にしなければならないので、3を引かなくてはなりません。10進変換用変数も4ビット毎に区切り、右シフトで最上位が現れたら3を引きます。これで10進変換用変数の値も正確に1/2になるはずです。右シフトを繰り返して2進数の桁数が0になれば変換が完了です。10進変換用変数は1バイトで2桁変換出来るので必要な桁数分用意します。小数点以下4桁なら2バイト、6桁なら3バイトを用意します。結果には桁数打ち切りによる変換誤差が含まれ、大きさは多分最大で　1/2の(10進数の桁数)乗)ではないかと思います？？</p>
<p><a rel="nofollow" target="_self" href="/Blog/wp-content/uploads/2020/10/LCmeterV0-r1.txt">ここ</a>をクリックするとプログラムファイルを表示出来ます。ワードプレスのセキュリティの関係でファイルの拡張子が.txtになっています。MPLAB XIDEで使用される時は拡張子を.asmに変更して下さい。プログラムではpic16f1xxxx用の拡張asmを使っています。又、bank2の変数をbank切替なしで使用したかったので間接アドレスを多用しています。それなりにコメントが入っていますので何をしているのかそれなりにお分かり戴けると思います。何回も書き直しているので、コメントが修正されていない箇所が散見されますが、ご容赦お願いします。</p>
<p>LCメーターメーターで測定している様子の写真を何枚かアップします。下の写真はC測定時のもので左から小容量、中容量、大容量の順です。<br />
<img loading="lazy" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter-C01.jpg" alt="" width="825" height="549" /><br />
2pF±0.25pFのセラミックコンデンサー　　　　　　　　　　　　測定値は2.184pF<br />
1000pfF2%のポリフェニレンスルフィドフィルムコンデンサー　測定値は1005.8pf<br />
2.2µF±5%のメタライズドポリプロピレンフィルムコンデンサー　測定値は2.233μf<br />
どれも許容値内で、2番目のポリフェニレンスルフィドフィルムコンデンサー　はキャリブレーション用に使用したコンデンサーと同時に購入したものです。</p>
<p> 続いてL測定時のもので左から小容量、中容量、大容量の順です。<br />
<img loading="lazy" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter-L04.jpg" alt="" width="825" height="549" /><br />
 手巻きのトロイダルコイル　　　　　　　　　　　　　測定値は0.064μH<br />
100μH±10%のラジアルインダクター　　　　　　　　測定値は101.3μH<br />
100mH±5%のラジアルインダクター　　　　　　　　測定値は101.7mH<br />
一番目は手巻きで値不明のものを測定。2番目、3番目は購入したものですが誤差2%以内で優秀です。</p>
<p> 実際に使ってみるとC測定では手を近づけたり、置き場所を変えただけで指示が変化します。かなり敏感な測定器なので、温度特性の良いコンデンサーでは測定値が安定していますが、温度特性が悪いコンデンサーでは測定値がみるみる変わっていきます。L測定では測定端が接地状態になるので小さなインダクターでもかなり安定して測定できます。総じて自作測定器としては優秀な部類にはいるのではないでしょうか。</p>
<p>おまけの写真です。<br />
<img loading="lazy" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter2-2uFr.jpg" alt="" width="210" height="280" /><img loading="lazy" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeter10pFr.jpg"  hspace="15" alt="" width="210" height="280" /><img loading="lazy" decoding="async" src="/Blog/wp-content/uploads/2020/05/LCmeterL01r.jpg" alt="" width="210" height="280" /></p>
<p>履歴1. 2020年10月5日　プログラム修正。LCDのコントラスト変更サブルーチンの間違いを修正。<br />
履歴2. 2022年7月18日　サーバー故障でブログの復旧を実施。ＬＣメーターを再構築しました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
