- Mengapa Kita Memerlukan Penguji Kapasiti Bateri?
- Komponen Diperlukan
- Rajah Litar Penguji Kapasiti Bateri Arduino
- Program Arduino untuk Mengukur Kapasiti Bateri
- Penambahbaikan Ketepatan
- Membina dan Menguji Litar
Dengan munculnya teknologi, alat dan peralatan elektronik kita menjadi semakin kecil dan lebih kecil dengan aplikasi yang lebih berfungsi dan kompleks. Dengan peningkatan kerumitan ini, keperluan daya litar juga meningkat dan dalam usaha kami menjadikan peranti sekecil dan sekerap mungkin, kami memerlukan bateri yang dapat memberikan arus tinggi untuk jangka waktu yang lama dan pada masa yang sama masa, timbang lebih sedikit sehingga peranti tetap mudah alih. Sekiranya anda ingin mengetahui lebih lanjut mengenai bateri, anda juga boleh membaca artikel ini mengenai terminologi asas bateri.
Dari pelbagai jenis bateri yang tersedia, bateri Asid Lead, bateri Ni-Cd, dan bateri Ni-MH tidak sesuai kerana beratnya lebih banyak atau tidak dapat memberikan arus yang diperlukan untuk aplikasi kami, ini memberi kami bateri lithium-ion yang dapat memberikan arus tinggi sambil menjaga berat badan tetap rendah dan kecil. Sebelumnya kami juga telah membina modul pengecas dan penggalak bateri 18650 dan sistem pemantauan bateri berasaskan IoT, anda boleh memeriksanya jika berminat.
Mengapa Kita Memerlukan Penguji Kapasiti Bateri?
Terdapat banyak vendor bateri di pasaran yang menjual versi bateri Li-ion murah yang menuntut spesifikasi pelik dengan harga yang sangat rendah yang terlalu bagus untuk menjadi kenyataan. Apabila anda membeli sel-sel ini sama ada ia tidak berfungsi sama sekali atau jika benar, kapasiti cas atau aliran semasa sangat rendah sehingga sama sekali tidak dapat berfungsi dengan aplikasi. Jadi bagaimana untuk menguji bateri litium jika sel bukan salah satu tiruan murah ini? Salah satu kaedahnya adalah mengukur voltan litar terbuka tanpa beban dan pemuatan tetapi ini sama sekali tidak boleh dipercayai.
Oleh itu, kita akan membina penguji kapasiti bateri 18650 untuk Sel Li-Ion 18650 yang akan melepaskan sel 18650 yang dicas sepenuhnya melalui perintang sambil mengukur arus yang mengalir melalui perintang untuk mengira kapasitinya. Sekiranya anda tidak mendapat kapasiti bateri yang dituntut semasa voltan sel berada dalam had yang ditentukan, maka sel itu salah dan anda tidak boleh menggunakannya kerana keadaan Pengisian sel akan habis pada kadar yang sangat cepat di bawah beban, mewujudkan gelung semasa tempatan jika digunakan dalam pek bateri yang mengakibatkan pemanasan dan kemungkinan terbakar. Oleh itu, mari kita melompat ke dalamnya.
Komponen Diperlukan
- Arduino Nano
- LCD Aksara 16 × 2
- LM741 OPAMP IC
- 2.2Ω, Perintang 5Watt
- 7805 IC Pengatur Voltan Positif
- Bekalan Kuasa 12V
- Potensiometer Pemangkas 10kΩ
- Kapasitor 0.47uF
- Perintang 33kΩ
- Penyambung Jack Power Barrel DC
- Terminal Skru PCB
- IRF540N N-Channel Mosfet IC
- Papan tulis
- Kit Pematerian
- Sink Panas
Rajah Litar Penguji Kapasiti Bateri Arduino
Gambarajah litar lengkap untuk penguji kapasiti bateri 18650 ditunjukkan di bawah. Penjelasan mengenai litar adalah seperti berikut-
Unit Pengiraan dan Paparan:
Litar ini dibahagikan lagi kepada dua bahagian, pertama adalah bekalan 5V rendah untuk Arduino Nano dan skrin LCD Alphanumerik 16 × 2 dan sambungannya untuk memaparkan hasil pengukuran arus dan voltan dalam masa nyata. Litar ini dikuasakan oleh bekalan kuasa 12V menggunakan SMPS atau anda boleh menggunakan bateri 12V dan arus maksimum ialah sekitar 60-70mA untuk menghidupkan skrin Arduino dan LCD.
Untuk menurunkan voltan ke 5V, kami akan menggunakan yang merupakan pengatur voltan linier yang dapat mengambil hingga 35V dan memerlukan sekurang-kurangnya 7.5V bekalan kuasa input untuk menyediakan bekalan 5V yang diatur dan voltan berlebihan akan hilang sebagai haba maka jika input anda voltan LM7805 Voltage Regulator IC lebih daripada 12V, kemudian pertimbangkan untuk menambahkan pendingin supaya tidak rosak. LCD dikuasakan dengan bekalan 5V dari 7805 dan disambungkan ke Arduino dan berfungsi dalam mod 4-bit. Kami juga telah menambahkan potensiometer pengelap 10k Ω untuk mengawal kontras paparan LCD.
Litar Arus Beban Tetap:
Kedua adalah litar beban arus tetap berdasarkan PWM untuk menjadikan arus beban yang mengalir melalui perintang dapat dikawal oleh kami dan tetap sehingga tidak ada ralat yang merayap disebabkan oleh perubahan arus dengan masa ketika voltan sel turun. Ia terdiri daripada LM741 OPAMP IC dan IRF540N N-Channel MOSFET, yang mengawal arus yang mengalir melalui MOSFET dengan menghidupkan dan mematikan MOSFET mengikut tahap voltan yang ditetapkan oleh kami.
Op-amp berfungsi dalam mod pembanding,jadi dalam mod ini. output op-amp akan tinggi setiap kali voltan pin bukan pembalik op-amp lebih tinggi daripada pin pembalik. Begitu juga, jika voltan pada pin pembalik op-amp lebih tinggi daripada pin bukan pembalik, output op-amp akan ditarik ke bawah. Pada litar yang diberikan, tahap voltan pin yang tidak terbalik dikendalikan oleh pin D9 PWM dari Arduino NANO, yang beralih pada frekuensi 500Hz yang kemudian dilalui melalui saringan litar RC lulus rendah dengan nilai Rintangan 33kΩ dan Kapasitor yang mempunyai kapasitansi 0,47 uF, untuk memberikan isyarat DC yang hampir malar pada pin bukan pembalik. Pin pembalik disambungkan ke perintang beban, yang membaca voltan merentas perintang dan GND biasa. Pin output OPAMP disambungkan ke terminal gerbang MOSFET untuk menghidupkan atau mematikannya.OPAMP akan berusaha menjadikan voltan pada kedua-dua terminal sama dengan menukar MOSFET yang disambungkan sehingga arus yang mengalir melalui perintang akan sebanding dengan nilai PWM yang telah anda tetapkan pada pin D9 NANO. Dalam projek ini, arus maksimum, saya telah mengehadkan litar saya hingga 1.3A yang wajar kerana sel yang saya miliki adalah 10A sebagai penilaian arus maksimumnya
Pengukuran voltan:
Voltan Maksimum sel Li-Ion yang dicas penuh sepenuhnya ialah 4.1V hingga 4.3V yang lebih rendah daripada had voltan 5V dari pin input Analog Arduino Nano yang mempunyai rintangan dalaman lebih dari 10kΩ di dalamnya sehingga kita dapat terus menghubungkan Masukkan ke mana-mana pin input analog tanpa perlu risau arus yang mengalir melaluinya. Oleh itu, dalam projek ini, kita perlu mengukur voltan sel supaya kita dapat menentukan sama ada sel berada dalam julat operasi voltan yang betul dan jika ia habis sepenuhnya atau tidak.
Kita perlu mengukur arus yang mengalir melalui perintang juga untuk itu kita tidak dapat menggunakan arus semasa kerana kerumitan litar akan meningkat dan rintangan yang meningkat di jalan beban akan menurunkan kadar pelepasan sel. Menggunakan perintang shunt yang lebih kecil akan memerlukan litar penguat tambahan untuk membuat bacaan voltan daripadanya, dapat dibaca oleh Arduino.
Oleh itu, kita secara langsung membaca voltan melintasi perintang beban dan kemudian menggunakan Hukum Ohm membahagi voltan yang diperoleh dengan nilai perintang beban untuk mendapatkan arus yang mengalir melaluinya. Terminal negatif perintang disambungkan terus ke GND, jadi kita dapat dengan selamat menganggap bahawa voltan yang kita baca pada perintang adalah penurunan voltan pada perintang.
Program Arduino untuk Mengukur Kapasiti Bateri
Sekarang setelah menyelesaikan rangkaian perkakasan, kami beralih ke pengaturcaraan Arduino. Sekiranya anda tidak memasang Arduino IDE pada PC anda, apa yang anda lakukan di sini! Pergi ke laman web Arduino rasmi dan muat turun dan pasang Arduino IDE atau anda juga boleh membuat kod dalam editor lain tetapi itu adalah topik untuk hari lain untuk sekarang kami berpegang pada Arduino IDE. Sekarang kita menggunakan Arduino Nano, jadi pastikan anda telah memilih papan Arduino Nano dengan pergi ke ALAT> PAPAN dan Pilih ARDUINO NANO di sana, sekarang pilih pemproses yang betul yang dimiliki nano anda dengan pergi ke ALAT> PROSESORdan semasa anda berada di sana, pilih juga port yang disambungkan oleh Arduino pada PC anda. Kami menggunakan Arduino untuk memacu LCD Alphanumerik 16 × 2 yang disambungkan kepadanya dan untuk mengukur voltan sel dan arus yang mengalir melalui perintang beban seperti yang dijelaskan di bahagian sebelumnya, kami memulakan kod kami dengan menyatakan fail tajuk untuk memacu 16 × 2 Skrin LCD alfanumerik. Anda boleh melangkau bahagian ini untuk mendapatkan kod yang dimasak dan disajikan sepenuhnya di hujung halaman tetapi tetaplah bersama kami sementara kami membahagikan kod tersebut kepada bahagian kecil dan cuba menerangkan.
Setelah fail tajuk ditentukan, kita terus menyatakan pemboleh ubah, kita akan menggunakan kod untuk mengira voltan dan arus. Juga, kita harus menentukan pin yang kita gunakan untuk menggerakkan LCD dan pin yang akan kita gunakan untuk memberikan output PWM dan membaca voltan analog yang berasal dari sel dan perintang juga di bahagian ini.
#sertakan
Sekarang datang ke bahagian persediaan, Jika anda ingin memastikan Arduino anda tetap terhubung ke PC anda sepanjang masa dan memantau kemajuannya menggunakan Serial Monitor dan memulakan skrin LCD di sini. Ini juga akan memaparkan pesan selamat datang "Battery Capacity Tester Circuit" di layar selama 3 detik.
persediaan tidak sah () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Tetapkan kursor pada lajur pertama dan baris pertama. lcd.print ("Kapasiti Bateri"); lcd.setCursor (0,1); lcd.print ("Litar Penguji"); kelewatan (3000); lcd.clear (); }
Sekarang kita tidak perlu menyatakan pin Arduino PWM sebagai Output sebagai fungsi AnalogWrite yang akan kita gunakan dalam gelung utama kita mengurus bahagian ini. Anda perlu menentukan nilai PWM yang akan ditulis pada pin tersebut dalam kod. Pilih nilai PWM dengan berhati-hati sesuai dengan arus pelepasan yang diperlukan dalam aplikasi anda. Nilai PWM yang terlalu banyak akan menghasilkan arus tinggi dengan kejatuhan voltan tinggi dalam sel Li-Ion dan nilai PWM yang terlalu rendah akan menghasilkan masa pelepasan sel yang tinggi. Dalam fungsi gelung utama, kita akan membaca voltan pada pin A0 dan A1 kerana Arduino mempunyai ADC 10-bit di atasnya maka kita harus mendapatkan nilai output digital dari 0-1023 yang kita perlu skala kembali ke Julat 0-5V dengan mengalikannya dengan 5.0 / 1023.0. Pastikan anda mengukur voltan antara pin 5V dan GND Arduino Nano dengan betul menggunakan Voltmeter atau Multimeter yang dikalibrasi kerana kebanyakan kali voltan yang diatur tidak tepat 5.0V dan bahkan perbezaan kecil dalam voltan rujukan ini akan mengakibatkan kesalahan merayap dalam bacaan voltan jadi ukur voltan yang betul dan ganti 5.0 dalam pengganda yang diberikan di atas.
Sekarang untuk menjelaskan logik kod, kami terus mengukur voltan sel dan jika voltan sel melebihi had atas yang ditentukan oleh kami dalam kod, maka mesej ralat ditunjukkan di LCD untuk memberitahu anda jika sel tersebut berlebihan atau ada yang tidak kena dengan sambungan dan kuasa ke pin gerbang MOSFET dihentikan sehingga tidak ada arus yang dapat mengalir melalui perintang beban. Penting untuk anda mengecas sepenuhnya sel anda terlebih dahulu sebelum menyambungkannya ke papan penguji kapasiti supaya anda dapat mengira jumlah kapasiti casnya.
analogWrite (MOSFET_Pin, PWM_VALUE); // baca input pada pin analog 0: int sensorValue_voltage_Cell = analogRead (A0); // Tukarkan bacaan analog (yang berubah dari 0 - 1023) ke voltan (0 - 5V): voltan apungan = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("VOLTAGE:"); Serial.println (voltan); // Di sini voltan dicetak pada Serial Monitor lcd.setCursor (0, 0); // Tetapkan kursor pada lajur pertama dan baris pertama. lcd.print ("Voltan:"); // Cetak bacaan voltan pada layar lcd.print (voltan); kelewatan (100); int sensorValue_Shunt_Resistor = analogRead (A1); voltan apungan1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); arus apungan = voltan1 / Perintang; Serial.print ("Semasa:"); Serial.println (semasa); lcd.setCursor (0, 1);// Tetapkan kursor pada lajur pertama dan baris kedua (pengiraan bermula pada 0!). lcd.print ("Semasa:"); lcd.print (semasa);
Sekarang, jika voltan sel berada dalam had voltan atas dan bawah yang ditentukan oleh kami, maka Nano akan membaca nilai Semasa dengan kaedah yang dinyatakan di atas dan mengalikannya dengan masa yang berlalu semasa pengukuran dan menyimpannya dalam pemboleh ubah kapasiti yang kita tentukan sebelumnya dalam unit mAh. Selama ini, nilai arus dan voltan masa nyata ditunjukkan pada skrin LCD yang terpasang, dan jika anda mahu, anda juga dapat melihatnya pada monitor bersiri. Proses pengosongan sel akan berterusan sehingga voltan sel sampai di bawah had bawah yang ditentukan oleh kami dalam program dan kemudian jumlah kapasiti sel dipaparkan pada skrin LCD dan aliran arus melalui perintang dihentikan dengan menarik pintu MOSFET pin rendah.
jika tidak (voltan> BAT_LOW && voltan <BAT_HIGH) {// Periksa sama ada voltan bateri berada dalam had selamat milisPassed = millis () - sebelumnyaMillis; mA = semasa * 1000.0; Kapasiti = Kapasiti + (mA * (millisPassed / 3600000.0)); // 1 Jam = 3600000ms untuk menukarnya menjadi unit mAh sebelumnyaMillis = millis (); kelewatan (1000); lcd.clear (); }
Penambahbaikan Ketepatan
Ini adalah cara yang cukup baik untuk membaca voltan dan arus, tetapi tidak sempurna. Hubungan antara voltan sebenar dan voltan ADC yang diukur tidak linier dan ini akan mengakibatkan beberapa kesalahan dalam pengukuran voltan dan arus.
Sekiranya anda ingin meningkatkan ketepatan hasilnya, maka anda mesti memplot nilai ADC yang anda dapat dengan menerapkan pelbagai sumber voltan yang diketahui pada grafik dan kemudian menentukan persamaan pengganda darinya dengan menggunakan kaedah yang anda suka. Dengan cara ini, ketepatan akan ditingkatkan, dan anda akan hampir mencapai hasil sebenar.
Juga, MOSFET yang kami gunakan bukan MOSFET tahap logik, jadi ia memerlukan lebih dari 7V untuk menghidupkan sepenuhnya saluran semasa dan jika kami menerapkan 5V secara langsung padanya, pembacaan semasa tidak tepat. Tetapi anda boleh menggunakan tahap logik IRL520N N-Channel MOSFET untuk menghilangkan penggunaan bekalan 12V dan secara langsung berfungsi dengan tahap logik 5V yang anda miliki dengan Arduino anda.
Membina dan Menguji Litar
Sekarang semasa kami merancang dan menguji pelbagai bahagian litar kami di papan roti dan setelah memastikan semuanya berfungsi seperti yang diharapkan, kami menggunakan Perfboard untuk menyatukan semua komponen bersama-sama kerana ini adalah kaedah yang jauh lebih profesional dan boleh dipercayai untuk menguji litar. Sekiranya anda mahu, anda boleh merancang PCB anda sendiri di AutoCAD Eagle, EasyEDA, atau Proteus ARES atau perisian lain yang anda suka. Arduino Nano, 16 × 2 Alphanumeric LCD, dan LM741 OPAMP dipasang pada Bergstik Wanita supaya ia dapat digunakan semula kemudian.
Saya telah menyediakan bekalan 12V melalui penyambung Jack Barrel DC untuk Litar Arus Beban Konstan dan kemudian dengan bantuan LM7805, 5V untuk skrin Nano dan LCD disediakan. Sekarang hidupkan litar dan sesuaikan periuk pemangkas untuk menetapkan tahap kontras pada skrin LCD, anda akan melihat Pesan Selamat Datang di skrin LCD sekarang, dan kemudian jika tahap voltan sel berada dalam julat kerja, maka arus -tegangan dan arus dari bateri akan dipaparkan di sana.
Ini adalah ujian yang sangat asas untuk mengira kapasiti sel yang anda gunakan dan ia dapat diperbaiki dengan mengambil data dan menyimpannya dalam fail Excel untuk melakukan pemprosesan data dan visualisasi data dengan kaedah grafik. Dalam dunia yang didorong oleh data hari ini, keluk pelepasan sel ini dapat digunakan untuk membangun model ramalan bateri yang tepat untuk mensimulasikan dan melihat tindak balas bateri dalam keadaan memuat tanpa ujian dunia nyata dengan menggunakan Perisian seperti NI LabVIEW, MATLAB Simulink, dll. dan banyak lagi aplikasi menanti anda. Anda boleh mendapatkan kerja lengkap projek ini dalam video di bawah. Sekiranya anda mempunyai pertanyaan mengenai projek ini, sila tuliskannya di bahagian komen di bawah atau gunakan forum kami. Pergi dan bersenang-senang dengannya dan jika anda mahu, kami boleh membimbing anda di bahagian komen di bawah mengenai cara untuk terus maju dari sini. Sehingga Adios !!!