16×2ディスプレイを使用したArduino周波数計

問題を排除するために楽器を試してください





この記事では、Arduinoを使用してデジタル周波数計を構築します。その測定値は16x2 LCDディスプレイに表示され、測定範囲は35 Hz〜1MHzになります。

前書き

エレクトロニクス愛好家である私たちは、プロジェクトの頻度を測定する必要があるポイントに出くわしたでしょう。



その時点で、オシロスコープが周波数を測定するための非常に便利なツールであることに気づいたでしょう。しかし、オシロスコープは高価なツールであり、すべての愛好家が購入できるわけではなく、初心者にとってはオシロスコープはやり過ぎのツールである可能性があることは誰もが知っています。

周波数測定の問題を克服するために、愛好家は高価なオシロスコープを必要とせず、妥当な精度で周波数を測定できる周波数計が必要です。



この記事では、構築が簡単で初心者にも優しい周波数計を作成します。Arduinoの初心者でも簡単に実行できます。

構造の詳細に入る前に、周波数とは何か、そしてそれをどのように測定できるかを調べてみましょう。

頻度とは何ですか? (初心者向け)

頻度という用語はよく知っていますが、実際にはどういう意味ですか?

さて、周波数は1秒あたりの振動またはサイクルの数として定義されます。この定義はどういう意味ですか?

これは、「何か」の振幅が1秒間に上下する回数を意味します。たとえば、私たちの住居でのAC電源の周波数:「電圧」(「何か」は「電圧」に置き換えられます)の振幅は、1秒間に上下(-)します。これは、ほとんどの国で50倍です。

1サイクルまたは1振動は、上下で構成されます。したがって、1サイクル/振動とは、振幅がゼロから正のピークになり、ゼロに戻り、負のピークになり、ゼロに戻ることです。

「期間」は、頻度を扱うときに使用される用語でもあります。期間は、「1サイクル」を完了するのにかかる時間です。周波数の逆数でもあります。たとえば、50Hzの期間は20ミリ秒です。

1/50 = 0.02秒または20ミリ秒

これで、頻度とそれに関連する用語についてある程度理解できたはずです。

周波数はどのように測定されますか?

1サイクルは高信号と低信号の組み合わせであることがわかっています。高信号と低信号の持続時間を測定するために、arduinoで「pulseIn」を使用します。 pulseIn(pin、HIGH)は高信号の持続時間を測定し、pulseIn(pin、LOW)は低信号の持続時間を測定します。両方のパルス持続時間が追加され、1サイクルの期間が与えられます。

次に、決定された期間が1秒間計算されます。これは、次の式で実行されます。

周波数= 1000000 /マイクロ秒単位の期間

arduinoからの期間はマイクロ秒単位で取得されます。 arduinoは、入力周波数を1秒間サンプリングしませんが、1サイクルの期間を分析するだけで周波数を正確に予測します。

これで、arduinoが周波数を測定および計算する方法がわかりました。

回路:

この回路は、プロジェクトの頭脳であるarduino、16x2 LCDディスプレイ、IC 7404インバーター、およびコントラストを調整するための1つのポテンショメーターで構成されています。 LCDディスプレイ 。

提案されたセットアップは、35Hzから1MHzの範囲を測定できます。

Arduinoディスプレイ接続:

上の図は一目瞭然です。arduinoとディスプレイ間の配線接続は標準であり、他のarduinoおよびLCDベースのプロジェクトでも同様の接続を見つけることができます。

16x2ディスプレイを使用したArduino周波数計

上の図はインバーターIC7404で構成されています。IC7404の役割は、入力からノイズを除去することです。これにより、ノイズがarduinoに伝播して誤った読み取り値が得られることはなく、IC7404は短いスパイク電圧に耐えることができます。 arduinoピン。 IC 7404は、arduinoがアナログ波と比較して簡単に測定できる矩形波のみを出力します。

注:最大ピークツーピーク入力は5Vを超えてはなりません。

プログラム:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int input = A0
const int test = 9
void setup()
{
pinMode(input,INPUT)
pinMode(test, OUTPUT)
lcd.begin(16, 2)
analogWrite(test,127)
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
X=pulseIn(input,HIGH)
Y=pulseIn(input,LOW)
Time = X+Y
frequency=1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
lcd.setCursor(0,1)
lcd.print('0.00 Hz')
}
else
{
lcd.setCursor(0,1)
lcd.print(frequency)
lcd.print(' Hz')
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

周波数計のテスト:

プロジェクトの構築に成功したら、すべてが正常に機能しているかどうかを確認する必要があります。読み取り値を確認するには、既知の周波数を使用する必要があります。これを実現するために、490Hzの周波数を持つarduinoの内蔵PWM機能を使用しています。

プログラムピン#9が50%のデューティサイクルで490Hzを与えるように有効になっている場合、ユーザーは周波数計の入力ワイヤーをつかんで、図に示すようにarduinoのピン#9に挿入できます。LCDディスプレイに490Hzが表示されます。 (ある程度の許容範囲があります)、上記の手順が成功した場合、周波数計は実験に役立つ準備ができています。

著者のプロトタイプ:

Arduino周波数計のプロトタイプ画像

ユーザーは、上の画像に示されている外部周波数発生器を使用して、このArduino周波数計回路のプロトタイプをテストすることもできます。




前:完全なプログラムコードを備えたArduino純粋な正弦波インバータ回路 次へ:Arduinoを使用してシングルチャネルオシロスコープを作成する