Eğitim Şart

Taşı delen suyun şiddeti değil sürekliliğidir!…

Arduino İle 18650 Li-Ion Pil Kapasite Ölçümü

Özellikle Laptop bataryalarından söktüğümüz 18650 Lityum pillerin kapasitesini ölçebileceğimiz bir düzenek.

Pillerin kapasitesi mAh cinsinden belirleniyor. Bu ne demek? O pilden 1 saatte (h) çekilebilecek akım miktarının mili amper (mA) cinsinden değeri demek. Bu değer ne kadar büyükse o pilin kapasitesi de o kadar büyüktür. Dışarıdan satın aldığımız pillerin üzerinde bu değer yazıyor. ama acaba bu değerler gerçek mi?

Bunu ölçmek için kör yük (dummy load) devreleri kullanılıyor. Mantık aslında çok basit. Bir pili alıp bir yüke bağlayarak boşalmasını beklemek. Bu süre içerisinde akımı ölçmek. Sonra bu iki değeri çarpmak. genelde bunun için akım sınırlandırıcı devreler uygun. Akımı belli bir değerde sabitleyip, pil boşalıncaya kadar geçen süreyi ölçüp, bu sabit akımla geçen süreyi (uygun birimlerle) çarpmak.

Ya da bu devrede olduğu gibi akımı sınırlandırmayıp, belli sürelerde akım değerini geçen süre ile çarpıp en son toplamak. Sanırım yukarıdaki grafikte akım ile zaman çarpımının, akım değeri ile zaman ekseni arasındaki bölgenin (ki burada dikdörtgen) alanı olduğu anlaşılıyor. Akım sabitlenmezse pilin gerilimi düştükçe akım da azalıyor. Akım sabitlenmeden yapılan bizim devremizdeki yöntem de bu alanı küçük dikdörtgenler şeklinde hesaplayıp sonucu toplamak. (Sanırım bu integral işleminin de mantığı)

Biliyoruz ki Li_Ion pillerin şarjı gibi deşarjı da önemli. Belli gerilim değerinin altına düşüldüğünde artı pil kullanılamaz hale geliyor. 18650 için 2.5 volt civarının daha altına inilmemesi gerekiyor. Tam dolu bir pilin 4 volta yakın bir gerilimi olduğu düşünülürse 2.5 volta kadar inerken sabit bir direnç üzerinden geçen akımın da azalacağı sanırım anlaşılır.

Bu işlemleri Arduino’ya kolayca yaptırabiliriz. millis komutu zaten geçen zamanı ölçüyor. Akım şiddetini de ölçtük mü bu iş tamamdır! Ama akım sensörü kullanmak yerine bir direncin iki ucu arasındaki gerilimi bulup bunu dirence bölünce akım şiddetini bulabileceğimizi Ohm kanunundan biliyoruz (I=V/R).

Gelelim devremize:

Önce devreyi board üzerinde çalıştırıp denedim. Sonra pertinaksa yerleştirdim.

 

IMG_20190307_172330

Pilin üzerindeki gerilimin paralel bağlı iki adet 4.7 Ohm 5 watt’lık dirençler ve bunu kontrol eden mosfet üzerinden geçen akım ile azalmasını istiyoruz. Mosfet’in çalışmasını da Arduino’nun 2 numaralı bacağına bağladığımız Gate’i ile kontrol ediyoruz. Dirençlerin değeri neden 4.7 ohm? Direnç değeri ne kadar büyük olursa o kadar az akım çekiliyor. Bu da ölçüm süresini uzatıyor. Direnci küçük seçersek de akım artıyor, direnç ve mosfet ısınıyor! Çekeceğimiz akım bu iki elemanın çalışma sınırları içerisinde olmalı. Benim elimdeki 5 watt gücündeki dirençleri o yüzden paralel bağladım. Böylelikle daha az ısınacak 2.6 ohm (paralel bağlı dirençlerin ölçülen eşdeğeri) direnç elde ettim. Board üzerinde yaptığım denemelerde daha az ısınıyordu. Ama devreyi karta kurunca umduğumdan fazla ısındılar(yaklaşık 67 santigrat derece). Bu haliyle üzerlerinde ölçülen akım 1 amperden fazla oluyor. (pilden 3.7 volt aldığımız durumda; 3.7/2.6=1,4 A). Bu durumda harcanan güç (P=IxV; 1.4 x 3.7= 5,25 watt) dirençlerimin çalışma gücü sınırlarının içinde aslında. Ama devrede LCD ekrana yakın koyduğumdan dolayı beni korkutuyor. onun için bu dirençlere 1 ohm değerinde bir direnci seri olarak bağlayacağım. Bu şekilde akımı (3.7/3.6) 1 Amperin altına çekerek daha az ısınmalarını sağlayacağım.

