Basit Elektronik Yük Devresi V3

Kod:
voltajDususu = (akimDeger * 5.0) / 1023;

Bunun yerine

voltajDususu = (akimDeger * 2.6 * 4.994) / 1023;

Böyle olması lazım.

Ayrıca 10 bitlik çözünürlükte gerilim okumada şemadaki gerilim bölücülerle yaklaşık 31mV adımlarla doğru okuman lazım. 25~30 Volt arası 1-2 volt hata ile okuyorsan gözden kaçan bir hata var demektir.
 
4 shuntteki voltajın toplam değerinin 0.9 katının çıkışı olacağını düşünüyorum ben o devreden(kafadan yaptım hata olursa düzeltiriz). Bu durumda senin mesela shuntlerinden 1er A geçerse her biri 220mV görür, ne yaptı 4ünün toplamı 880mV. 0.9 katı nedir, 792mV yani 792mV okuduğunda adc den( arduinonun adc si sanırım 10bit yani adc okuması 162 olduğunda) 4A çekiyorsun. O zaman adc nin okuduğu her bir değer yaklaşık 24.7mA diyebiliriz. Adc den okuduğun değeri 24.7 ile çarparsan mA cinsinden akımı ölçeceğini düşünüyorum. Ama yine oradaki kazanç dirençlerine göre falan düzeltme yapmamız lazım
 
Voltaj konusuna gelince lineerlik ile ilgili bir hata olabilir. Çözüm mevcut ama sorun bu mu önce onu anlamamız lazım, sen hesaplarında her adc değişiminin eşit voltaj değişimine denk geldiğini varsayıyorsun. Böyle olmayabilir. Bunu test etmek için şunu yapabilirsin. Şimdi 0V da 0 okuduğumuzu biliyoruz, yani offset problemimiz yok diyebiliriz. Girişe 5V ver ADC nin okuduğunu not et, sonra 10V ver not et. Bu şekilde 5V luk adımlarla 25V a kadar 5 tane değeri not et. Eğer lineer ise adc o zaman 25 de okuduğun değer-20 de okuduğun değer, 10 da okuduğun ile 5 de okuduğunun farkına eşit olmalı ya da aşırı yakın olmalı. Aynı şekilde 5V da okuduğun değere de eşit ya da aşırı yakın olmalı. Bu testi yapabilirsen oradan bir ilerleyelim
 
Benim düşünceme göre yük güç kaynağından 500mA akım çekiyorsa, şemada "C_READ1" diye isimlendirilen noktada yaklaşık 286mV ölçülmesi lazım. @Gokrtl bunu ölçebilir misin?
 
Benim düşünceme göre yük güç kaynağından 500mA akım çekiyorsa, şemada "C_READ1" diye isimlendirilen noktada yaklaşık 286mV ölçülmesi lazım. @Gokrtl bunu ölçebilir misin?
Non inverting input daki kanallar arası dirençler eşit olduğu için şu an kanal değerlerinin aritmetik ortalaması V+ da görünecek gibi. Bu durumda kaynak akımı 500mA ise, her kanal 125mA olacak. V+ değeri 27.5mV olacak. Bu 3.6 kazanca uğrayacak(devrenin kalanını non inverting amplifier gibi düşünebilirsin) yani bu durumda 99mV okuman gerekir benim düşünceme göre
 
Şimdi biraz toparlamaya çalışayım.
Yük girişi boşta iken A6 (Voltaj Okuma) pininden ölçtüğüm değer -0.0006V
Yüke 5V verdiğimde multimetreden 5.08V ölçerken Ekrandan 5.02V ölçüyorum.
Yüke 10V verdiğimde multimetreden 10V ölçerken Ekrandan 9.92V ölçüyorum.
Yüke 15V verdiğimde multimetreden 15.05V ölçerken Ekrandan 14.95V ölçüyorum.
Yüke 20V verdiğimde multimetreden 20.02V ölçerken Ekrandan 19.75V ölçüyorum.
Yüke 25V verdiğimde multimetreden 25V ölçerken Ekrandan 23.84V ölçüyorum.

Benim düşünceme göre yük güç kaynağından 500mA akım çekiyorsa, şemada "C_READ1" diye isimlendirilen noktada yaklaşık 286mV ölçülmesi lazım. @Gokrtl bunu ölçebilir misin?
0.128mV

Kod:
voltajDususu = (akimDeger * 5.0) / 1023;

Bunun yerine

voltajDususu = (akimDeger * 2.6 * 4.994) / 1023;

Böyle olması lazım.

