すべての組み込み愛好家は、電圧、電流、抵抗などを測定するための優れたツールであるマルチメータに精通しています。マルチメータはそれらを簡単に測定できます。しかし、通常のマルチメータでは不可能なインダクタンスと静電容量を測定する必要がある場合があります。インダクタンスと静電容量を測定できる特別なマルチメータがいくつかありますが、それらは高価です。Arduinoを使用して、周波数計、静電容量計、抵抗計をすでに構築しています。そこで本日は、Arduinoを使用してインダクタンスLCメータを作成します。このプロジェクトでは、インダクタンスと静電容量の値を、16x2LCDディスプレイの周波数とともに表示します。静電容量とインダクタンスの表示を切り替えるために、回路に押しボタンがあります。
必要なコンポーネント
- Arduino Uno
- 741オペアンプIC
- 3Vバッテリー
- 100オームの抵抗器
- コンデンサ
- インダクタ
- 1n4007ダイオード
- 10k抵抗
- 10kポット
- 電源
- ボタンを押す
- ブレッドボードまたはPCB
- 接続線
周波数とインダクタンスの計算
このプロジェクトでは、LC回路を並列に使用してインダクタンスと静電容量を測定します。この回路は、特定の周波数で共振を開始するリングやベルのようなものです。パルスを印加するたびに、このLC回路が共振を開始し、この共振周波数はアナログ(正弦波)の形式であるため、スクワイア波に変換する必要があります。これを行うには、このアナログ共振周波数をオペアンプ(この場合は741)に適用し、デューティサイクルの50%でスクワイア波(周波数)に変換します。ここで、Arduinoを使用して周波数を測定し、数学的な計算を使用して、インダクタンスまたは静電容量を見つけることができます。与えられたLC回路の周波数応答式を使用しました。
f = 1 /(2 *時間)
ここで、時間は pulseIn() 関数の出力です。
これでLC回路の周波数がわかりました。
f = 1/2 * Pi *(LC)の平方根
それを解いてインダクタンスを得ることができます:
f 2 = 1 /(4Pi 2 LC) L = 1 /(4Pi 2 f 2 C) L = 1 /(4 * Pi * Pi * f * f * C)
すでに述べたように、私たちの波は正弦波であるため、正と負の両方の振幅で同じ周期を持ちます。これは、コンパレータが50%のデューティサイクルを持つ方形波に変換することを意味します。Arduinoの pulseIn() 関数を使って測定できるように。この関数は、期間を反転することによって周波数に簡単に変換できる期間を提供します。以下のよう pulseInの 正しい周波数を取得するので、今だけ1つのパルス機能の指標、我々は2です。今、私たちは、上記の式を使用することによりインダクタンスに変換することができ、周波数を持っていることによってそれを乗算する必要があります。
注: インダクタンス(L1)を測定する場合、コンデンサ(C1)の値は0.1uFである必要があり、静電容量(C1)を測定する場合、インダクタ(L1)の値は10mHである必要があります。
回路図と説明
このLCメータの回路図では、Arduinoを使用してプロジェクトの動作を制御しています。ここでは、LC回路を使用しました。このLC回路はインダクタとコンデンサで構成されています。正弦波共振周波数をデジタル波または方形波に変換するために、オペアンプ、つまり741を使用しました。ここでは、正確な出力周波数を得るために、オペアンプに負の電源を供給する必要があります。したがって、逆極性で接続された3vバッテリーを使用しました。つまり、741のマイナスピンがバッテリーのマイナス端子に接続され、バッテリーのプラスのピンが残りの回路のアースに接続されます。詳細については、以下の回路図を参照してください。
ここには、インダクタンスと静電容量のどちらを測定しているかに関係なく、動作モードを変更するための押しボタンがあります。16x2 LCDは、LC回路の周波数でインダクタンスまたは静電容量を表示するために使用されます。LCDの明るさを制御するために10kポットが使用されます。回路はArduino5v電源の助けを借りて電力を供給され、USBまたは12vアダプターを使用して5vでArduinoに電力を供給することができます。
プログラミングの説明
このLCメータプロジェクトのプログラミング部分は非常に簡単です。完全なArduinoコードはこの記事の最後にあります。
まず、LCD用のライブラリを含め、いくつかのピンとマクロを宣言する必要があります。
#include
その後、 セットアップ 機能でLCDとシリアル通信を初期化し、LCDとシリアルモニターに測定値を表示します。
void setup() { #ifdef serial Serial.begin(9600); #endif lcd.begin(16、2); pinMode(freqIn、INPUT); pinMode(charge、OUTPUT); pinMode(mode、INPUT_PULLUP); lcd.print( "LCメータ使用"); lcd.setCursor(0、1); lcd.print( "Arduino"); delay(2000); lcd.clear(); lcd.print( "Circuit Digest"); delay(2000); }
次に、 ループ 機能で、LC回路を充電するLC回路に一定期間のパルスを適用します。パルスを取り除いた後、LC回路は共振を開始します。次に、 pulseIn() 関数を使用してオペアンプからの方形波変換を読み取り、2を掛けて変換します。ここでもいくつかのサンプルを取得しました。それが頻度の計算方法です:
void loop() { for(int i = 0; i
周波数値を取得した後、与えられたコードを使用してそれらをインダクタンスに変換しました
静電容量= 0.1E-6; インダクタンス=(1。/(静電容量*周波数*周波数* 4. * 3.14159 * 3.14159))* 1.E6; #ifdef serial Serial.print( "Ind:"); if(インダクタンス> = 1000) { Serial.print(インダクタンス/ 1000); Serial.println( "mH"); } else { Serial.print(インダクタンス); Serial.println( "uH"); } #endif lcd.setCursor(0、1); lcd.print( "Ind:"); if(インダクタンス> = 1000) { lcd.print(インダクタンス/ 1000); lcd.print( "mH"); } else { lcd.print(インダクタンス); lcd.print( "uH"); } }
そして、与えられたコードを使用して、静電容量を計算しました。
if(Bit.flag) { インダクタンス= 1.E-3; 静電容量=((1。/(インダクタンス*周波数*周波数* 4. * 3.14159 * 3.14159))* 1.E9); if((int)capacitance <0) capacity = 0; #ifdef serial Serial.print( "Capacitance:"); Serial.print(静電容量、6); Serial.println( "uF"); #endif lcd.setCursor(0、1); lcd.print( "キャップ:"); if(容量> 47) { lcd.print((容量/ 1000)); lcd.print( "uF"); } else { lcd.print(capacitance); lcd.print( "nF"); } }
これが、Arduinoを使用して周波数、静電容量、インダクタンスを計算し、16x2LCDに表示する方法です。