ArduinoベースのDC電圧計回路–構造の詳細とテスト

ArduinoベースのDC電圧計回路–構造の詳細とテスト

この投稿では、Arduinoを使用してDC電圧計を構築し、読み取り値が16x2LCDに表示されます。





提案された電圧計の設計は、+ /-0.5ボルトの許容誤差で最大30Vを読み取ることができます。このセットアップがどのように機能するかを確認し、電圧の測定以外に達成できる他の可能性を探ります。

このプロジェクトはかなり単純で、初心者でも簡単に実行できますが、外部電圧を印加するため、回路のプロトタイプを作成する際には注意が必要です。Arduinoへの接続ミスは、ボードに致命的な損傷を与える可能性があります。





警告を脇に置いて、それがどのように機能するかを調べてみましょう。

ここでは、アナログからデジタルへの変換プロセスを使用しています。任意のソースからの電圧はアナログ機能であり、16x2LCDに表示される読み取り値はデジタル機能です。



課題は、これらのアナログ機能をデジタル機能に変換することです。幸い、Arduinoにはアナログ関数を読み取って離散関数に変換する機能があります。

10ビットのアナログ-デジタルコンバーター(ADC)を搭載したArduinoマイクロコントローラー。これは、Arduinoが2 ^ 10 = 1024の個別の電圧レベルを読み取ることができることを意味します。

言い換えると、Arduinoのアナログピンに印加される電圧は、サンプリングされた値がLCDに表示される基準電圧に対して1024の個別の電圧レベルでサンプリングされます。これは、この電圧計またはほとんどすべてのデジタル電圧計の背後にある原理です。

ただし、印加された外部電圧はArduinoによって直接測定されません。分圧器を使用して電圧を降圧し、実際の電圧を読み取るためにプログラムでいくつかの計算を行います。

使い方

この回路は、2つの抵抗器、1つのLCDディスプレイ、およびデジタル電圧計の頭脳であるArduinoで構成されています。 2つの抵抗は分圧器として機能し、分圧器のノードは入力電圧を読み取るArduinoのアナログピン#A0に接続されています。 Arduinoと外部電圧源の間にアース接続が確立されます。

この電圧計で測定できる最小電圧は0.1Vで、このしきい値はプログラムで設定されているため、電圧源を切断した後は0.00ボルトを読み取り、測定プローブ周辺の静電荷による読み取り値は表示されません。

著者のプロトタイプ:

ArduinoベースのDC電圧計のテスト結果

電圧の測定中に極性を逆にしないでください。回路に害を及ぼすことはありませんが、極性を修正するまで、電圧を読み取らず、0.00Vを表示します。ポテンショメータを回転させて、LCDディスプレイのコントラストを最適なレベルに調整します。

Arduinoボードに損傷を与える可能性のある30Vを超えるスパイクが発生する可能性のある電圧源を印加しないでください。技術的には、抵抗値を変更してプログラムを変更することにより、この回路の最大測定電圧を上げることができますが、図示のセットアップでは30Vが制限されています。

正確な読み取りを行うには、最小許容値の固定抵抗を選択します。抵抗は、電圧読み取りの校正に重要な役割を果たします。

回路図:

ArduinoベースのDC電圧計回路

この電圧計の他の可能性は、いくつかのタスクを自動化するためにプログラムを変更できることです。

たとえば、バッテリーの全電圧を検出して充電器からバッテリーを切り離したり、電圧が事前設定された電圧レベルを下回った場合はバッテリーを切り離したりするなど、これらのタスクはLCDディスプレイがなくても実行できます。ただし、これは別の記事の主題です。

プログラム:

//--------Program developed by R.Girish---------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogInput = 0
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
int value = 0
void setup()
{
pinMode(analogInput, INPUT)
lcd.begin(16, 2)
lcd.print('DC VOLTMETER')
Serial.begin(9600)
}
void loop()
{
value = analogRead(analogInput)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin<0.10) {
vin=0.0
}
lcd.setCursor(0, 1)
lcd.print('INPUT V= ')
lcd.print(vin)
delay(500)
}
//--------Program developed by R.Girish---------//

良い電圧計/マルチメーターで測定値を確認してください。




前:Bluetoothカーイグニッションロック回路–キーレスカープロテクション 次へ:ドアが開いた場合に警告するための磁気ドアセキュリティ警報回路