Ayrıca 10 bitlik çözünürlükte gerilim okumada şemadaki gerilim bölücülerle yaklaşık 31mV adımlarla doğru okuman lazım. 25~30 Volt arası 1-2 volt hata ile okuyorsan gözden kaçan bir hata var demektir.
Bunu dahil edince 500mA çekerken 1.44A çekiyormuş gibi okuyor.
4 shuntteki voltajın toplam değerinin 0.9 katının çıkışı olacağını düşünüyorum ben o devreden(kafadan yaptım hata olursa düzeltiriz). Bu durumda senin mesela shuntlerinden 1er A geçerse her biri 220mV görür, ne yaptı 4ünün toplamı 880mV. 0.9 katı nedir, 792mV yani 792mV okuduğunda adc den( arduinonun adc si sanırım 10bit yani adc okuması 162 olduğunda) 4A çekiyorsun. O zaman adc nin okuduğu her bir değer yaklaşık 24.7mA diyebiliriz. Adc den okuduğun değeri 24.7 ile çarparsan mA cinsinden akımı ölçeceğini düşünüyorum. Ama yine oradaki kazanç dirençlerine göre falan düzeltme yapmamız lazım
Bu biraz karışık. Tane tane okuyup uygulamaya çalışacağım.
 
Öncelikle şu düzeltmeyi yap. Yapay yükün güç kaynağından çektiği akım en kısa yoldan dönüş yapmalı. Mevcut pcb ile bütün kartı dolaşıyor, bu başta ölçüm hataları olmak üzere sorunlara sebep olacak.

İnput konektörünün GND pininin pcb bağlantısını kazıyarak kes. Tam gösterdiğim iki nokta arasına kalın bir kablo ile bağlantı yap. Yani input konektörünün kart ile GND bağlantısı sadece bu kablo ile olsun.


Ekran görüntüsü 2024-11-24 205459.jpg
 
128mV ise biraz garip bir durum var. 3.9K ya 1.5K ise dirençler oranın gaini 3.6 olması lazım. Bu durumda ya kaynak akımı 0.5A değil ya da shuntlerin değerlerinde kayma var. Ama zaten bu summing amplifier işi benim çok aklıma yatmadı layout açısından oldukça sıkıntılı bir işlem. Yine lineerlik vs testi uzun baya. Bence amaç hızlıca bu yükü kullanmak ise, yani yük projesi yapmak değilse şu iki multimetre işini kullanman en pratiği
 
Yapay yük ile 500mA çektiğinde C_READ1 noktasında 99mV gerilim olmalı. Tabi eleman toleransları yüzünden bu bir miktar sapacaktır. Fakat yukarıda 0.128mV ölçtüğünü yazmışsın. Burada bir hata var gibi. 0.128mV değil de 0.128V olabilir mi?
 
Öncelikle şu düzeltmeyi yap. Yapay yükün güç kaynağından çektiği akım en kısa yoldan dönüş yapmalı. Mevcut pcb ile bütün kartı dolaşıyor, bu başta ölçüm hataları olmak üzere sorunlara sebep olacak.

İnput konektörünün GND pininin pcb bağlantısını kazıyarak kes. Tam gösterdiğim iki nokta arasına kalın bir kablo ile bağlantı yap. Yani input konektörünün kart ile GND bağlantısı sadece bu kablo ile olsun.


38510 eklentisine bak
Bu saatte yapmam mümkün değil. Yarın ancak.

Adc den okuduğun değeri 24.7 ile çarparsan mA cinsinden akımı ölçeceğini düşünüyorum. Ama yine oradaki kazanç dirençlerine göre falan düzeltme yapmamız lazım
500mA için ADC den okuduğum değeri 20.84 ile çarpınca Ekranda 500.16mA görüyorum.
Ama akımı aynı çarpanla 1A'e çıkarınca ekranda 1024mA görüyorum.

128mV ise biraz garip bir durum var. 3.9K ya 1.5K ise dirençler oranın gaini 3.6 olması lazım. Bu durumda ya kaynak akımı 0.5A değil ya da shuntlerin değerlerinde kayma var. Ama zaten bu summing amplifier işi benim çok aklıma yatmadı layout açısından oldukça sıkıntılı bir işlem. Yine lineerlik vs testi uzun baya. Bence amaç hızlıca bu yükü kullanmak ise, yani yük projesi yapmak değilse şu iki multimetre işini kullanman en pratiği
Kaynak akımını pensampermetre ile ölçüyorum. bir kaç mA hata olabili belki ama büyük hatalar yok. Shuntlerde sıkıntı vardır belki.
Yükü lazım olduğunda multimetreler ile her türlü kullanıyorum zaten. Amaç multimetre ve pensampermetreden kurtulup dahili ekranda görmek değerleri.
O dandik aletlere para vermem. Bana katacakları hiç bir şey yok. Evet kafam biraz kalın ama yinede bir şeyler öğreniyorum. O yüzden bu yolda ilerlemek işime geliyor. Gerekirse layout' u filan da değiştiririm. Yeterki mantıklı bir şema olsun elimde.
 
Yapay yük ile 500mA çektiğinde C_READ1 noktasında 99mV gerilim olmalı. Tabi eleman toleransları yüzünden bu bir miktar sapacaktır. Fakat yukarıda 0.128mV ölçtüğünü yazmışsın. Burada bir hata var gibi. 0.128mV değil de 0.128V olabilir mi?
Hemen tekrar ölçüyorum.
 
500mA için 128mV çıkış alıyoruz. Bu durumda C_READ1 noktasından 0.256mV/mA oranında gerilim aldığımızı varsayarsak kodu aşağıdaki gibi düzenlersen bir şeyler olacak gibi.

