このところの大雪で毎日除雪に汗を流しています。どうも年のせいか若干疲れ気味です。
昨年夏に7セグメントLED表示のPIC16F883周波数カウンタを試作しました。記事はこちら。
このカウンタは、LEDをダイナミック点灯させるために、1秒のゲート時間を作る場合と16ビットカウンタのオーバーフロー時に割り込みを利用しています。
割り込みがかち合うことがあるせいか、特定の周波数を測定したときに測定誤差が大きくなりました。
そこで、周波数測定部と表示部を分けて、周波数測定部はPIC16F628Aを表示部には、PIC16F883を使った周波数カウンタを製作しました。
周波数測定部は、以前に製作したPIC16F648A周波数カウンタのプログラムを流用しました。
PIC16F628AとPIC16F648Aの違いは、メモリ、SRAM、EEPROMのサイズの違いで、今回は、PIC16F628Aで十分です。
周波数表示部は、LEDをダイナミック点灯するために、入出力が多いPIC16F883を使いました。
周波数測定部で測定した周波数データは、シリアル通信(19200bps)で周波数表示部に送ります。
PIC16F883は、周波数をダイナミック点灯で表示します。データを受信したとき割り込みが発生し、表示データが更新されます。
今回の周波数カウンタでは、各周波数を問題なく測定できました。電源は5Vで電流は約30mAです。
ケースとしては、タカチのYM-150を考えています。ケースに入れて常用のカウンタにしたいと思います。
次回は、周波数測定部の詳細について説明します。