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 (http://www.kontrolkalemi.com/forum/konu/ak%C3%BC-%C5%9Farj-devresi.78820/) sitesinde sorulan bir soru üzerine hem probleme yardýmcý olma hem de mevcut bilgilerimi pekiþtirme amacýyla yaptým.
Söz konusu sitede (http://www.kontrolkalemi.com/forum/konu/ak%C3%BC-%C5%9Farj-devresi.78820/) sorulan probleme ait açýlan konunun içeriði þöyle:
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.
http://www.youtube.com/watch?v=uORA4ABH1CQ
(http://temrinlerim.org/images/arduino115.jpg)
(http://temrinlerim.org/images/arduino116.jpg)
(http://temrinlerim.org/images/arduino117.jpg)
(http://temrinlerim.org/images/arduino118.bmp)
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);
}