Arduino voltmetre ile uyarı

Katılım
12 Ara 2020
Mesajlar
11
Puanları
1
Yaş
38
Untitled Sketch_bb.jpg




merhabalar..
aşağı yukarı böyle bir devrem var.. led yerine röle koyacağım..
Kod:
int relay = 2;

int analogInput = 0;

float vout = 0.0;

float vin = 0.0;

float R1 = 100000.0; // 100K ohm direnç

float R2 = 10000.0; // 10K ohm direnç

int value = 0;



void setup(){

   pinMode(analogInput, INPUT);

   pinMode(relay, OUTPUT);



   Serial.begin(9600);

 

}

void loop(){



 

   value = analogRead(analogInput);

   vout = (value * 5.0) / 1024.0;

   vin = vout / (R2/(R1+R2));

   if (vin<0.09) {

   vin=0.0;

}



   if (vin<12.5) {

   digitalWrite(relay,0);

}

else

{

   digitalWrite(relay,1);

}



Serial.println("VOLTAJ V ");

Serial.println(vin);

delay(500);

}
böyle bir kodum var..
seri port ekranından izlerken voltajın çok hareketli olduğunu görüyorum ve A0 pininden hiç voltaj vermesem bile voltaj ölçümü yapıyor.. bunun sebebini öğrenmek istiyorum.. yardımcı olursanız sevinirim..
 
Moderatör tarafında düzenlendi:
0,1uF ters takılmış.
dirençler 10k ve 1k olsa daha uygun olur
 
a0 pinini boşta bırakmamak gerekir.
 
elektrolitik kondansatörün beyaz çizgisi negatif ucu gösterir. negatif ucu 5v+ ya bağlamışsın.
gerçi 0.1uf elektrolitik hiç görmedim.
 
a0 pinini boşta bırakmamak gerekir.
Boş bırakınca voltaj göstermesi normal mi yani ?
elektrolitik kondansatörün beyaz çizgisi negatif ucu gösterir. negatif ucu 5v+ ya bağlamışsın.
gerçi 0.1uf elektrolitik hiç görmedim.
9v bağladım.. 7809 kullandım orda.. 63v 0.1 uf yazıyor üstünde ? Burada birine sormam üzerine internetten sipariş edip taktım.. yanlış mı olmuş ? Çizimde eksi artı kısmına dikkat etmemişim..
 
Göstermiş olduğunuz yazılım örneğinde hatalar var.

Birincisi analog olarak okuduğunuz veriyi 5'le çarpıyorsunuz ama devre şemasında 14.4 volta bağlanmış gibi görünüyor. O zaman hatalı işlem yapıyor.

Gerilim bölücü hesabından burada yaklaşık 1.5 volt görürsünüz.

Artık 14.4 voltu da kullanmanızı tavsiye etmem. 5 voltla çalışacaksınız.

Gerilim ölçmek için şu örneğe bakabilirsiniz.

Röle yerine mosfet de kullanabilirsiniz.
 
Göstermiş olduğunuz yazılım örneğinde hatalar var.

Birincisi analog olarak okuduğunuz veriyi 5'le çarpıyorsunuz ama devre şemasında 14.4 volta bağlanmış gibi görünüyor. O zaman hatalı işlem yapıyor.

Gerilim bölücü hesabından burada yaklaşık 1.5 volt görürsünüz.

Artık 14.4 voltu da kullanmanızı tavsiye etmem. 5 voltla çalışacaksınız.

Gerilim ölçmek için şu örneğe bakabilirsiniz.

Röle yerine mosfet de kullanabilirsiniz.

14.4 mecburen kullanıyorum.. arduinoyu arabaya bağlayacağım.. araba 14.4v veriyor.. ve bu voltaj 12.7 altına düşerse röleyi aktif etsin istiyorum.. aslında bu olayı akü ışığını yakması için kullanıyor olacağım.. araba şarj keserse ışık yanmış olacak..
 
O zaman şu şekilde basit bir gerilim bölücü kullanabilirsiniz. Hesaplamaları +5V'a göre yapacaksınız.

Bu çıkışları Arduino'nun iki farklı analog girişine bağlayabilirsiniz.

soruarduino.PNG
 
14.4 mecburen kullanıyorum.. arduinoyu arabaya bağlayacağım.. araba 14.4v veriyor.. ve bu voltaj 12.7 altına düşerse röleyi aktif etsin istiyorum.. aslında bu olayı akü ışığını yakması için kullanıyor olacağım.. araba şarj keserse ışık yanmış olacak..

Analog inputlar, pull-up dirençleri açılmadığında ya da dışarıdan da herhangi bir yere bağlanmadığında devre yolları anten gibi çalışır ve rastgele değerler okurlar. Yaptığınız uygulamada pull-up dirençleri açmanıza gerek yok. A0'a ufak bir seramik kondansatör bağlayın,
if (vin<12.5) {
digitalWrite(relay,0);
}
else
{
digitalWrite(relay,1);
}
Kontrol ederken siz de farketmişsinizdir, 12.5'dan küçükse röle çıkışını kapatıyor bu kod. Onun dışında bahsettiğiniz amaca hizmet ediyor gibi. Elektrolitik kondansatörlerin kutuplarına da dikkat ederseniz patlama çatlama olmadan çalışır.
 

Forum istatistikleri

Konular
130,090
Mesajlar
932,987
Kullanıcılar
453,118
Son üye
smdakn

Yeni konular

Geri
Üst