IMG_20190307_202329

Devre kartı montajı sırasında pil gerilim bağlantısını (3.7V) izoleli kablo ile yaparak kendimce kısa devre tehlikesine karşı önlem aldım. Ayrıca 5W dirençleri hareket etmelerini engellemek (pertinaks çok kötü, bakır levhalar çabuk ayrılıyor) ve ısınma etkisini azaltmak için çok bölgeden(yani büyükçe lehimledim).

IMG_20190308_202859

Mosfet (IRFZ44) çok ısınmıyor. Ama yine de soğutucu bağladım. Arduino ve LCD ekran için header kullandım. Belki söküp başka projede kullanabilirim diye. Ayrıca LCD ekrana destek olsun diye boş tarafa da header ekledim.

img_20190307_172125.jpg

Yukarıdaki devre şemasında A noktasında ki gerilim ölçülüyor ki aslında bu gerilim Pilin üzerindeki gerilim. Sonra B noktasındaki gerilim ölçülüyor. Bu iki gerilim arasındaki fark direnç değerine (2.6) bölünerek akım hesaplanıyor.

Şimdi bunu yapmak yerine önce mosfetin alt ucu (source) ile toprak arasına 1 ohm’luk bir direnç koyup üzerindeki gerilimi ölçerek, yine Ohm kanunundan direk akımı ölçmeye çalıştım. Öyle ya neden iki gerilim ölçüp aradaki farkı alıyoruz! Buradaki problem şu oldu: Analog girişten ölçülen değer 0-1023 arasında. Bunu 0-5 arasına çevirmek için 5 volt ile çarpıp 1024’e bölüyoruz:

battVolt = analogRead(voltPin) * 5 / 1024.0;

Hatta kodda 5 yerine voltRef diyerek, Arduino’nun 5V pinindeki değerini ölçüp yazdık. Bu değer 5V değil 4.3V! Ve maalesef referans almak için çok kötü. Çünkü sürekli değişiyor! Voltmetre ile ölçtüğüm değer ile Arduino’nun ölçtüğü değerler uyuşmadı. Üst gerilimlerde uygun değeri yazsam, alt gerilimlerde hatalı ölçüm oldu. Ya da tersi. Bu hatadan kaçınmak için iki değişik uçta ölçüm yapıp farkını almak akıllıca (bunu ben bulmadım, adamlar yapmış).

Kodda da göreceğiniz üzere mosfet kontrolü yapan 2 numaralı digital çıkış, pil gerilimi 2.6′ nın altına düşene kadar “1” çıkışı veriyor o kadar. Pil olmadan devre çalıştırıldığında, giriş gerilimi 0 volt (yani 2.6’dan küçük olduğu için) program kendisini sonlandırıyor ve kapasiteyi 0 gösteriyor.

Arduino’nun 3 numaralı bacağına da bir buzzer koydum, fantazi olsun diye. İki şekilde çalışıyor;  birincisi ölçüm sırasında her 5 saniyede bir kısa pes ses ile deşarj işleminin devam ettiğini gösteriyor. İkincisi ise pil gerilimi 2.6 Voltun altına düşüp, deşarj işlemi sona erdiği anda 5 kez tiz öterek işlemin sonlandırıldığını belirtiyor.

