- Neden Pil Kapasitesi Test Cihazına İhtiyacımız Var?
- Gerekli Bileşenler
- Arduino Pil Kapasitesi Test Cihazı Devre Şeması
- Pil Kapasitesini Ölçmek için Arduino Programı
- Doğruluk İyileştirmeleri
- Devre Oluşturma ve Test Etme
Teknolojinin gelişmesiyle birlikte, elektronik cihazlarımız ve cihazlarımız daha işlevsel ve karmaşık uygulamalarla gittikçe küçülüyor. Karmaşıklıktaki bu artışla birlikte, devrenin güç gereksinimi de artmıştır ve cihazı olabildiğince küçük ve taşınabilir hale getirme arayışımızda, uzun süre ve aynı zamanda yüksek akım sağlayabilen bir bataryaya ihtiyacımız vardır. Cihazın taşınabilir kalması için daha az tartın. Piller hakkında daha fazla bilgi edinmek istiyorsanız, pilin temel terminolojileri hakkındaki bu makaleyi de okuyabilirsiniz.
Mevcut birçok farklı pil türünden, Kurşun Asit piller, Ni-Cd piller ve Ni-MH piller, daha ağır olduklarından veya uygulamamız için gereken akımı sağlayamadıklarından uygun değildir, bu da bize lityum iyon pilleri bırakır. Ağırlığı düşük ve kompakt boyutta tutarken yüksek akım sağlayabilir. Daha önce bir 18650 pil şarj cihazı ve güçlendirici modül ve IoT tabanlı bir pil izleme sistemi de kurduk, ilgileniyorsanız bunları kontrol edebilirsiniz.
Neden Pil Kapasitesi Test Cihazına İhtiyacımız Var?
Piyasada, gerçek olamayacak kadar iyi olan, çok düşük bir fiyatla tuhaf spesifikasyonlar talep eden Li-ion pillerin ucuz taklit versiyonlarını satan birçok pil satıcısı var. Bu hücreleri satın aldığınızda ya hiç çalışmıyorlar ya da çalışıyorlarsa şarj kapasitesi ya da akım akışı o kadar düşük ki uygulama ile hiç çalışamıyorlar. Öyleyse, hücre bu ucuz taklitlerden biri değilse bir lityum pil nasıl test edilir ? Yöntemlerden biri, açık devre voltajını yüksüz ve yüklemesiz ölçmektir, ancak bu hiç de güvenilir değildir.
Öyleyse, kapasitesini hesaplamak için dirençten geçen akımı ölçerken, tam olarak şarj edilmiş bir 18650 hücresini bir direnç aracılığıyla boşaltacak bir Li-Ion 18650 Hücresi için bir 18650 pil kapasitesi test cihazı yapacağız. Hücre voltajı belirtilen sınırlar içindeyken talep edilen pil kapasitesini alamazsanız, o hücre arızalıdır ve hücrenin Şarj Durumu, yük altında çok hızlı bir şekilde tükeneceğinden, bunu kullanmamalısınız. pil paketinde kullanıldığında yerel akım döngüsü ısınmaya ve muhtemelen yangına neden olur. Öyleyse hemen içine atlayalım.
Gerekli Bileşenler
- Arduino Nano
- 16 × 2 Karakter LCD
- LM741 OPAMP IC
- 2.2Ω, 5Watt Direnç
- 7805 Pozitif Voltaj Regülatörü IC
- 12V Güç Kaynağı
- 10kΩ Kırpıcı Potansiyometre
- 0.47uF Kapasitör
- 33kΩ Direnç
- DC Güç Varil Jak Bağlantısı
- PCB Vidalı Klemensler
- IRF540N N-Kanal Mosfet IC
- Perfboard
- Lehimleme Kiti
- Isı Emiciler
Arduino Pil Kapasitesi Test Cihazı Devre Şeması
18650 pil kapasitesi test cihazının tam devre şeması aşağıda gösterilmiştir. Devrenin açıklaması aşağıdaki gibidir:
Hesaplama ve Görüntüleme Birimi:
Bu devre ayrıca iki bölüme ayrılmıştır, birincisi Arduino Nano için düşük 5V besleme ve 16 × 2 Alfanümerik LCD ekran ve bunların akım ve gerilim ölçümlerinin sonuçlarını gerçek zamanlı olarak görüntülemek için bağlantılarıdır. Devre, SMPS kullanan 12V güç kaynağı ile çalıştırılır veya 12V pil kullanabilirsiniz ve maksimum akım, Arduino ve LCD ekrana güç sağlamak için 60-70mA civarında olacaktır.
Voltajı 5V'a düşürmek için, 35V'a kadar dayanabilen ve düzenlenmiş 5V besleme sağlamak için en az 7.5V giriş güç kaynağına ihtiyaç duyan doğrusal bir voltaj regülatörü olan bir kullanacağız ve aşırı voltaj ısı olarak dağıtılır, dolayısıyla girişiniz ise voltaj LM7805 Voltaj Regülatörü IC, 12V'den fazladır, daha sonra hasar görmemesi için bir soğutucu eklemeyi düşünün. LCD, 7805'ten 5V'luk bir besleme ile güçlendirilmiştir ve Arduino'ya bağlanmıştır ve 4 bit modunda çalışır. Ayrıca LCD ekranın kontrastını kontrol etmek için bir 10k Ω silecek potansiyometresi ekledik.
Sabit Yük Akım Devresi:
İkincisi, direnç üzerinden akan yük akımını bizim tarafımızdan kontrol edilebilir ve sabit hale getirmek için PWM tabanlı sabit akım yük devresidir, böylece hücre gerilimi düştükçe zamanla akım değişiminden dolayı sürünen bir hata olmaz. Ayarladığımız voltaj seviyesine göre MOSFET'i açıp kapatarak MOSFET üzerinden akan akımı kontrol eden LM741 OPAMP IC ve IRF540N N-Kanal MOSFET'ten oluşur.
Op-amp, karşılaştırıcı modunda çalışıyor ,yani bu modda. op-amp'in ters çevirmeyen piminin voltajı ters çevirme piminden daha yüksek olduğunda op-amp'in çıkışı yüksek olacaktır. Benzer şekilde, op-amp'in ters çevirici pimindeki voltaj, ters çevirmeyen pinden daha yüksekse, op-amp'in çıkışı aşağı çekilecektir. Verilen devrede, ters çevirmeyen pin voltaj seviyesi, 500Hz frekansında anahtarlanan Arduino NANO'nun D9 PWM pini tarafından kontrol edilir ve daha sonra Direnç değeri 33kΩ olan düşük geçişli RC devre filtresinden ve 0.47 kapasitansa sahip Kondansatörden geçer. uF, ters çevirmeyen pimde neredeyse sabit bir DC sinyali sağlamak için. Ters çevirme pimi, direnç ve ortak GND boyunca voltajı okuyan yük direncine bağlanır. OPAMP'ın çıkış pini, AÇIK veya KAPALI konuma getirmek için MOSFET'in geçit terminaline bağlanır.OPAMP, bağlı MOSFET'i değiştirerek her iki terminalindeki gerilimleri eşit yapmaya çalışacaktır, böylece dirençten geçen akım NANO'nun D9 pininde ayarladığınız PWM değeriyle orantılı olacaktır. Bu projede, maksimum akım, devremizi 1.3A ile sınırlandırdım ki bu makul olan, sahip olduğum hücre maksimum akım değeri 10A olduğu için.
Gerilim Ölçümü:
Tipik bir tam şarjlı Li-İyon hücresinin Maksimum voltajı 4,1 V ila 4,3 V arasındadır; bu, Arduino Nano'nun içinde 10kΩ'dan fazla dahili dirence sahip olan Analog giriş pinlerinin 5V voltaj sınırından daha düşüktür, böylece doğrudan bağlantı kurabiliriz. İçlerinden akan akım hakkında endişelenmeden analog giriş pinlerinden herhangi birine hücre yapın. Dolayısıyla bu projede hücrenin doğru gerilim çalışma aralığında olup olmadığını ve tamamen deşarj olup olmadığını belirleyebilmemiz için hücrenin gerilimini ölçmemiz gerekiyor.
Dirençten geçen akımı da ölçmemiz gerekir, çünkü devrenin karmaşıklığı artacağından ve yük yolunda artan direnç hücre deşarj oranını düşüreceğinden akım şöntü kullanamayız. Daha küçük şönt dirençlerin kullanılması, ondan gelen voltaj okumasını Arduino tarafından okunabilir hale getirmek için ek bir amplifikatör devresi gerektirecektir.
Bu yüzden yük direncindeki gerilimi doğrudan okuruz ve ardından Ohm Yasasını kullanarak , içinden geçen akımı elde etmek için yük direnci değeriyle elde edilen gerilimi böleriz. Direncin negatif terminali doğrudan GND'ye bağlanır, bu nedenle direnç üzerinde okuduğumuz voltajın dirençteki voltaj düşüşü olduğunu güvenle varsayabiliriz.
Pil Kapasitesini Ölçmek için Arduino Programı
Şimdi donanım devresini tamamladıktan sonra Arduino programlamaya geçiyoruz. Şimdi, bilgisayarınızda Arduino IDE kurulu değilse, burada ne yapıyorsunuz! Resmi Arduino web sitesine gidin ve Arduino IDE'yi indirip yükleyin veya başka bir düzenleyicide de kodlayabilirsiniz, ancak bu başka bir gün için bir konu şimdilik Arduino IDE'ye bağlıyız. Şimdi Arduino Nano kullanıyoruz, bu yüzden ARAÇLAR> KARTLAR'a gidip orada ARDUINO NANO'yu seçerek Arduino Nano kartını seçtiğinizden emin olun, şimdi ARAÇLAR> İŞLEMCİ'ye giderek nano'nuzun sahip olduğu doğru işlemciyi seçin.ve oradayken, Arduino'nuzun PC'nizde bağlı olduğu portu da seçin. Arduino'yu kendisine bağlı 16 × 2 Alfanümerik LCD'yi sürmek ve hücrenin voltajını ve önceki bölümde açıklandığı gibi yük direncinden geçen akımı ölçmek için kullanıyoruz 16 × 2 sürücüsüne başlık dosyalarını bildirerek kodumuza başlıyoruz. Alfanümerik LCD ekran. Tamamen pişmiş ve servis edilen kodu sayfanın sonunda almak için bu bölümü atlayabilirsiniz, ancak kodu küçük bölümlere ayırırken ve açıklamaya çalışırken bizimle kalın.
Artık başlık dosyası tanımlandığına göre, değişkenleri bildirmeye devam ediyoruz, voltaj ve akımı hesaplamak için kodda kullanacağız. Ayrıca LCD'yi sürmek için kullandığımız pinleri ve PWM çıkışı vermek için kullanacağımız pinleri tanımlamalı, hücre ve dirençten gelen analog voltajları bu bölümde de okumalıyız.
#Dahil etmek
Şimdi kurulum kısmına geliyor, Arduino'nuzu PC'nize her zaman bağlı tutmak ve Seri Monitörü kullanarak ilerlemeyi izlemek ve LCD ekranı buradan başlatmak istiyorsanız. Ayrıca 3 saniye boyunca ekranda "Pil Kapasitesi Test Devresi" karşılama mesajı gösterecektir.
geçersiz kurulum () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // İmleci ilk sütuna ve ilk satıra ayarlayın. lcd.print ("Pil Kapasitesi"); lcd.setCursor (0,1); lcd.print ("Test Devresi"); gecikme (3000); lcd.clear (); }
Artık Arduino PWM pinini Output olarak ilan etmemize gerek yok çünkü ana loopumuzda kullanacağımız AnalogWrite fonksiyonu bu kısımla ilgileniyor. Kodda o pin üzerine yazılacak PWM değerini tanımlamanız gerekir. Uygulamanızda gerekli olan deşarj akımına göre PWM değerini dikkatlice seçin. Çok fazla PWM değeri, Li-İyon hücresinde yüksek voltaj düşüşü ile yüksek akıma neden olur ve çok düşük PWM değeri, hücrenin deşarj süresinin yüksek olmasına neden olur. Ana döngü işlevinde, Arduino'nun 10 bitlik bir ADC'si olduğu için A0 ve A1 pinlerindeki gerilimleri okuyacağız, bu nedenle 0-1023 arasında değişen dijital çıkış değerleri almalıyız ve bunu tekrar ölçeklendirmemiz gerekir. 5.0 / 1023.0 ile çarparak 0-5V aralığı. Arduino Nano'nun 5V ve GND pinleri arasındaki voltajı kalibre edilmiş bir Voltmetre veya Multimetre kullanarak doğru şekilde ölçtüğünüzden emin olun, çünkü düzenlenmiş voltaj çoğu zaman tam olarak 5.0V değildir ve bu referans voltajındaki küçük bir fark bile sürünen hatalara neden olabilir. voltaj okumalarında doğru voltajı ölçün ve yukarıda verilen çarpanda 5.0'ı değiştirin.
Şimdi kodun mantığını açıklamak için, hücrenin voltajını sürekli ölçüyoruz ve hücre voltajı kodda tarafımızdan belirtilen üst sınırın üzerindeyse, hata mesajı LCD'de gösterilerek hücrenin olup olmadığını size bildirir. aşırı yüklenmiş veya bağlantıda bir sorun var ve MOSFET geçit pimine giden güç, yük direncinden akım geçmeyecek şekilde durduruldu. Toplam şarj kapasitesini hesaplayabilmeniz için hücrenizi kapasite test panosuna bağlamadan önce tamamen şarj etmeniz çok önemlidir.
analogWrite (MOSFET_Pin, PWM_VALUE); // analog pin üzerindeki girişi oku 0: int sensorValue_voltage_Cell = analogRead (A0); // Analog okumayı (0 - 1023 arasında değişen) voltaja (0 - 5V) dönüştürün: float voltaj = sensorValue_voltage_Cell * (5.08 / 1023.0); Seri.print ("VOLTAJ:"); Serial.println (voltaj); // Burada voltaj Seri Monitör üzerine yazdırılıyor lcd.setCursor (0, 0); // İmleci ilk sütuna ve ilk satıra ayarlayın. lcd.print ("Voltaj:"); // Ekrandaki voltaj okumasını yazdır lcd.print (voltaj); gecikme (100); int sensorValue_Shunt_Resistor = analogRead (A1); şamandıra voltajı1 = sensörDeğeri_Shunt_Direnç * (5.08 / 1023.0); şamandıra akımı = voltaj1 / Direnç; Serial.print ("Geçerli:"); Serial.println (güncel); lcd.setCursor (0, 1);// İmleci ilk sütuna ve ikinci satıra ayarlayın (sayma 0'dan başlar!). lcd.print ("Geçerli:"); lcd.print (güncel);
Şimdi, hücre voltajı bizim belirlediğimiz üst ve alt voltaj sınırları içinde ise Nano, Akım değerini yukarıda belirtilen yöntemle okuyacak ve ölçümler sırasında geçen süre ile çarpacak ve daha önce tanımladığımız kapasite değişkeninde depolayacak mAh birimlerinde. Tüm bu süre boyunca gerçek zamanlı akım ve gerilim değerleri ekli LCD ekranda görüntülenir ve isterseniz bunları seri monitörde de görebilirsiniz. Hücrenin deşarj işlemi programda belirlediğimiz alt sınırın altına düşene kadar devam edecek ve ardından hücrenin toplam kapasitesi LCD ekranda görüntülenecek ve MOSFET geçidi çekilerek direnç üzerinden akım akışı durdurulacaktır. düşük pin.
else if (voltaj> BAT_LOW && voltaj <BAT_HIGH) {// Pil voltajının güvenli sınır içinde olup olmadığını kontrol edin millisPassed = millis () - previousMillis; mA = akım * 1000.0; Kapasite = Kapasite + (mA * (milisPassed / 3600000.0)); // 1 Saat = 3600000ms mAh birimlerine dönüştürmek için previousMillis = millis (); gecikme (1000); lcd.clear (); }
Doğruluk İyileştirmeleri
Elbette voltaj ve akımı okumak için yeterince iyi bir yoldur, ancak mükemmel değildir. Gerçek gerilim ile ölçülen ADC gerilimi arasındaki ilişki doğrusal değildir ve bu gerilim ve akımların ölçümlerinde bazı hatalara neden olacaktır.
Sonucun doğruluğunu artırmak istiyorsanız, bilinen çeşitli gerilim kaynaklarını bir grafiğe uygulayarak elde ettiğiniz ADC değerlerini çizmeli ve ardından istediğiniz yöntemi kullanarak çarpan denklemini belirlemelisiniz. Bu şekilde, doğruluk artırılacak ve gerçek sonuçlara çok yaklaşacaksınız.
Ayrıca, kullandığımız MOSFET mantık düzeyinde bir MOSFET değildir, bu nedenle mevcut kanalı tam olarak açmak için 7V'den fazlasına ihtiyaç duyar ve doğrudan ona 5V uygularsak, mevcut okumalar yanlış olur. Ancak 12V besleme kullanımını ortadan kaldırmak ve Arduino'nuzla sahip olduğunuz 5V mantık seviyeleri ile doğrudan çalışmak için mantık seviyesi IRL520N N-Kanal MOSFET'i kullanabilirsiniz.
Devre Oluşturma ve Test Etme
Şimdi devremizin farklı bölümlerini bir breadboard üzerinde tasarlayıp test ederken ve hepsinin amaçlandığı gibi çalıştığından emin olduktan sonra, devreyi test etmek için çok daha profesyonel ve güvenilir bir yöntem olduğu için tüm bileşenleri birlikte lehimlemek için bir Perfboard kullanıyoruz.. İsterseniz, kendi PCB'nizi AutoCAD Eagle, EasyEDA veya Proteus ARES veya istediğiniz herhangi bir yazılım üzerinde tasarlayabilirsiniz. Arduino Nano, 16 × 2 Alfanümerik LCD ve LM741 OPAMP, daha sonra yeniden kullanılabilmeleri için Dişi Bergstik üzerine monte edilmiştir.
Sabit Yük Akım Devresi için bir DC Varil Jakı konektörü üzerinden 12V besleme sağladım ve ardından LM7805 yardımıyla Nano ve LCD ekran için 5V sağladım. Şimdi devreye güç verin ve düzeltici kabı LCD ekranın kontrast seviyesini ayarlamak için ayarlayın, şimdi LCD ekranda Hoş Geldiniz Mesajını görmelisiniz ve ardından hücrenin voltaj seviyesi çalışma aralığında ise, o zaman akım -Pilden gelen voltaj ve akım burada görüntülenecektir.
Bu, kullandığınız hücrenin kapasitesini hesaplamak için çok basit bir testtir ve verileri alıp bir Excel dosyasında saklayarak, veri işleme ve grafiksel yöntemlerle görselleştirme yapmak için geliştirilebilir. Günümüzün veri odaklı dünyasında, bu hücre deşarj eğrisi, NI LabVIEW, MATLAB Simulink, vb. Gibi Yazılımlar kullanılarak gerçek dünya testleri yapılmadan pilin yüklenme durumu altındaki tepkisini simüle etmek ve görmek için pilin doğru tahmin modellerini oluşturmak için kullanılabilir.. ve çok daha fazla uygulama sizi bekliyor. Bu projenin eksiksiz çalışmasını aşağıdaki videoda bulabilirsiniz. Bu proje hakkında herhangi bir sorunuz varsa, lütfen aşağıdaki yorum bölümüne yazın veya forumlarımızı kullanın. Gidin ve onunla eğlenin ve isterseniz buradan nasıl ilerleyeceğiniz konusunda aşağıdaki yorumlar bölümünde size rehberlik edebiliriz. O zamana kadar Adios !!!