direnc

Arduino ile Otomatik Direnç Ölçümü (ohm metre)

Arduino ile direnç ölçümlerini de yapabilirsiniz. Bu projemizde otomatik olarak direncin değerini ölçen bir ohm metre yapacağız,Bu projemizin maliyeti çok düşüktür. Avo metredeki ayarları düşündüğünüzde bu projenin ne kadar kullanışlı olduğunu anlayabilirsiniz.

 

Direnci uçlarına dokundurduğumuzda değeri ne olursa olsun hemen ölçerek sonucu LCD de gösteriyor.

Çalışma Pirensibini kısaca anlatmakta yarar var. Alttaki resime bakalım

arduino-ohmmeter

Resimde gördüğünüz gibi arduinonun 7çıkışını kullanıyoruz. Kullanılan bu 7 çıkış ile direncin değerini şu şekilde tespit edebiliriz. Mesela ölçmek istediğimiz direnci bağladığımızda 1. çıkış aktif ve diyot 0.7 voltluk bir değeri alı koyarak 4.3 voltluk bir değer ölçülmesi gerekir. Eğer arduino çıkışı 5 volt ise bilmediğimiz Rx direncin değerinin 220 ohm civarı olduğunu tahmin edersek , seri bağlı dirençlerin gerilim bölücü olduğundan, Bilinmeyen Rx direncinin üzerine düşen gerilim  (5-0.7)/2 = 2.15 volttur. Bu şekilde bilinmeyen Rx direncinin R1den az mı yoksa çok mu olduğunu anlayabiliriz eğer çoksa 6 numaralı çıkış verilir o şekilde ölçülür. diğer çıkışlar da tek tek aktif olarak ölçülür.

Arduinomuza LCD bağlandıktan sonra yukardaki resimdeki çıkışlar bağlanır. ve geriye programımızı yüklemek kalıyor.

ohmmetre2

#include int vin=A5;

int t=1;
int u=6;
int v=7;
int w=8;
int x=9;
int y=10;
int z=13;

int at;
int au;
int av;
int aw;
int ax;
int ay;
int az;
int a;
double vx;
float rx;
double i;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(vin,INPUT);
lcd.begin(16,2);

pinMode(t,OUTPUT);
pinMode(u,OUTPUT);
pinMode(v,OUTPUT);
pinMode(w,OUTPUT);
pinMode(x,OUTPUT);
pinMode(y,OUTPUT);
pinMode(z,OUTPUT);

digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
}
void loop()
{

digitalWrite(t,HIGH);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
delay(100);
at=analogRead(vin);

digitalWrite(t,LOW);
digitalWrite(u,HIGH);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
delay(100);
au=analogRead(vin);
digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,HIGH);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
delay(100);
av=analogRead(vin);

digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,HIGH);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
delay(100);
aw=analogRead(vin);

digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,HIGH);
digitalWrite(y,LOW);
digitalWrite(z,LOW);
delay(100);
ax=analogRead(vin);

digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,HIGH);
digitalWrite(z,LOW);
delay(100);
ay=analogRead(vin);

digitalWrite(t,LOW);
digitalWrite(u,LOW);
digitalWrite(v,LOW);
digitalWrite(w,LOW);
digitalWrite(x,LOW);
digitalWrite(y,LOW);
digitalWrite(z,HIGH);
delay(100);
az=analogRead(vin);

if(az>=450)
{
vx=az*0.00489;
i=(5-vx-0.55)/22000;
rx=(vx/i);
}
if(ay>=450 && az<450) { vx=ay*0.00489; i=(5-vx-0.55)/10000; rx=(vx/i); } if(ax>=448 && ay=439 && ax=439 && aw=430 && av=430 && au {
vx=at*0.00489;
i=(4.5-vx-0.55)/220;
rx=(vx/i);
}

if(at4.8)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“—-SONSUZ—-“);
}
else
{
if(rx<1000)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(rx);
lcd.setCursor(7,0);
lcd.print((char)244);
}
else
{
lcd.clear();
rx=rx/1000;
lcd.setCursor(0,0);
lcd.print(rx);
lcd.setCursor(6,0);
lcd.print(“k”);
lcd.print((char)244);
}
}
lcd.setCursor(0,1);
lcd.print(“Arduino Ohmmetre”);
}

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.