Arduino’nun diğer bağlantıları Nokia 5110 LCD ekran bağlantıları. Bunları zaten görmüştük(https://egitimsart.org/2019/02/16/su-arduino-dedikleri-6-arduino-nokia5110-lcd-ekran-kullanimi/).

(Fritzing’deki kullandığım LCD bağlantıları elimdeki ile aynı değildi. Ama bağlantı sırasının kodda belirtildiğini unutmayın:

LCD5110 myGLCD(Clk, Din, DC, CE, RST);)

Kodda zaten açıklamaları komut satırlarına eklemeye çalıştım. LCD ekran kullanılmasına rağmen yine;

Serial.begin(9600);

Serial.println(“Volt: Akim: mAh:”);

gibi “Serial”ile başlayan satırlar, programın çalışmasını seri ekranda görüp hata ayıklamaları yapabilmek için konulmuştu, silmedim. Ama bunlara ihtiyaç olmadığını biliyoruz.

Arduino Kodu

 

Bu konu ile ilgili aşağıdaki sayfaları inceleyebilirsiniz:

1)https://www.instructables.com/id/DIY-Constant-current-load/

2)https://www.instructables.com/id/Li-ion-Capacity-Tester-/

3)https://www.youtube.com/embed/qtws6VSIoYk

Arduino İle 18650 Li-Ion Pil Kapasite Ölçümü” için 33 yorum

  1. Merhaba.Bu devre ile 21,6 V ni-cd pil kapasitesi ölçmek istiyorum.Bunun için herhangi bir ekleme veya değişiklik yapmam gerekir mi yoksa bu devre işimi görür mü ?

    Liked by 1 kişi

    1. Merhaba;
      1) Eğer 21.6 volt tek pil değil de birden fazla piden oluşmuş bir batarya ise böyle bir devre kullanamazsınız, bu devre tek pil için şarj devresidir!
      2) Eğer tek pil ise Arduino analog girişleri 0-5 volt arası duyarlıdır. O yüzden devrede analog girişlere gerilim bölücü eklenmelidir(21.6 voltu 5 volta dönüştürmek için)!
      3) Kod 3.7 volt için yazılmıştır ve 2.5 volt 4.2 volt arası gerilim için çalışır. Bu yüzden 21.6 voltluk Ni-Cd pillerin çalışma aralığını bilmek gerekir (ben bilmiyorum)! Minimum deşarj voltajı önemli. Çünkü Li-Ion (18650) pil için 2.5 volt civarının altında deşarj işlemi bitiriliyor. Sizin pil için bu değer önemli!
      4) Buradaki dirençler yaklaşık 4.2 volt için tasarlanmıştır. Üzerlerinden yaklaşık 1 Amp akım geçiyor. Aynı dirençleri kullanamazsınız, fazla akım çeker, fazla ısınır, akımı kaldıramaz.
      Sonuç olarak sanırım bu devre sanırım sizin işiniz için uygun değil. En azından bu haliyle…
      Hoşça kalın

      Beğen

      1. Cep telefonlarında, laptoplarda, tabletlerde, dronlarda, wifi hoparlörde vb tüm elektronik aygıtlarda kullanılan, şarj edilebilen yüksek kapasiteli, son teknoloji pillerdir.

        Beğen

  2. merhaba bende mezuniyet projesi olarak bunu yapıyorum fakat yazarken sonuç kısmında takıldım sonuç olarak ne yazabılırım bu proje ıle ılgılı yardımcı olurmusunz ?mail:yhosuf@gmail.com

    Liked by 1 kişi

    1. şimdi 1ntane daha buldum 5w 1 ohm direnç daha buldum 2 tane 5w 1ohm direnç oldu böle yaptım mı bi sorun yaşayabilir miyim?

      Beğen

  3. Merhaba. Paylaşımınız için teşekkürler. Devrede kullanılan dirençler yerine farklı dirençler kullanabilir miyiz?. Elimde 10′ ar adet 3 W 2.2 R, 3 W 220 R, 3 W 22 R, dirençleri var.

    Liked by 1 kişi

  4. Hocam ben bunu Vize final sınavı için yapacağım proteus çizimi istiyor hoca elimizde varsa atabilirmisin iz

    Beğen

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: