このプロジェクトでは、Arduinoを使用してAC電圧測定装置を作成します。これは、自宅の交流電源の電圧を測定します。その電圧をArduinoIDEのシリアルモニターに印刷し、マルチメーターに表示します。
デジタル電圧計の作成は、アナログ電圧計の作成よりもはるかに簡単です。アナログ電圧計の場合、トルク、摩擦損失などの物理パラメータに関する十分な知識が必要ですが、デジタル電圧計の場合は、LCDまたはLEDマトリックスを使用するだけです。あなたのラップトップ(この場合のように)でさえあなたのために電圧値を印刷します。ここにいくつかのデジタル電圧計プロジェクトがあります:
- ICL7107を使用したPCBを備えたシンプルなデジタル電圧計回路
- LM3914電圧計回路
- AVRマイクロコントローラーを使用した0-25Vデジタル電圧計
必要なコンポーネント:
- 1つの12-0-12変圧器
- 1N4007ダイオード
- 1ufコンデンサ
- 抵抗器10k; 4.7k。
- ツェナーダイオード(5v)
- Arduino UNO
- 接続線
Arduino電圧計の回路図:
このArduino電圧計の回路図を上に示します。
接続:
- 変圧器の高電圧側(220V)を主電源に接続し、低電圧(12v)を分圧回路に接続します。
- 10k抵抗を4.7k抵抗と直列に接続しますが、4.7k抵抗の両端の入力として電圧を使用するようにしてください。
- 図のようにダイオードを接続します。
- コンデンサとツェナーダイオードを4.7kの両端に接続します
- ダイオードのn端子からArduinoのアナログピンA0にワイヤを接続します。
** 注: 図に示すように、Arduinoのアースピンをポイントに接続してください。接続しないと回路が機能しません。
分圧回路が必要ですか?
220/12 v変圧器を使用しているので、lv側で12vを取得します。この電圧はArduinoの入力としては適していないため、Arduinoへの入力として適切な電圧値を与えることができる分圧回路が必要です。
。
なぜダイオードとコンデンサが接続されているのですか?
Arduinoは負の電圧値を入力として受け取らないため、最初に降圧ACの負のサイクルを削除して、正の電圧値のみがArduinoによって取得されるようにする必要があります。したがって、ダイオードが接続されて降圧電圧を整流します。整流の詳細については、半波整流器と全波整流器の回路を確認してください。
この整流された電圧は、正確なアナログ値を与えることができない大きなリップルを含んでいるため、滑らかではありません。したがって、コンデンサはAC信号を滑らかにするために接続されます。
ツェナーダイオードの目的は?
Arduinoに5vを超える電圧が供給されると、Arduinoが損傷する可能性があります。したがって、この電圧が5vを超えた場合に故障するArduinoの安全性を確保するために、5vツェナーダイオードが接続されています。
ArduinoベースのAC電圧計の動作:
1.降圧電圧は、通常の電力定格抵抗の両端で使用するのに適した変圧器のlv側で得られます。
2.次に、4.7k抵抗の両端に適切な電圧値を取得します
測定できる最大電圧は、この回路をプロテウスでシミュレートすることによって求められます(シミュレーションのセクションで説明されています)。
3. Arduinoは、この電圧をピンA0からの入力として0〜1023のアナログ値の形式で受け取ります。0は0ボルト、1023は5Vです。
4.次に、Arduinoは、このアナログ値を式によって対応する主電源AC電圧に変換します。(コードセクションで説明されています)。
シミュレーション:
正確な回路はプロテウスで作成され、シミュレーションされます。この回路がヒットを測定できる最大電圧を見つけるために、試行方法が使用されます。
オルタネーターのピーク電圧を440(311 rms)にすると、ピンA0の電圧は5ボルト(最大)であることがわかりました。したがって、この回路は最大311rmsの電圧を測定できます。
シミュレーションは、220 rms〜440vのさまざまな電圧に対して実行されます。
コードの説明:
完全なArduinoVoltmeterコードは、このプロジェクトの最後に記載されており、コメントを通じて十分に説明されています。ここでは、その一部について説明します。
mは、ピンA0で受信した入力アナログ値です。
m = pinMode(A0、INPUT); //ピンa0を入力ピンとして設定します
割り当て変数にNこの式 N =(M * 。 304177)、 計算の最初のいくつかの並べ替えは、シミュレーション部で得られたデータを用いて行われます。
シミュレーション写真に見られるように、入力AC電圧が311ボルトの場合、ピンA0で5vまたは1023のアナログ値が得られます。したがって:
したがって、ランダムなアナログ値は(311/1023)* mに対応します。ここで、mはアナログ値です。
したがって、次の式に到達します。
n =(311/1023)* mボルトまたはn =(m *.304177)
これで、この電圧値は、以下で説明するシリアルコマンドを使用してシリアルモニターに出力されます。また、以下のビデオに示されているように、マルチメータにも表示されます。
画面に出力される値は次のとおりです。
コードで指定されているアナログ入力値:
Serial.print( "アナログ入力"); //これは、出力されたアナログ値に「アナログ入力」である名前を与えますSerial.print(m); //これは単に入力アナログ値を出力します
コードで指定されている必要なAC電圧:
Serial.print( "AC電圧"); //これにより、印刷されたアナログ値に「ac電圧」という名前が付けられますSerial.print(n); //これは単にAC電圧値を出力します