PIC周波数カウンター
はじめに
PIC を使った周波数カウンターをご紹介します。部品点数が少なく、無調整ですので製作が容易です。
仕様
測定周波数範囲 | 32Hz - 500KHz |
サンプリング時間 | 16Sec - 0.98mSec |
入力電圧 | 50mVpp - 5Vpp |
表示方式 | LCD直読式 |
消費電流 | 6.7mA at 3V |
動作原理
- 一般的な周波数測定は一定のサンプリング時間に通過する波をカウントすることで測定しますが、
今回は逆に一定の波が通過する時間を測定することで周波数を測定します。
- そのため、周波数が低いとサンプリング時間が長くなり、周波数が高いとサンプリング時間が短くなります。
- 原理的には DC(0Hz)まで測定できますが、サンプル時間が無限大となるので、
仕様上は許容される待ち時間を16秒とし、32Hzとしました。
- これ以下の周波数が測定できないというわけではありません。
- 測定周波数の上限は PIC のカウント性能である 500KHzが上限となります。実際には2MHzまで測定できています。
回路図
- 入力段にTrを使って、高インピーダンスと100倍くらいの利得を稼いています。
- PIC への過電圧保護の目的もあります。
- 入力電圧が高過ぎると(0.5V以上)出力が大きくクリップして測定精度に多少影響します。
- 逆に入力電圧が低過ぎるとカウントされません。
- PIC の RA4 はシミットトリガ入力ですので、無信号時の電圧は電源電圧のほぼ中間値になるように設定しました。
- こうすることが正確な周波数測定にもつながります。
- 通常のCMOS入力ではラッチアップの危険があるのでこのようなことはできません。
- PIC は PIC16F84 を使用してください。レジスタ数の関係でPIC16C84 は使えません。
- 水晶発振子も 10MHz を使用してください。この水晶発振子を基準にして周波数の計算をしています。
- LCD表示モジュール(1行16桁)は以前購入していたジャンク品を使用しました。
- LCDドライバには日立のHD44780(LCD-II)が使用されています。
- 出回っているLCDモジュールにはほとんどこのLSIが使用されているので、入手は容易でしょう。
部品表
値 | 数 | 備考 |
PIC16F84 | 1 | U1 マイクロチップ |
ジャンク | 1 | LCD1 16x1行表示 |
2SK241 | 1 | Q1 FET |
2SC945 | 1 | Q2 NPNトランジスタ |
10K | 1 | R1 カーボン皮膜抵抗1/4W |
1M | 2 | R2,R4 カーボン皮膜抵抗1/4W |
300 | 1 | R3 カーボン皮膜抵抗1/4W |
4.3K | 1 | R5 カーボン皮膜抵抗1/4W |
20pF | 2 | C2,C4 セラミックコンデンサ |
0.01uF | 2 | C1,C3 セラミックコンデンサ |
0.01uF | 2 | C5,C6 積層セラミックコンデンサ |
1S1588 | 2 | D1,D2 ダイオード |
10MHz | 1 | X1 水晶発振子 |
基板例
ファームウェア解説
ダウンロード(Counter.hex)
- メインルーチンでは常にカウントしておきます。これが測定値の元になります。
- RA4 からの入力が512個カウントされると割り込みが発生しますので
メインルーチンでのカウント値を使って周波数を計算し表示させます。
- 表示が終わるとメインルーチンのカウント値をゼロにクリアし、割り込み処理を終了します。
- 計算を容易にするため、32ビット整数の四則演算ルーチンを作りました。
- 今後いろいろと応用できるでしょう。
使用感
- 電池駆動ですので持ち運びが簡単で非常に便利です。
- 消費電力も低く連続で100時間は使用できるでしょう。
- 38KHz の水晶発振器を測定してみたところ、ほぼその値を示していました。
- 有効精度は3桁から4桁くらいといったところです。それ以降の桁はさまざまな原因で刻々と変化してしまいます。
- 信号発生器の関係で実際の上限値を測定できていませんが、2MHz までは測定できることを確認しています。
- 入力段にTrを使用したので、インピーダンスをあまり高くできず、被測定
電圧に影響を与えてしまうことがあります。そこでFETを使用して改善しました。
- また周波数の上限を伸ばしたければプリスケーラを追加するのが簡単です。
- 入力する波形、電圧によって多少ですが測定値が変ってしまいます。
- 入力段を凝ったものにすれば押さえられるでしょう。
さいごに
周波数カウンターが手元にあった部品でできてしまいました。
周波数カウンターはさまざまな機器の調整などに必要ですが、
前段にいろいろなものを追加することで、応用範囲が広がります。
たとえば、電圧や電流なども測定できるでしょう。
(C)1997-2002 All rights reserved by Einstien.