Kod:
akimDeger = analogRead(akimRead);
  voltajDususu = (akimDeger * 5.0) / 1023;
  akim = voltajDususu / 0.256;
 
500mA için 128mV çıkış alıyoruz. Bu durumda C_READ1 noktasından 0.256mV/mA oranında gerilim aldığımızı varsayarsak kodu aşağıdaki gibi düzenlersen bir şeyler olacak gibi.

Kod:
akimDeger = analogRead(akimRead);
  voltajDususu = (akimDeger * 5.0) / 1023;
  akim = voltajDususu / 0.256;
ekranda 0.46 görüyorum.
 
Yukarıdaki 0.128V ölçümü alırken ölçü aletinin siyah probunu dokunduğun GND noktasına göre ölçüm farklı çıkabilir. Tam opamp GND bacağına çok yakın bir noktada olmalı.

Ayrıca yukarıdaki PCB modifikasyonu yapılmazsa yapay yükün çektiği akıma göre okunan değerler çok oynak olacak.
 
Yatayım artık. Yarın devam edelim. Saat 2 de yatmaya karar verdim, saat 4 oldu. :)
 
Şimdi biraz toparlamaya çalışayım.
Yük girişi boşta iken A6 (Voltaj Okuma) pininden ölçtüğüm değer -0.0006V
Yüke 5V verdiğimde multimetreden 5.08V ölçerken Ekrandan 5.02V ölçüyorum.
Yüke 10V verdiğimde multimetreden 10V ölçerken Ekrandan 9.92V ölçüyorum.
Yüke 15V verdiğimde multimetreden 15.05V ölçerken Ekrandan 14.95V ölçüyorum.
Yüke 20V verdiğimde multimetreden 20.02V ölçerken Ekrandan 19.75V ölçüyorum.
Yüke 25V verdiğimde multimetreden 25V ölçerken Ekrandan 23.84V ölçüyorum.

ADC de bir lineerlik hatası var. Bu tip basit ADC lerde olur zaten.

Öncelikle R1 ve R2 gerilim bölücü dirençleri sök, soğumasını bekle. Sonra da tam olarak direnç değerlerini ölç ve bir kenara yaz. Cihaz 1 saat çalışsın, sonra da AREF i ölç ve bir kenara yaz.

Bir de şu anda kullandığın formülü de yaz. Daha önceki mesajlarda belki vardır bu bilgiler ama şu an için bir özet olması bakımından yeniden yazmakta fayda var. Formül ile olabilecek en yakın sonucu elde edelim.

Bunu elde edince, geri kalan hatayı da interpolasyon ile çözmen gerekecek. Mesela 10 farklı voltaj ölçümünü yapıp gerçek voltaj, hesaplanan voltaj tablosu yapacaksın. Sonra bu tabloya göre ölçülen değeri düzelteceksin. Ama önce yukarıdakileri halledelim. interpolasyonu sonra yaparız.
 
En az 5 farklı akım değeri için okuma yapın. Gerçek değer (örneğin multimetreden okuduğunuz) ve sizin devrenizin okuduğu değer. Bunları bir excel dosyasına yazıp grafiğini çizin. Offset hatası mı var yoksa doğrusallık sorunu mu var karşınıza hemen çıkacaktır. Akım arttıkça makas açılıyorsa doğrusallık sorunu, sürekli fazla yada eksik okuma durumu varsa (aynı miktarı) offset problemi vardır. İkisi bir arada da olabilir. Grafiği çizin kendiniz göreceksiniz. Daha sonra basit bir matematik işlemi ile okumanız gereken doğru değerleri ekrana yazdırırsınız.
 
Lineerlik hatası kesin var.

[imath]\frac{\normalsize 5.08}{\normalsize 5.02} < \frac{\normalsize 25}{\normalsize 23.84}[/imath]
 
Dirençeleri söküp ölçtüm.
%1 toleranslı 18K : 17.996
%0.1 toleranslı 3.24K : 3.229 (Bunun vadedilen toleransı yanlış. Hesaplamama göre %0.33 toleransılı bu.)

Dirençleri devreye geri takıp beklemeye başladım. 1 saat sonra ölçeceğim.
Ayrıca @HexfeT 'in gece söylediği ground kısayol olayınıda yaptım.
Öncelikle şu düzeltmeyi yap. Yapay yükün güç kaynağından çektiği akım en kısa yoldan dönüş yapmalı. Mevcut pcb ile bütün kartı dolaşıyor, bu başta ölçüm hataları olmak üzere sorunlara sebep olacak.

İnput konektörünün GND pininin pcb bağlantısını kazıyarak kes. Tam gösterdiğim iki nokta arasına kalın bir kablo ile bağlantı yap. Yani input konektörünün kart ile GND bağlantısı sadece bu kablo ile olsun.


38510 eklentisine bak
 

Çevrimiçi personel

Forum istatistikleri

Konular
7,115
Mesajlar
121,180
Üyeler
2,883
Son üye
alemrans

Son kaynaklar

Son profil mesajları

az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Back
Top