Ders Notları > Projeler

9. 24 Volt aküdeki gerilim dalgalanmasını izlenmesi

(1/1)

Hasan ERTÜRK:
Bu dersimizde 24 voltluk bir aküdeki gerilim dalgalanmasını dijital veriye dönüştürüp şarz seviyesini ledlerle gözlemleyeceğiz. Aynı zamanda akünün şarz durumuna göre değişen 23,4 Volt ile 25,2volt arasındaki gerilim değeri 0 - 10 volt arasında orantılı olarak değişkene dönüştürülüp plcnin 0-10 volt aralığında çalışan analog girişine uygulanacak.

Aslında bu çalışmayı konrolkalemi.com sitesinde sorulan bir soru üzerine hem probleme yardımcı olma hem de mevcut bilgilerimi pekiştirme amacıyla yaptım.

Söz konusu sitede sorulan probleme ait açılan konunun içeriği şöyle:

--- Alıntı ---Arkadaşlar merhaba,

Benim şöyle bir problemim var.

12 voltluk 2 adet seri bağlı akümüz var. Yani 24 volt'luk bir enerji. Benim yapmak istediğim şey ise akünün doluluk oranını bir PLC yardımıyla ölçmek. Bunu da PLC'nin 0-10 volt analog girişinden yapıyorum.

Akü tam dolu iken 25,20 Volt veriyor. Ben bu voltajı potans yardımı ile 10 volta düşürebiliyorum.
Akü tam dolu iken 25,20 Volt - potansta 10,00 Volt
Akü tam boş iken 23,40 Volt - potansta 9,28 Volt okuyorum.

10 volt ile 9,28 volt arasında bir skala yapmam gerekiyor. yani % yüzdelik dilimde bu da çok hassas olmuyor.
10 volt'ta % 100
9,28 volt'ta %1

İhtiyacım olan şey ise şu; mesela 25,20 voltta 10 volt, 9,28 voltta ise 0 volta yakın bir voltaj elde edebileceğimiz bir devre var mı veya yapılabilir mi? Opamp devrelerinin tam ters mantıkla çalıştığını düşünüyorum. Bu konuda bilgisi olan arkadaşlardan yardım bekliyorum.
--- Alıntı sonu ---











Devre şemasına ait isis çizimi ve hex dosyası konu ekinde mevcuttur.
Elimde optokuplör olmadığından demo devreye optokuplörleri eklemedim.
Devre isis simülasyonunda çalışmıştır.

Arduino kodlarımız:
int akumulator = 0; void setup() {    for (int i=0; i<11; i++)  {      pinMode (i, OUTPUT);    } } void loop() {    for (int i=3; i<14; i++){      digitalWrite(i, LOW);    }       int akumulatorRead = map(analogRead(akumulator), 949, 1023, 0, 10);   int cikis_voltaji = constrain(akumulatorRead, 0, 10);   digitalWrite(cikis_voltaji, HIGH);   delay(200);   digitalWrite(cikis_voltaji, LOW); }

Navigasyon

[0] Mesajlar

There was an error while thanking
Thanking...
Tam sürüme git