- Bakit Kailangan Namin ang Tester ng Kapasidad sa Baterya?
- Kinakailangan ang Mga Bahagi
- Arduino Battery Capacity Tester Circuit Diagram
- Arduino Program upang Sukatin ang Kapasidad sa Baterya
- Mga Pagpapabuti ng Katumpakan
- Pagbuo at Pagsubok sa Circuit
Sa pag-usbong ng teknolohiya, ang aming mga elektronikong gadget at kasangkapan sa bahay ay nagiging mas maliit at mas maliit na may mas functional at kumplikadong mga application. Sa pagtaas ng pagiging kumplikado na ito, ang pangangailangan ng kuryente ng circuit ay tumaas din at sa aming pakikipagsapalaran na gawin ang aparato na maliit at bilang portable hangga't maaari, kailangan namin ng isang baterya na maaaring magbigay ng mataas na kasalukuyang para sa isang mahabang panahon at magkapareho oras, bigat nang mas mababa upang ang aparato ay dapat manatiling portable. Kung nais mong malaman ang tungkol sa mga baterya, maaari mo ring basahin ang artikulong ito sa pangunahing mga terminolohiya ng baterya.
Sa maraming iba't ibang mga uri ng mga baterya na magagamit, ang mga baterya ng Lead Acid, ang mga baterya ng Ni-Cd, at ang mga baterya na Ni-MH ay hindi angkop dahil mas mabibigat pa o hindi maibigay ang kasalukuyang kinakailangan para sa aming aplikasyon, iniiwan kami ng mga baterya ng lithium-ion na maaaring magbigay ng mataas na kasalukuyang habang pinapanatili ang timbang na mababa at sukat na siksik. Dati ay nakabuo rin kami ng isang 18650 baterya charger at booster module at isang IoT batay sa pagsubaybay ng baterya system, maaari mong suriin ang mga ito kung interesado.
Bakit Kailangan Namin ang Tester ng Kapasidad sa Baterya?
Mayroong maraming mga vendor ng baterya sa merkado na nagbebenta ng murang mga patok na bersyon ng mga baterya ng Li-ion na inaangkin ang mga kakaibang pagtutukoy na may napakababang presyo na napakahusay na totoo. Kapag binili mo ang mga cell na ito alinman ay hindi sila gumana o kung gagawa sila, ang kapasidad ng pagsingil o ang kasalukuyang daloy ay napakababa na hindi sila maaaring gumana sa aplikasyon. Kaya kung paano subukan ang isang baterya ng lithium kung ang cell ay hindi isa sa mga murang knockoff na ito? Ang isa sa mga pamamaraan ay upang masukat ang boltahe ng open-circuit nang walang pag-load at paglo-load ngunit hindi ito lahat maaasahan.
Sa gayon ay magtatayo kami ng isang 18650 na kakayahan ng baterya na tester para sa isang Li-Ion 18650 Cell na magpapalabas ng isang buong sisingilin na 18650 na cell sa pamamagitan ng isang risistor habang sinusukat ang kasalukuyang dumadaloy sa pamamagitan ng risistor upang makalkula ang kapasidad nito. Kung hindi mo nakuha ang inaangkin na kapasidad ng baterya habang ang boltahe ng cell ay nasa loob ng tinukoy na mga limitasyon, kung gayon ang cell na iyon ay may sira at hindi mo dapat gamitin iyon dahil ang State of Charge ng cell ay maubos sa isang napakabilis na rate sa ilalim ng pagkarga, lumilikha ng isang lokal na kasalukuyang loop kung ginamit sa isang baterya pack na nagreresulta sa pag-init at posibleng sunog. Kaya't tumalon tayo doon.
Kinakailangan ang Mga Bahagi
- Arduino Nano
- 16 × 2 Character LCD
- LM741 OPAMP IC
- 2.2Ω, 5Watt Resistor
- 7805 Positive Voltage Regulator IC
- 12V Power Supply
- 10kΩ Trimmer Potentiometer
- 0.47uF Capacitor
- 33kΩ Resistor
- Konektor ng DC Power Barrel Jack
- Mga Terminal ng Screw ng PCB
- IRF540N N-Channel Mosfet IC
- Perfboard
- Soldering Kit
- Heat Sinks
Arduino Battery Capacity Tester Circuit Diagram
Ang kumpletong diagram ng circuit para sa tester ng kapasidad ng baterya ng 18650 ay ipinapakita sa ibaba. Ang paliwanag ng circuit ay ang mga sumusunod-
Computational at Display Unit:
Ang circuit na ito ay nahahati pa sa dalawang bahagi, una ay isang mababang 5V supply para sa Arduino Nano at 16 × 2 Alphanumeric LCD screen at ang kanilang mga koneksyon upang maipakita ang mga resulta ng kasalukuyang at pagsukat ng boltahe sa real-time. Ang circuit ay pinalakas ng 12V power supply gamit ang SMPS o maaari mong gamitin ang isang 12V na baterya pati na rin ang kasalukuyang maximin ay nasa paligid ng 60-70mA para sa pag-power ng Arduino at LCD screen.
Upang pababa ang boltahe pababa sa 5V, gagamitin namin ang isang alinman sa isang linear voltage regulator na maaaring tumagal ng hanggang sa 35V at kailangan ng hindi bababa sa 7.5V input power supply upang magbigay ng regulated 5V supply at labis na boltahe ay natanggal bilang init kung gayon kung ang iyong input boltahe LM7805 Voltage Regulator IC ay higit sa 12V, pagkatapos ay isaalang-alang ang pagdaragdag ng isang heat sink upang hindi ito mapinsala. Ang LCD ay pinalakas ng isang 5V supply mula sa 7805 at konektado sa Arduino at nagtatrabaho sa 4-bit mode. Nagdagdag din kami ng 10k Ω wiper potentiometer upang makontrol ang kaibahan ng LCD display.
Patuloy na Pag-load ng Kasalukuyang Circuit:
Pangalawa ay ang batay sa PWM na patuloy na kasalukuyang circuit ng pag-load upang gawin ang kasalukuyang pag-load na dumadaloy sa pamamagitan ng risistor na maaaring kontrolin sa amin at pare-pareho upang walang error na gumapang dahil sa kasalukuyang pagkakaiba-iba sa oras habang bumababa ang boltahe ng cell. Binubuo ito ng LM741 OPAMP IC at IRF540N N-Channel MOSFET, na kumokontrol sa kasalukuyang dumadaloy sa pamamagitan ng MOSFET sa pamamagitan ng paglipat ng ON at OFF ng MOSFET alinsunod sa antas ng boltahe na itinakda sa amin.
Ang op-amp ay gumagana sa comparator mode,kaya sa mode na ito. ang output ng op-amp ay magiging mataas tuwing ang boltahe ng non-inverting pin ng op-amp ay mas mataas kaysa sa invertting pin. Katulad nito, kung ang boltahe sa inverting pin ng op-amp ay mas mataas kaysa sa non-inverting pin, ang output ng op-amp ay hilahin pababa. Sa ibinigay na circuit, ang antas ng boltahe ng di-pag-invert na pin ay kinokontrol ng D9 PWM pin ng Arduino NANO, na lumilipat sa dalas ng 500Hz na pagkatapos ay dumaan sa mababang pass RC circuit filter na may halaga ng Paglaban 33kΩ at ang Capacitor na may capacitance na 0.47 uF, upang magbigay ng isang halos pare-pareho DC signal sa non-inverting pin. Ang inverting pin ay konektado sa resistor ng pag-load, na binabasa ang boltahe sa kabuuan ng risistor at karaniwang GND. Ang output pin ng OPAMP ay konektado sa terminal ng gate ng MOSFET upang i-ON o I-OFF ito.Susubukan ng OPAMP na gawing pantay ang mga voltages sa parehong mga terminal nito sa pamamagitan ng paglipat ng MOSFET na konektado kaya ang kasalukuyang dumadaloy sa pamamagitan ng risistor ay proporsyonal sa halagang PWM na itinakda mo sa D9 pin ng NANO. Sa proyektong ito, ang maximum na kasalukuyang, nilimitahan ko ang aking circuit sa 1.3A na makatwiran dahil ang cell na mayroon ako ay 10A bilang pinakamataas na kasalukuyang rating
Pagsukat ng Boltahe:
Ang Pinakamataas na boltahe isang tipikal na ganap na sisingilin ng cell ng Li-Ion ay 4.1V hanggang 4.3V na mas mababa sa 5V na limitasyon ng boltahe ng mga Analog input pin ng Arduino Nano na mayroong higit sa 10kΩ panloob na paglaban sa kanila upang direktang maiugnay namin ang Ang cell sa alinman sa mga analog input pin nang hindi nag-aalala tungkol sa kasalukuyang dumadaloy sa kanila. Kaya, sa proyektong ito, kailangan nating sukatin ang boltahe ng cell upang matukoy natin kung ang cell ay nasa tamang saklaw ng operating boltahe at kung ito ay ganap na natanggal o hindi.
Kailangan nating sukatin ang kasalukuyang dumadaloy sa pamamagitan ng risistor pati na rin na hindi namin magagamit ang kasalukuyang shunt dahil ang pagiging kumplikado ng circuit ay tataas at ang pagtaas ng paglaban sa landas ng pag-load ay magbabawas sa rate ng paglabas ng cell. Ang paggamit ng mas maliit na mga resistor ng shunt ay mangangailangan ng isang karagdagang circuit ng amplifier upang magawa ang pagbasa ng boltahe mula rito, na mababasa sa Arduino.
Kaya direkta naming binasa ang boltahe sa kabuuan ng resistor ng pag-load at pagkatapos ay ginagamit ang Batas ng Ohm na hinahati ang boltahe na nakuha ng halaga ng resistor ng pagkarga upang makuha ang kasalukuyang dumadaloy dito. Ang negatibong terminal ng risistor ay konektado direkta sa GND, kaya't ligtas nating ipalagay na ang boltahe na binabasa natin sa risistor ay ang pagbagsak ng boltahe sa risistor.
Arduino Program upang Sukatin ang Kapasidad sa Baterya
Ngayon pagkatapos makumpleto ang hardware circuit, lumilipat kami sa Arduino program. Ngayon kung wala kang naka-install na Arduino IDE sa iyong PC ano ang ginagawa mo dito! Pumunta sa opisyal na website ng Arduino at i-download at i-install ang Arduino IDE o maaari kang mag-code sa anumang iba pang editor din ngunit iyon ay isang paksa para sa isa pang araw sa ngayon ay nananatili kami sa Arduino IDE. Gumagamit kami ngayon ng Arduino Nano, kaya tiyaking napili mo ang Arduino Nano board sa pamamagitan ng pagpunta sa TOOLS> BOARDS at Pagpili ng ARDUINO NANO doon, piliin ang tamang processor na mayroon ang iyong nano sa pamamagitan ng pagpunta sa TOOLS> PROCESSORat habang nandiyan ka din piliin ang port na nakakonekta ang iyong Arduino sa iyong PC. Gumagamit kami ng Arduino upang himukin ang 16 × 2 Alphanumeric LCD na konektado dito at upang masukat ang boltahe ng cell at kasalukuyang dumadaloy sa pamamagitan ng load risistor tulad ng ipinaliwanag sa nakaraang seksyon sinisimulan namin ang aming code sa pamamagitan ng pagdedeklara ng mga file ng header upang himukin ang 16 × 2 Screen ng Alphanumeric LCD. Maaari mong laktawan ang seksyong ito upang makuha ang ganap na luto at naihatid na code sa dulo ng pahina ngunit makisama sa amin habang hinahati namin ang code sa maliliit na seksyon at subukang ipaliwanag.
Ngayon na tinukoy ang file ng header, nagpapatuloy kami sa pagdedeklara ng mga variable, gagamitin namin sa code upang makalkula ang boltahe at kasalukuyang. Gayundin, kailangan naming tukuyin ang mga pin na ginagamit namin upang himukin ang LCD at ang mga pin na gagamitin namin upang bigyan ang output ng PWM at basahin ang mga analog voltages na nagmumula sa cell at resistor pati na rin sa seksyong ito.
# isama
Darating na ngayon sa bahagi ng pag-setup, Kung nais mong panatilihin ang iyong Arduino na konektado sa iyong PC sa buong oras at subaybayan ang pag-usad gamit ang Serial Monitor at isimulan ang LCD screen dito. Ipapakita rin nito ang isang maligayang mensahe na "Battery Capacity Tester Circuit" sa screen sa loob ng 3 segundo.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Itakda ang cursor sa unang haligi at unang hilera. lcd.print ("Kapasidad sa Baterya"); lcd.setCursor (0,1); lcd.print ("Tester Circuit"); pagkaantala (3000); lcd.clear (); }
Ngayon hindi namin kailangan ideklara ang Arduino PWM pin bilang Output bilang pagpapaandar ng AnalogWrite na gagamitin namin sa aming pangunahing loop na nangangalaga sa bahaging ito. Kailangan mong tukuyin ang halagang PWM upang maisulat sa pin na iyon sa code. Piliin nang mabuti ang halaga ng PWM alinsunod sa kasalukuyang paglabas na kinakailangan sa iyong aplikasyon. Ang labis na halaga ng PWM ay magreresulta sa mataas na kasalukuyang may isang mataas na boltahe na drop sa Li-Ion cell at masyadong mababa ang halaga ng PWM ay magreresulta sa mataas na oras ng paglabas ng cell. Sa pangunahing pag-andar ng loop, babasahin namin ang mga voltages sa mga pin na A0 at A1 dahil ang Arduino ay mayroong 10-bit ADC sa board kaya't dapat kaming makakuha ng mga digital na halaga ng output na mula 0-1023 na kakailanganin nating sukatin pabalik sa Saklaw ng 0-5V sa pamamagitan ng pag-multiply nito ng 5.0 / 1023.0. Tiyaking nasusukat mo nang tama ang boltahe sa pagitan ng 5V at GND na mga pin ng Arduino Nano gamit ang isang naka-calibrate na Voltmeter o Multimeter dahil ang karamihan sa mga oras na ang kinokontrol na boltahe ay hindi eksaktong 5.0V at kahit isang maliit na pagkakaiba sa boltahe ng sanggunian na ito ay magreresulta sa mga error na gumagapang sa mga pagbasa ng boltahe kaya sukatin ang tamang boltahe at palitan ang 5.0 sa multiplier na ibinigay sa itaas.
Ngayon upang ipaliwanag ang lohika ng code, patuloy naming sinusukat ang boltahe ng cell at kung ang boltahe ng cell ay higit sa itaas na limitasyon na tinukoy sa amin sa code, pagkatapos ang mensahe ng error ay ipinapakita sa LCD upang ipaalam sa iyo kung ang cell ay sobrang labis na bayad o may mali sa koneksyon at ang lakas sa MOSFET gate pin ay hininto upang walang kasalukuyang maaaring dumaloy sa pamamagitan ng load resistor. Mahalaga na buong singilin mo muna ang iyong cell bago ikonekta ito sa board ng tester ng kakayahan upang makalkula mo ang kabuuang kapasidad ng pagsingil.
analogWrite (MOSFET_Pin, PWM_VALUE); // basahin ang input sa analog pin 0: int sensorValue_voltage_Cell = analogRead (A0); // I-convert ang analog na pagbasa (na kung saan ay mula 0 - 1023) sa isang boltahe (0 - 5V): float voltage = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("VOLTAGE:"); Serial.println (boltahe); // Narito ang boltahe ay nai-print sa Serial Monitor lcd.setCursor (0, 0); // Itakda ang cursor sa unang haligi at unang hilera. lcd.print ("Boltahe:"); // I-print ang pagbasa ng boltahe sa screen lcd.print (boltahe); pagkaantala (100); int sensorValue_Shunt_Resistor = analogRead (A1); float voltage1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); float kasalukuyang = boltahe1 / Resistor; Serial.print ("Kasalukuyan:"); Serial.println (kasalukuyang); lcd.setCursor (0, 1);// Itakda ang cursor sa unang haligi at ang pangalawang hilera (ang bilang ay nagsisimula sa 0!). lcd.print ("Kasalukuyan:"); lcd.print (kasalukuyang);
Ngayon, kung ang boltahe ng cell ay nasa loob ng itaas at mas mababang mga limitasyon ng boltahe na tinukoy sa amin pagkatapos ay babasahin ng Nano ang Kasalukuyang halaga sa pamamaraang tinukoy sa itaas at i-multiply ito sa oras na lumipas sa panahon ng mga pagsukat at iimbak ito sa variable ng kapasidad na tinukoy namin kanina sa mga yunit ng mAh. Sa buong oras na ito, ang real-time na kasalukuyang at mga halaga ng voltages ay ipinapakita sa naka-attach na screen ng LCD, at kung nais mo, maaari mo ring makita ang mga ito sa serial monitor. Ang proseso ng paglabas ng cell ay magpapatuloy hanggang sa maabot ang boltahe ng cell sa ibaba ng mas mababang limitasyong tinukoy sa amin sa programa at pagkatapos ang kabuuang kapasidad ng cell ay ipinapakita sa LCD screen at ang kasalukuyang daloy sa pamamagitan ng risistor ay tumigil sa pamamagitan ng paghila ng MOSFET gate mababa ang pin.
kung hindi man (boltahe> BAT_LOW && boltahe <BAT_HIGH) {// Suriin kung ang boltahe ng baterya ay nasa loob ng ligtas na limitasyong millisPassed = millis () - nakaraangMillis; m = kasalukuyang * 1000.0; Kapasidad = Kapasidad + (mA * (millisPassed / 3600000.0)); // 1 Hour = 3600000ms upang mai-convert ito sa mga yunit ng mAh nakaraangMillis = millis (); pagkaantala (1000); lcd.clear (); }
Mga Pagpapabuti ng Katumpakan
Ito ay, sa lahat ng paraan, isang mahusay na sapat na paraan upang mabasa ang boltahe at kasalukuyang, ngunit hindi ito perpekto. Ang ugnayan sa pagitan ng aktwal na boltahe at sinusukat na boltahe ng ADC ay hindi linear at ito ay halaga sa ilang mga error sa mga sukat ng mga voltages at alon.
Kung nais mong taasan ang kawastuhan ng resulta, dapat mong balangkasin ang mga halagang ADC na nakukuha mo mula sa paglalapat ng iba't ibang mga kilalang mapagkukunan ng boltahe sa isang grap at pagkatapos ay matukoy ang multiplier equation mula dito sa pamamagitan ng paggamit ng anumang pamamaraan na gusto mo. Sa ganitong paraan, mapapabuti ang kawastuhan, at mas malapit ka sa aktwal na mga resulta.
Gayundin, ang MOSFET na ginamit namin ay hindi isang MOSFET sa antas ng lohika, kaya nangangailangan ito ng higit sa 7V upang ganap na buksan ang kasalukuyang channel at kung ilalapat namin ito nang 5V nang direkta, ang mga kasalukuyang pagbasa ay hindi tumpak. Ngunit maaari kang gumamit ng antas ng lohika IRL520N N-Channel MOSFET upang matanggal ang paggamit ng isang 12V supply at direktang gumana sa mga antas ng 5V na lohika na mayroon ka sa iyong Arduino.
Pagbuo at Pagsubok sa Circuit
Ngayon habang dinisenyo at nasubok namin ang iba't ibang mga seksyon ng aming circuit sa isang breadboard at pagkatapos siguraduhin na ang lahat sa kanila ay gumagana tulad ng nilalayon na ginagamit namin ang isang Perfboard upang maghinang ng lahat ng mga bahagi nang magkasama dahil ito ay isang mas propesyonal at maaasahang pamamaraan upang subukan ang circuit. Kung nais mo, maaari mong idisenyo ang iyong sariling PCB sa AutoCAD Eagle, EasyEDA, o Proteus ARES o anumang iba pang software na gusto mo. Ang Arduino Nano, 16 × 2 Alphanumeric LCD, at LM741 OPAMP ay naka-mount sa Babae Bergstik upang magamit muli sila sa paglaon.
Nagbigay ako ng isang 12V na supply sa pamamagitan ng isang konektor ng DC Barrel Jack para sa Constant Load Current Circuit at pagkatapos ay sa tulong ng LM7805, ang 5V para sa Nano at LCD screen ay ibinigay. I-power ngayon ang circuit at ayusin ang trimmer pot upang maitakda ang antas ng kaibahan ng LCD screen, dapat mong makita ang Welcome Message sa LCD screen sa ngayon, at pagkatapos kung ang antas ng boltahe ng cell ay nasa saklaw na nagtatrabaho, pagkatapos ay ang kasalukuyang -voltage at kasalukuyang mula sa baterya ay ipapakita doon.
Ito ay isang napaka-pangunahing pagsubok upang kalkulahin ang kakayahan ng cell na iyong ginagamit at maaari itong mapabuti sa pamamagitan ng pagkuha ng data at iimbak ito sa isang file na Excel upang mag-post ng pagproseso ng data at paggunita sa pamamagitan ng mga grapikong pamamaraan. Sa mundo na hinihimok ng data ngayon, ang cell curve curve na ito ay maaaring magamit upang makabuo ng mga tumpak na hulang modelo ng baterya upang gayahin at makita ang tugon ng baterya sa ilalim ng kundisyon ng paglo-load nang walang pagsubok sa totoong mundo sa pamamagitan ng paggamit ng Software tulad ng NI LabVIEW, MATLAB Simulink, atbp.. at marami pang mga application ang naghihintay sa iyo. Mahahanap mo ang kumpletong pagtatrabaho ng proyektong ito sa video sa ibaba. Kung mayroon kang anumang mga katanungan tungkol sa proyektong ito, mangyaring isulat ang mga ito sa seksyon ng komento sa ibaba o gamitin ang aming mga forum. Pumunta at magsaya kasama nito at kung nais mo, maaari ka naming gabayan sa seksyon ng mga komento sa ibaba kung paano magpatuloy nang higit pa mula rito. Hanggang sa Adios !!!