最大6.5MHzのDIYシンプル周波数計
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
ビデオで紹介されているデバイスは、ArduinoNanoマイクロコントローラーを使用して作成された周波数計です。長方形、正弦波、三角形の信号の周波数を測定できます。
その測定範囲は数ヘルツから6.5メガヘルツです。 0.1、1、10秒の3つの測定時間間隔も利用できます。長方形の信号のみを測定する場合、シェーピングアンプは不要であり、信号はArduinoからデジタルピン5に直接供給されます。
以下からダウンロードできる「FreqCount」ライブラリのおかげで、コードは非常にシンプルです。
デバイスは非常にシンプルで、いくつかのコンポーネントで構成されています:
-ArduinoNanoマイクロコントローラー
-アンプボードの成形
-LCDディスプレイ
-入力信号形状セレクター
-入力ジャック
-および時間間隔スイッチ:0.1-1および10秒の3つの間隔を選択できます。
<図>
ビデオでわかるように、測定器は全範囲で非常に正確であり、以下に説明する簡単な手順で周波数計を校正することもできます。
ArduinoライブラリフォルダでFreqCountライブラリを見つけます。
FreqCount.cppファイルで次の行を見つけます:
#if定義(TIMER_USE_TIMER2)&&F_CPU ==12000000L
floatcorrect =count_output * 0.996155;
次のように置き換えます:
#if定義(TIMER_USE_TIMER2)&&F_CPU ==16000000L
floatcorrect =count_output * 1.000000;
ここで、1.000000は補正係数、
周波数計の入力に1MHzを加えて補正する必要があります。
ファイルを変更した後、新しいスケッチをArduinoボードにアップロードします。
最後に、周波数計は適切なプラスチックの箱に組み込まれており、電子実験室でのもう1つの便利な機器です。
コード
- コード
- FreqCount-マスター
コード C / C ++
#include// https://github.com/PaulStoffregen/FreqCount/archive/master.zip#include LiquidCrystal lcd(12、11、6、4、3、2 ); // RS、E、D4、D5、D6、D7void setup(){lcd.begin(16、2); // LCD 16X2 pinMode(7、INPUT); FreqCount.begin(1000);} unsigned long f; float f0; int x、n =3、r; void loop(){if(digitalRead(7)==HIGH){n ++; x =0; delay(100);} lcd.setCursor(0,1); if(n ==1){x ++; if(x ==1){FreqCount.begin(100);} r =-1; lcd.print( "T =0.1 s");} if(n ==2 ){x ++; if(x ==1){FreqCount.begin(10000);} r =1; lcd.print( "T =10 s");} if(n ==3){x ++; if(x ==1){FreqCount.begin(1000);} r =0; lcd.print( "T =1 s");} if(n> 3){n =1;} lcd.setCursor(0,0); lcd.print( "F ="); if(f> =1000000 &&n ==3){f0 =f / 1000000.0; lcd.print(f0,6 + r); lcd.print( "MHz");} if(f <1000000 &&n ==3 ){f0 =f / 1000.0; lcd.print(f0,3 + r); lcd.print( "kHz");} if(f> =100000 &&n ==1){f0 =f / 100000.0; lcd。 print(f0,6 + r); lcd.print( "MHz");} if(f <100000 &&n ==1){f0 =f / 100.0; lcd.print(f0,3 + r); lcd。 print( "kHz");} if(f> =10000000 &&n ==2){f0 =f / 10000000.0; lcd.print(f0,6 + r); lcd.print( "MHz");} if( f <10000000 &&n ==2){f0 =f / 10000.0; lcd.print(f0,3 + r); lcd.print( "kHz");} if(FreqCount.available()){f =FreqCount。読む(); lcd.setCursor(10,1); lcd.print( "***"); } delay(200); lcd.clear();}
FreqCount-master C / C ++
プレビューなし(ダウンロードのみ)。
回路図
製造プロセス