Basit Arduino Dijital Ohmmetre Devresi

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda Arduino ve 16x2 LCD ekran kullanarak basit bir dijital ohmmetre devresi inşa edeceğiz. Aynı konsepti kullanarak diğer olası devre fikirlerini de keşfedeceğiz.

Devre Hedefi

Bu makalenin sloganı, multimetrenizin aynı şeyi daha iyi yapabileceği direnci ölçmek için sadece bir ohm metre yapmak değildir.



Bu projenin temel amacı, arduino tarafından okunan direnç değerini, termistörün direnç değerindeki değişimin kolayca tespit edilebildiği yangın alarmı veya toprak direnci varsa otomatik sulama sistemi gibi bazı faydalı projeleri yapmak için kullanmaktır. mikrodenetleyici su pompasını tetikleyebilir. Projelerin olasılığı hayal gücünüze bağlıdır.

Önce bir ohm metrenin nasıl yapıldığını görelim ve sonra diğer devre fikirlerine geçelim.



Nasıl çalışır

Arduino Ohmmetre Devresi

Devre, en sevdiğiniz Arduino kartını, bilinmeyen direnç değerini göstermek için 16x2 LCD ekranı, LCD ekranın kontrast seviyesini ayarlamak için bir potansiyometreyi kullanabileceğiniz Arduino'dan oluşur. Biri bilinen direnç değeri, diğeri bilinmeyen direnç değeri olmak üzere iki direnç kullanılmaktadır.

Direnç analog bir işlevdir, ancak LCD'de görüntülenen değer dijital işlevdir. Bu yüzden, analogdan dijitale dönüştürme yapmamız gerekiyor, neyse ki Arduino'nun dahili 10-bit analogdan dijitale çevirici var.

10 bitlik ADC, 1024 ayrık voltaj seviyesini ayırt edebilir, 2 rezistöre 5 volt uygulanır ve dirençler arasında voltaj örneği alınır.

Bilinmeyen direnç değerini bulmak için bazı matematiksel hesaplamalar kullanılarak düğümdeki voltaj düşüşü ve bilinen direnç değeri yorumlanabilir.

Matematiksel denklemler programda yazılmıştır, bu nedenle manuel hesaplama yapılmasına gerek yoktur, doğrudan değeri LCD ekrandan okuyabiliriz.

Yazarın prototipi:

Arduino Dijital Ohmmetre Prototipi

Ohm ölçer için program:

//-------------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--------//

NOT: float R = 10000 // Ohm cinsinden bilinen Direnç değeri

Devredeki bilinen direnç değerini değiştirebilirsiniz, ancak değiştirirseniz lütfen programdaki değeri de değiştirin.

Geleneksel bir multimetre gibi, bu Arduino dijital ohmmetre devresinde de direnci ölçmek için bazı aralıklar vardır. Multimetrenizde mega ohm aralığında düşük değerli bir direnç ölçmeye çalışırsanız, kesinlikle hata değerleri alırsınız.

Aynı şekilde bu ohmmetre için de geçerlidir.

1K ila 50K ohm arasındaki direnci ölçmek isterseniz, 10K ohm bilinen direnç yeterli olacaktır, ancak Mega ohm aralığını veya birkaç ohm aralığını ölçerseniz bazı çöp okumaları alırsınız. Bu nedenle bilinen direncin değerini uygun bir aralığa değiştirmek gerekir.

Bu yazımızın bir sonraki bölümünde ohmmetre için LCD ekran devresini inceleyeceğiz ve seri monitörde sensör değerinin (bilinmeyen direnç) nasıl okunacağını göreceğiz.

Programda eşik değerini de belirteceğiz, önceden belirlenmiş eşiği geçtikten sonra Arduino röleyi tetikleyecektir.

Devre şeması:

Program kodu:

//-------------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--------//

NOT:

• float th = 7800 // Ohm cinsinden direnç eşiğini ayarlayın
7800 ohm'u değerinizle değiştirin.
• float R = 10000 // Ohm cinsinden bilinen değer Direnç
10000 ohm'u bilinen direnç değerinizle değiştirin.
• eğer (th> direnç)

Programdaki bu satır, sensör direncinin eşik değerin altına düşmesi durumunda çıkışın AÇIK duruma geleceğini ve bunun tersini belirtir.

Sensör okuması eşiğin üzerine çıktığında veya tam tersi olduğunda röleyi açmak istiyorsanız, 'if (direnç)'

Sensörün direncini doğrudan ölçerek (LDR veya termistör veya başka herhangi bir şey) ve bir eşik belirleyerek, röle, LED'ler, motor ve diğer çevre birimleri üzerinde büyük bir kontrol doğruluğu elde edebiliriz.

Benzer türdeki projeleri gerçekleştirmek için değişken bir direnci kör bir şekilde çevirerek bir referans voltajı belirlediğimiz ve eşiği belirlediğimiz karşılaştırıcılardan daha iyidir.




Önceki: Malzeme Depolama Seviye Kontrol Devresi Sonraki: 10 LED Takometre Devresi