- Mengapa Kita Membutuhkan Penguji Kapasitas Baterai?
- Komponen Diperlukan
- Diagram Sirkuit Penguji Kapasitas Baterai Arduino
- Program Arduino untuk Mengukur Kapasitas Baterai
- Peningkatan Akurasi
- Membangun dan Menguji Sirkuit
Dengan kemajuan teknologi, gadget dan peralatan elektronik kita menjadi semakin kecil dengan aplikasi yang lebih fungsional dan kompleks. Dengan peningkatan kompleksitas ini, kebutuhan daya rangkaian juga meningkat dan dalam upaya kami untuk membuat perangkat sekecil dan portabel mungkin, kami membutuhkan baterai yang dapat memberikan arus tinggi untuk jangka waktu yang lama dan pada saat yang sama. waktu, beratnya lebih ringan sehingga perangkat harus tetap portabel. Jika Anda ingin mengetahui lebih banyak tentang baterai, Anda juga dapat membaca artikel ini tentang istilah dasar baterai.
Dari berbagai jenis baterai yang tersedia, baterai Asam Timbal, baterai Ni-Cd, dan baterai Ni-MH tidak cocok karena lebih berat atau tidak dapat menyediakan arus yang diperlukan untuk aplikasi kita, hal ini membuat kita memiliki baterai lithium-ion yang dapat memberikan arus tinggi sekaligus menjaga bobot tetap rendah dan ukurannya tetap kompak. Sebelumnya kami juga telah membangun modul pengisi daya dan booster baterai 18650 dan sistem pemantauan baterai berbasis IoT, Anda dapat memeriksanya jika tertarik.
Mengapa Kita Membutuhkan Penguji Kapasitas Baterai?
Ada banyak vendor baterai di pasar yang menjual baterai Li-ion versi knock off yang murah yang mengklaim spesifikasi yang aneh dengan harga yang sangat rendah yang terlalu bagus untuk menjadi kenyataan. Ketika Anda membeli sel-sel ini, sel-sel tersebut tidak berfungsi sama sekali atau jika berfungsi, kapasitas pengisian daya atau aliran arus sangat rendah sehingga tidak dapat berfungsi sama sekali dengan aplikasi. Jadi bagaimana cara menguji baterai lithium jika sel tersebut bukan salah satu dari tiruan murah ini? Salah satu metodenya adalah mengukur tegangan rangkaian terbuka tanpa beban dan pembebanan tetapi ini sama sekali tidak dapat diandalkan.
Jadi kita akan membangun penguji kapasitas baterai 18650 untuk Li-Ion 18650 Cell yang akan melepaskan sel 18650 yang terisi penuh melalui resistor sambil mengukur arus yang mengalir melalui resistor untuk menghitung kapasitasnya. Jika Anda tidak mendapatkan kapasitas baterai yang diklaim sementara voltase sel berada dalam batas yang ditentukan, maka sel itu rusak dan Anda tidak boleh menggunakannya karena Status Pengisian sel akan habis dengan kecepatan yang sangat cepat di bawah beban, menciptakan a loop arus lokal jika digunakan dalam paket baterai yang mengakibatkan pemanasan dan kemungkinan kebakaran. Jadi mari kita langsung ke dalamnya.
Komponen Diperlukan
- Arduino Nano
- LCD Karakter 16x2
- IC OPAMP LM741
- 2.2Ω, Resistor 5Watt
- 7805 IC Regulator Tegangan Positif
- Catu Daya 12V
- 10kΩ Potensiometer Pemangkas
- Kapasitor 0.47uF
- 33kΩ Resistor
- Konektor Jack Barel Daya DC
- Terminal Sekrup PCB
- IC MOSFET N-Channel IRF540N
- Perfboard
- Kit Solder
- Heat Sinks
Diagram Sirkuit Penguji Kapasitas Baterai Arduino
Diagram rangkaian lengkap untuk penguji kapasitas baterai 18650 ditunjukkan di bawah ini. Penjelasan rangkaiannya adalah sebagai berikut-
Unit Komputasi dan Tampilan:
Rangkaian ini dibagi lagi menjadi dua bagian, pertama adalah supply 5V rendah untuk Arduino Nano dan layar LCD Alfanumerik 16x2 dan koneksinya untuk menampilkan hasil pengukuran arus dan tegangan secara real-time. Rangkaian ini didukung oleh catu daya 12V menggunakan SMPS atau Anda dapat menggunakan baterai 12V serta arus maksimin akan sekitar 60-70mA untuk menyalakan Arduino dan layar LCD.
Untuk menurunkan tegangan ke 5V, kami akan menggunakan yang merupakan regulator tegangan linier yang dapat mengambil hingga 35V dan membutuhkan setidaknya catu daya input 7,5V untuk menyediakan pasokan 5V yang diatur dan tegangan berlebih dibuang sebagai panas maka jika input Anda tegangan LM7805 IC Regulator Tegangan lebih dari 12V, maka pertimbangkan untuk menambahkan heat sink agar tidak rusak. LCD didukung dengan pasokan 5V dari 7805 dan terhubung ke Arduino dan bekerja dalam mode 4-bit. Kami juga menambahkan potensiometer penghapus 10k Ω untuk mengontrol kontras layar LCD.
Rangkaian Arus Beban Konstan:
Kedua adalah rangkaian beban arus konstan berbasis PWM untuk membuat arus beban yang mengalir melalui resistor dapat dikontrol oleh kami dan konstan sehingga tidak ada kesalahan yang merambat karena variasi arus dengan waktu saat tegangan sel turun. Ini terdiri dari IC OPAMP LM741 dan MOSFET N-Channel IRF540N, yang mengontrol arus yang mengalir melalui MOSFET dengan menyalakan dan mematikan MOSFET sesuai dengan level tegangan yang kami atur.
Op-amp bekerja dalam mode komparator,jadi dalam mode ini. output op-amp akan tinggi jika tegangan pin non-pembalik op-amp lebih tinggi dari pin pembalik. Demikian pula jika tegangan pada pin pembalik op-amp lebih tinggi dari pada pin non-pembalik, maka keluaran dari op-amp akan ditarik ke bawah. Pada rangkaian yang diberikan, level tegangan pin non-pembalik dikendalikan oleh pin D9 PWM dari Arduino NANO, yang beralih pada frekuensi 500Hz yang kemudian dilewatkan melalui filter rangkaian RC low pass dengan nilai Resistansi 33kΩ dan Kapasitor yang memiliki kapasitansi 0,47 uF, untuk memberikan sinyal DC yang hampir konstan pada pin non-pembalik. Pin pembalik terhubung ke resistor beban, yang membaca tegangan melintasi resistor dan GND umum. Pin keluaran OPAMP terhubung ke terminal gerbang MOSFET untuk menyalakan atau mematikannya.OPAMP akan mencoba membuat tegangan pada kedua terminalnya sama dengan mengganti MOSFET yang terhubung sehingga arus yang mengalir melalui resistor akan sebanding dengan nilai PWM yang telah Anda atur pada pin D9 NANO. Dalam proyek ini, arus maksimum, saya telah membatasi rangkaian saya menjadi 1,3A yang masuk akal karena sel yang saya miliki adalah 10A sebagai peringkat arus maksimumnya
Pengukuran Tegangan:
Tegangan maksimum sel Li-Ion yang terisi penuh khas adalah 4.1V hingga 4.3V yang kurang dari batas tegangan 5V dari pin input Analog Arduino Nano yang memiliki resistansi internal lebih dari 10kΩ di dalamnya sehingga kita dapat langsung menghubungkan Sel ke salah satu pin input analog tanpa mengkhawatirkan arus yang mengalir melaluinya. Jadi, dalam proyek ini, kita perlu mengukur tegangan sel agar kita dapat menentukan apakah sel berada dalam rentang operasi tegangan yang benar dan apakah sudah habis atau tidak.
Kita perlu mengukur arus yang mengalir melalui resistor juga untuk itu kita tidak dapat menggunakan shunt saat ini karena kompleksitas rangkaian akan meningkat dan meningkatkan resistansi di jalur beban akan menurunkan laju pelepasan sel. Menggunakan resistor shunt yang lebih kecil akan membutuhkan rangkaian penguat tambahan untuk membuat pembacaan tegangan yang berasal darinya, dapat dibaca oleh Arduino.
Jadi kita langsung membaca tegangan melintasi resistor beban dan kemudian menggunakan Hukum Ohm membagi tegangan yang diperoleh dengan nilai resistor beban untuk mendapatkan arus yang mengalir melaluinya. Terminal negatif resistor terhubung langsung ke GND, sehingga kita dapat dengan aman mengasumsikan bahwa tegangan yang kita baca pada resistor adalah penurunan tegangan pada resistor.
Program Arduino untuk Mengukur Kapasitas Baterai
Sekarang setelah menyelesaikan rangkaian perangkat keras, kita beralih ke pemrograman Arduino. Sekarang jika Anda belum menginstal Arduino IDE di PC Anda, apa yang Anda lakukan di sini! Pergi ke situs web resmi Arduino dan unduh dan instal Arduino IDE atau Anda dapat membuat kode di editor lain juga tetapi itu adalah topik untuk hari lain untuk saat ini kami tetap menggunakan Arduino IDE. Sekarang kami menggunakan Arduino Nano, jadi pastikan Anda telah memilih papan Arduino Nano dengan masuk ke TOOLS> BOARDS dan Memilih ARDUINO NANO di sana, sekarang pilih prosesor yang benar milik nano Anda dengan masuk ke TOOLS> PROCESSORdan saat Anda berada di sana juga pilih port yang terhubung ke Arduino Anda di PC Anda. Kami menggunakan Arduino untuk menggerakkan LCD Alfanumerik 16x2 yang terhubung dengannya dan untuk mengukur tegangan sel dan arus yang mengalir melalui resistor beban seperti yang dijelaskan di bagian sebelumnya, kami memulai kode kami dengan mendeklarasikan file header untuk menggerakkan 16x2 Layar LCD alfanumerik. Anda dapat melewati bagian ini untuk mendapatkan kode yang benar-benar dimasak dan disajikan di akhir halaman tetapi tetap bersama kami sementara kami membagi kode menjadi beberapa bagian kecil dan mencoba menjelaskan.
Sekarang setelah file header ditentukan, kita melanjutkan mendeklarasikan variabel, kita akan gunakan dalam kode untuk menghitung tegangan dan arus. Juga, kita harus menentukan pin yang kita gunakan untuk menggerakkan LCD dan pin yang akan kita gunakan untuk memberikan keluaran PWM dan membaca tegangan analog yang berasal dari sel dan resistor juga di bagian ini.
#include
Sekarang datang ke bagian penyiapan, Jika Anda ingin agar Arduino Anda tetap terhubung ke PC Anda sepanjang waktu dan memantau kemajuan menggunakan Serial Monitor dan menginisialisasi layar LCD di sini. Ini juga akan menampilkan pesan selamat datang "Sirkuit Penguji Kapasitas Baterai" di layar selama 3 detik.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Atur kursor pada kolom pertama dan baris pertama. lcd.print ("Kapasitas Baterai"); lcd.setCursor (0,1); lcd.print ("Sirkuit Penguji"); penundaan (3000); lcd.clear (); }
Sekarang kita tidak perlu mendeklarasikan pin PWM Arduino sebagai Output karena fungsi AnalogWrite yang akan kita gunakan dalam loop utama menangani bagian ini. Anda perlu menentukan nilai PWM yang akan ditulis pada pin itu dalam kode. Pilih nilai PWM dengan hati-hati sesuai dengan arus pelepasan yang diperlukan dalam aplikasi Anda. Nilai PWM yang terlalu tinggi akan menghasilkan arus yang tinggi dengan penurunan tegangan yang tinggi pada sel Li-Ion dan nilai PWM yang terlalu rendah akan mengakibatkan waktu pemakaian sel yang tinggi. Dalam fungsi loop utama, kita akan membaca tegangan pada pin A0 dan A1 karena Arduino memiliki ADC 10-bit di papan sehingga kita harus mendapatkan nilai keluaran digital mulai dari 0-1023 yang perlu kita skala kembali ke Rentang 0-5V dengan mengalikannya dengan 5.0 / 1023.0. Pastikan Anda mengukur dengan benar tegangan antara pin 5V dan GND dari Arduino Nano menggunakan Voltmeter atau Multimeter yang dikalibrasi karena sebagian besar tegangan yang diatur tidak persis 5.0V dan bahkan perbedaan kecil dalam tegangan referensi ini akan mengakibatkan kesalahan merayap. dalam pembacaan tegangan jadi ukur tegangan yang benar dan ganti 5.0 di pengali yang diberikan di atas.
Sekarang untuk menjelaskan logika kode, kami terus mengukur tegangan sel dan jika tegangan sel melebihi batas atas yang ditentukan oleh kami dalam kode, maka pesan kesalahan ditampilkan pada LCD untuk memberi tahu Anda jika sel tersebut overcharged atau ada yang salah dengan koneksi dan power ke pin gerbang MOSFET dihentikan sehingga tidak ada arus yang bisa mengalir melalui resistor beban. Sangat penting bagi Anda untuk mengisi penuh sel Anda terlebih dahulu sebelum menghubungkannya ke papan penguji kapasitas sehingga Anda dapat menghitung total kapasitas pengisiannya.
analogWrite (MOSFET_Pin, PWM_VALUE); // baca input pada pin analog 0: int sensorValue_voltage_Cell = analogRead (A0); // Ubah pembacaan analog (dari 0 - 1023) menjadi tegangan (0 - 5V): float voltage = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("TEGANGAN:"); Serial.println (voltase); // Di sini tegangan sedang dicetak pada Serial Monitor lcd.setCursor (0, 0); // Atur kursor pada kolom pertama dan baris pertama. lcd.print ("Tegangan:"); // Cetak pembacaan voltase pada layar lcd.print (voltase); penundaan (100); int sensorValue_Shunt_Resistor = analogRead (A1); float voltage1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); arus apung = voltage1 / Resistor; Serial.print ("Saat Ini:"); Serial.println (saat ini); lcd.setCursor (0, 1);// Atur kursor pada kolom pertama dan baris kedua (penghitungan dimulai dari 0!). lcd.print ("Saat Ini:"); lcd.print (saat ini);
Sekarang, jika tegangan sel berada dalam batas tegangan atas dan bawah yang ditentukan oleh kami maka Nano akan membaca nilai Arus dengan metode yang ditentukan di atas dan mengalikannya dengan waktu yang berlalu selama pengukuran dan menyimpannya dalam variabel kapasitas yang kami tentukan sebelumnya dalam unit mAh. Selama ini, nilai arus dan voltase real-time ditampilkan di layar LCD yang terpasang, dan jika Anda mau, Anda juga dapat melihatnya di monitor serial. Proses pengosongan sel akan berlanjut hingga tegangan sel mencapai di bawah batas bawah yang ditentukan oleh kami dalam program dan kemudian total kapasitas sel ditampilkan di layar LCD dan aliran arus melalui resistor dihentikan dengan menarik gerbang MOSFET pin rendah.
else if (voltage> BAT_LOW && voltage <BAT_HIGH) {// Periksa apakah voltase baterai berada dalam batas aman millisPassed = millis () - beforeMillis; mA = arus * 1000.0; Kapasitas = Kapasitas + (mA * (millisPassed / 3600000.0)); // 1 Jam = 3600000ms untuk mengubahnya menjadi unit mAh beforeMillis = millis (); penundaan (1000); lcd.clear (); }
Peningkatan Akurasi
Ini, tentu saja, cara yang cukup baik untuk membaca tegangan dan arus, tetapi itu tidak sempurna. Hubungan antara tegangan aktual dan tegangan ADC terukur tidak linier dan ini akan menyebabkan beberapa kesalahan dalam pengukuran tegangan dan arus.
Jika Anda ingin meningkatkan keakuratan hasil, Anda harus memplot nilai ADC yang Anda peroleh dari penerapan berbagai sumber tegangan yang diketahui pada grafik dan kemudian menentukan persamaan pengali dari grafik tersebut dengan menggunakan metode apa pun yang Anda suka. Dengan cara ini, akurasi akan ditingkatkan, dan Anda akan mendekati hasil sebenarnya.
Selain itu, MOSFET yang kami gunakan bukanlah MOSFET tingkat logika, sehingga membutuhkan lebih dari 7V untuk sepenuhnya menghidupkan saluran saat ini dan jika kami menerapkan 5V langsung ke sana, pembacaan saat ini tidak akan akurat. Tetapi Anda dapat menggunakan level logika IRL520N N-Channel MOSFET untuk menghilangkan penggunaan suplai 12V dan langsung bekerja dengan level logika 5V yang Anda miliki dengan Arduino Anda.
Membangun dan Menguji Sirkuit
Sekarang ketika kami merancang dan menguji berbagai bagian sirkuit kami pada papan tempat memotong roti dan setelah memastikan semuanya berfungsi sebagaimana mestinya, kami menggunakan Perfboard untuk menyolder semua komponen bersama-sama karena ini adalah metode yang jauh lebih profesional dan andal untuk menguji sirkuit.. Jika mau, Anda dapat mendesain PCB Anda sendiri di AutoCAD Eagle, EasyEDA, atau Proteus ARES atau perangkat lunak lain yang Anda suka. Arduino Nano, LCD Alfanumerik 16x2, dan OPAMP LM741 dipasang pada Bergstik Wanita agar nantinya dapat digunakan kembali.
Saya telah menyediakan pasokan 12V melalui konektor DC Barrel Jack untuk Sirkuit Arus Beban Konstan dan kemudian dengan bantuan LM7805, disediakan 5V untuk layar Nano dan LCD. Sekarang nyalakan sirkuit dan sesuaikan pot pemangkas untuk mengatur tingkat kontras layar LCD, Anda harus melihat Pesan Selamat Datang di layar LCD sekarang, dan kemudian jika level tegangan sel berada dalam kisaran kerja, maka arusnya -tegangan dan arus dari baterai akan ditampilkan di sana.
Ini adalah tes yang sangat dasar untuk menghitung kapasitas sel yang Anda gunakan dan dapat ditingkatkan dengan mengambil data dan menyimpannya dalam file Excel untuk melakukan pemrosesan dan visualisasi data pos dengan metode grafis. Dalam dunia berbasis data saat ini, kurva pelepasan sel ini dapat digunakan untuk membangun model prediksi yang akurat dari baterai untuk mensimulasikan dan melihat respons baterai dalam kondisi pemuatan tanpa pengujian dunia nyata dengan menggunakan Perangkat Lunak seperti NI LabVIEW, MATLAB Simulink, dll..dan lebih banyak aplikasi menanti Anda. Anda dapat menemukan pekerjaan lengkap dari proyek ini di video di bawah ini. Jika Anda memiliki pertanyaan tentang proyek ini, silakan tulis di bagian komentar di bawah atau gunakan forum kami. Pergi dan bersenang-senanglah dengannya dan jika Anda mau, kami dapat memandu Anda di bagian komentar di bawah tentang bagaimana melanjutkan lebih jauh dari sini. Sampai saat itu Adios !!!