シンプルなArduinoデジタル抵抗計回路

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





この投稿では、Arduinoと16x2LCDディスプレイを使用して簡単なデジタル抵抗計回路を構築します。また、同じ概念を使用して、他の可能な回路のアイデアを検討します。

回路の目的

この記事のモットーは、抵抗計を測定するための抵抗計を作成するだけではありません。



このプロジェクトの主な目的は、arduinoによって読み取られた抵抗値を使用して、サーミスタの抵抗値の変化を簡単に検出できる火災警報器や、土壌の抵抗がある場合は自動灌漑システムなど、いくつかの有用なプロジェクトを実行することです。マイクロコントローラが高くなると、ウォーターポンプをトリガーできます。プロジェクトの可能性はあなたの想像力次第です。

最初に抵抗計を作成する方法を見てから、他の回路のアイデアに移りましょう。



使い方

Arduinoオーム計回路

回路は、お気に入りのArduinoボードを使用できるArduino、未知の抵抗値を表示する16x2 LCDディスプレイ、LCDディスプレイのコントラストレベルを調整するポテンショメータで構成されています。 2つの抵抗が使用されます。1つは既知の抵抗値で、もう1つは未知の抵抗値です。

抵抗はアナログ機能ですが、LCDに表示される値はデジタル機能です。したがって、アナログからデジタルへの変換を行う必要があります。幸い、Arduinoには10ビットのアナログからデジタルへのコンバーターが組み込まれています。

10ビットADCは1024のディスクリート電圧レベルを区別でき、5ボルトが2つの抵抗器に印加され、電圧サンプルが抵抗器の間に取り込まれます。

いくつかの数学的計算を使用して、ノードでの電圧降下と既知の抵抗値を解釈して、未知の抵抗値を見つけることができます。

数式はプログラムで記述されているため、手動で計算する必要はなく、LCDディスプレイから直接値を読み取ることができます。

著者のプロトタイプ:

Arduinoデジタル抵抗計のプロトタイプ

オームメーターのプログラム:

//-------------Program developed by R.Girish--------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known Resistor value in Ohm
float resistor=0
float buffer=0
void setup()
{
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('----OHM METER---')
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
lcd.setCursor(0,1)
lcd.print('R = ')
lcd.print(resistor)
lcd.print(' Ohm')
delay(3000)
}
//-------------Program developed by R.Girish--------//

注:float R = 10000 //オーム単位の既知の抵抗値

回路内の既知の抵抗値を変更できますが、変更する場合は、プログラムでも値を変更してください。

従来のマルチメータと同様に、このArduinoデジタルオームメータ回路にも抵抗を測定するためのいくつかの範囲があります。マルチメータでメガオーム範囲の低い値の抵抗を測定しようとすると、確かにエラー値が得られます。

同様に、この抵抗計にも当てはまります。

1Kから50Kオームまでの抵抗を測定したい場合は、10Kオームの既知の抵抗で十分ですが、メガオーム範囲または数オーム範囲を測定すると、ごみの測定値が得られます。したがって、既知の抵抗の値を適切な範囲に変更する必要があります。

この記事の次のセクションでは、抵抗計のLCD表示回路を調べ、シリアルモニターでセンサー値(未知の抵抗)を読み取る方法を説明します。

また、プログラムにしきい値を記載します。事前に決定されたしきい値を超えると、Arduinoがリレーをトリガーします。

回路図:

プログラムコード:

//-------------Program developed by R.Girish--------//
float th=7800 // Set resistance threshold in Ohms
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known value Resistor in Ohm
float resistor=0
float buffer=0
int op=7
void setup()
{
Serial.begin(9600)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
Serial.print('R = ')
Serial.print(resistor)
Serial.println(' Ohm')
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH)
Serial.println('Output is ON')
delay(3000)
}
else
{
digitalWrite(op,LOW)
Serial.println('Output is OFF')
delay(3000)
}
}
//-------------Program developed by R.Girish--------//

注意:

•floatth = 7800 //抵抗しきい値をオームで設定
7800オームを自分の値に置き換えます。
•floatR = 10000 //既知の値の抵抗(オーム)
10000オームを既知の抵抗値に置き換えます。
•if(th>抵抗)

プログラムのこの行は、センサーの抵抗がしきい値を下回ると、出力がオンになり、その逆も同様であることを示しています。

センサーの読み取り値がしきい値を超えたときにリレーをオンにしたい場合、またはその逆の場合は、「if(thresistor)」を置き換えるだけです。

センサー(LDRやサーミスタなど)の抵抗を直接測定し、しきい値を設定することで、リレー、LED、モーターなどの周辺機器を高い精度で制御できます。

同様の種類のプロジェクトを実行するために、可変抵抗器を盲目的に回して基準電圧を設定し、しきい値を設定するコンパレータよりも優れています。




前:マテリアルストレージレベルコントローラー回路 次へ:10LEDタコメータ回路