Talaan ng mga Nilalaman:

Ngunit Isa pang Tester sa Kapasidad sa Baterya: 6 na Hakbang
Ngunit Isa pang Tester sa Kapasidad sa Baterya: 6 na Hakbang

Video: Ngunit Isa pang Tester sa Kapasidad sa Baterya: 6 na Hakbang

Video: Ngunit Isa pang Tester sa Kapasidad sa Baterya: 6 na Hakbang
Video: Paano Malalaman na Sira ang Battery INSTANT KNOWLEDGE | @bmimotolite 2024, Nobyembre
Anonim
Ngunit Isa pang Tester ng Kapasidad sa Baterya
Ngunit Isa pang Tester ng Kapasidad sa Baterya
Ngunit Isa pang Tester ng Kapasidad sa Baterya
Ngunit Isa pang Tester ng Kapasidad sa Baterya

Bakit isa pang tester ng kapasidad

Nabasa ko sa maraming iba't ibang mga tagubilin sa pagbuo ng tester ngunit wala sa kanila ang tila umaangkop sa aking mga pangangailangan. Nais kong masubukan din higit pa sa singe NiCd / NiMH o Lion cells. Nais kong masubukan ang isang baterya ng tool ng kuryente nang hindi muna ito kinuha sa bahagi. Kaya, napagpasyahan kong suriing mabuti ang bagay at magdisenyo ng sarili ko. Ang isang bagay ay humahantong sa isa pa at sa wakas ay nagpasya akong magsulat ng isang itinuturo sa aking sarili. Napagpasyahan ko rin na huwag pumunta sa lahat ng mga detalye kung paano talaga itatayo ang tester dahil lahat ay maaaring magpasya sa ilang mga pagpipilian tulad ng kung anong sukat ng risistor ang gagamitin o kung kailangan ng isang PCB o sapat na Veroboard at mayroon ding isang tonelada sa mga itinuturo kung paano i-install ang agila o kung paano gumawa ng isang PCB. Sa madaling salita, magtutuon ako sa mga eskematiko at ang code at kung paano i-calibrate ang tester.

Hakbang 1: Kasaysayan - Bersyon 1

Kasaysayan - Bersyon 1
Kasaysayan - Bersyon 1

Sa itaas ay ang unang bersyon na may nabanggit sa ibaba na higit sa 10V na suporta sa input ang naidagdag (R12 & R17 & Q11 & Q12).

Ang unang bersyon ay higit pa o mas kaunti na kinuha mula sa isang itinuro ng deba168 (sa kasamaang palad hindi ko makita ang kanyang itinuro upang magbigay ng isang link). Ilang mga menor de edad na pagbabago lamang ang nagawa. Sa bersyon na ito ay mayroon akong isang 10 ohm load risistor na kinokontrol ng isang mosfet. Nagdala rin ito ng ilang mga problema. Kapag sinusubukan ang isang NiCd o NiMH cell ang kinakailangang oras ay madaling nasusukat sa mga oras kung hindi araw. Ang isang 1500mAh na baterya ay tumagal ng higit sa 12 oras (ang kasalukuyang 120mA lamang). Sa kabilang banda, ang unang bersyon ay maaaring subukan lamang ang mga baterya sa ilalim ng 10V. At ang isang ganap na sisingilin na 9.6V na baterya ay maaaring aktwal na hanggang sa 11.2V na hindi masubukan dahil sa limitasyong 10V. May kailangang gawin. Una, nagdagdag lamang ako ng isang pares ng mga mosfet at resistors upang gawin ang mga divider ng boltahe na makapagpahintulot sa higit sa 10V. Ngunit ito naman ay nagdala ng isa pang problema. Ang isang 14.4V na baterya na ganap na na-load ay maaaring magkaroon ng tp 16.8V na may 10 ohm risistor ay nangangahulugang 1.68A kasalukuyang at syempre isang pagwawaldas ng kuryente mula sa resistor ng pag-load ng halos 30W. Kaya, na may mababang boltahe na masyadong mahaba ang oras ng pagsubok at may mataas na boltahe na masyadong mataas ang kasalukuyang. Malinaw na hindi ito isang sapat na solusyon at kailangan ng karagdagang pag-unlad.

Hakbang 2: Bersyon 2

Gusto ko ng solusyon kung saan ang kasalukuyang mananatili sa ilang mga limitasyon anuman ang boltahe ng baterya. Ang isang solusyon ay ang paggamit ng PWM at isang resistor lamang, ngunit mas gusto ko ang pagkakaroon ng isang solusyon nang hindi kasalukuyang pag-pulso o magkaroon ng pangangailangan na matanggal ang init ng mosfet. Kaya, lumikha ako ng isang solusyon na may 10 boltahe na puwang, bawat lapad na 2V, gamit ang 10 3.3ohm resistors at isang mosfet para sa bawat risistor.

Hakbang 3: Ganito Nito Naganap

Ganito Natapos
Ganito Natapos

Ang mga puna ay maaaring magtaltalan na ang pagkawala ng boltahe sa mosfet ay bale-wala dahil ang paglaban ng mosfet ay napakababa, ngunit naiwan ko ang pagpipilian ng mosfet sa mambabasa at sa gayon ang paglaban ay maaaring mapunta kahit higit sa 1 ohm kung saan nagsisimula ito bagay Sa isang bersyon na ang pagpili ng wastong mosfet ay aalisin ang pangangailangan ng mas mababang point pagsukat ngunit sa bersyon 2 nagpasya akong sukatin ang boltahe sa isang risistor lamang na kung saan ay ginagawang mahalaga na magkaroon talaga ng dalawang puntos sa pagsukat. At ang dahilan sa likod ng pagpipilian ay ang pagiging simple sa mga kable ng Veroboard. Nagdaragdag ito ng ilang error sa katumpakan dahil ang sinusukat na boltahe sa isang risistor ay mas maliit kaysa sa pagsukat sa lahat ng resistors. Sa pagpili ng sangkap nagpasya akong gamitin ang alinman sa mayroon akong madaling gamiting o kung ano ang madali kong makukuha. Humantong ito sa pagsunod sa BOM:

  • Arduino Pro Mini 5V! MAHALAGA! Gumamit ako ng 5V bersyon at ang lahat ay batay dito
  • 128x64 I2C OLED display
  • 10 x 5W 3.3 Ohm resistors
  • 3 x 2n7000 mosfets
  • 10 x IRFZ34N mosfets
  • 6 x 10 kOhm resistors
  • 2 x 5 kOhm resistors
  • 16V 680uF capacitor
  • 1 lumang tagahanga ng CPU

Hindi ko naidagdag ang sumusunod sa mga iskema

  • pullup resistors sa mga linya ng I2C, na napansin kong ginawang mas matatag ang display
  • mga linya ng kuryente
  • kapasitor sa linya ng 5V na nagpapatatag din ng display

Habang sinusubukan napansin ko ang mga resistors ng pag-load ay magiging mainit lalo na kung ginagamit ang lahat. Ang temperatura na itinaas sa higit sa 100 degree Celsius (na higit sa 212 degree Fahrenheit) at kung ang buong sistema ay isasara sa isang kahon dapat mayroong ilang uri ng paglamig na ibinigay. Ang mga resistor na ginamit ko ay 3.3 ohm / 5W at ang maximum na kasalukuyang dapat maganap na may tungkol sa 2V bawat risistor na nagbibigay ng 2V / 3.3 = 0.61A na nagreresulta sa 1.21W. Natapos ako sa pagdaragdag ng isang simpleng tagahanga sa kahon. Karamihan sapagkat nagkataon na mayroon akong ilang lumang CPU fan sa paligid.

Pag-andar ng Skema

Ito ay medyo tuwid at nagpapaliwanag sa sarili. Ang bateryang susubok ay konektado sa serye ng mga resistors at ground. Ang mga puntos ng pagsukat ng boltahe ay ang koneksyon ng baterya at ang unang risistor. Ginagamit ang mga divider ng boltahe pagkatapos upang i-drop ang boltahe sa isang antas na mas mahusay na mga suite ng Arduino. Ginagamit ang isang digital na output upang pumili ng alinman sa 10V o 20V na saklaw ng mga divider. Ang bawat risistor sa pag-load ay maaaring isa-isa na saligan gamit ang mga mosfet, na direktang hinihimok ng Arduino. At sa wakas, ang display ay konektado sa mga pin ng Arduino I2C. Hindi gaanong sasabihin tungkol sa eskematiko J

Hakbang 4: Ang Code

Ang Code
Ang Code

Makikita sa itaas ang magaspang na pagpapaandar ng code. Tingnan natin nang mas malapit ang code pagkatapos (ang mga file ng arduino ino ay nakakabit). Mayroong isang bilang ng mga pag-andar at pagkatapos ay ang pangunahing loop.

Pangunahing loop

Kapag handa na ang pagsukat ay ipapakita ang mga resulta, at doon magtatapos ang pagpapatupad. Kung ang pagsukat ay hindi pa tapos, pagkatapos ay unang susuriin kung aling uri ng baterya ang napili at pagkatapos ang boltahe sa buong input. Kung ang boltahe ay lumampas sa 0.1V dapat mayroong hindi bababa sa ilang uri ng baterya na nakakonekta. Sa kasong ito ang isang subroutine ay tinawag upang subukang malaman kung gaano karaming mga cell ito ay nasa baterya upang magpasya kung paano subukan. Ang bilang ng mga cell ay higit pa o mas kaunting impormasyon na maaaring mas mahusay na magamit ngunit, sa bersyon na ito, naiulat ito sa pamamagitan lamang ng serial interface. Kung ang lahat ay mabuti ang proseso ng paglabas ay nagsimula at sa bawat pag-ikot ng pangunahing loop ang kapasidad ng baterya ay kinakalkula. Sa pagtatapos ng pangunahing loop ang display ay pinunan ng mga kilalang halaga.

Pamamaraan para sa pagpapakita ng mga resulta

Ang pagpapaandar ng showResults simpleng nagtatakda ng mga linya upang maipakita sa display at din ang string na ipapadala sa serial interface.

Pamamaraan para sa pagsukat ng mga voltages

Sa simula ng pag-andar ang Vcc ng Arduino ay sinusukat. Kailangan upang makalkula ang mga voltages na sinusukat gamit ang mga analog input. Pagkatapos ang boltahe ng baterya ay sinusukat gamit ang saklaw ng 20V upang makapagpasya kung aling saklaw ang gagamitin. Pagkatapos ang parehong boltahe ng baterya at boltahe ng risistor ay kinakalkula. Sinasamantala ng mga pagsukat ng boltahe ng baterya ang klase ng DividerInput na may mga pamamaraan sa pagbabasa at boltahe upang maibigay ang hilaw na pagbabasa o ang kinakalkula na boltahe ng pinag-uusapang analog na pinag-uusapan.

Pamamaraan para sa pagpili ng mga ginamit na halaga

Sa pag-andar ng selectUsedValues ang bilang ng mga cell ay nahulaan at ang mataas at mababang limitasyon para sa baterya ay nakatakda upang magamit sa pamamaraang paglabas. Gayundin ang pagsukat ay minarkahan bilang nagsimula, Ang mga limitasyon para sa pamamaraang ito ay nakatakda sa simula ng bilang mga variable sa buong mundo. Kahit na sila ay maaaring maging pare-pareho, at maaari rin silang tukuyin sa loob ng pamamaraan dahil hindi sila ginagamit sa buong mundo. Ngunit hey palaging may isang bagay upang mapabuti:)

Pamamaraan para sa pagkalkula ng kapasidad ng baterya

Ang pag-andar ng paglabas ay nangangalaga sa aktwal na bilangin ang kapasidad ng baterya. Nakukuha nito ang mababa at mataas na mga limitasyon ng mga voltages para sa baterya sa ilalim ng pagsubok bilang mga parameter. Ang mataas na halaga ay hindi ginagamit sa bersyon na ito, ngunit ang mababang halaga ay ginagamit upang magpasya kung kailan ititigil ang pagsubok. Sa simula ng pag-andar ang bilang ng mga resistors na gagamitin ay nalaman sa pamamagitan ng paggamit ng isang pagpapaandar na nilikha para sa hangaring ito. Ang pagpapaandar ay nagbabalik ng bilang ng risistor at sa parehong oras ay nagsisimula ang paglabas at pag-reset ng counter. Pagkatapos ang mga voltages ay sinusukat at ginagamit kasama ang kilalang halaga ng risistor upang makalkula ang kasalukuyang. Ngayon alam na natin ang boltahe at kasalukuyang at ang oras mula rito ay mula nang huling pagsukat, maaari nating kalkulahin ang kapasidad. Sa pagtatapos ng proseso ng paglabas ng boltahe ng baterya ay inihambing sa mababang limitasyon at kung lumipas ito sa ibaba ng hangganan ang pagtatapos ng yugto ng pagtatapos, ang mga mosfet ay sarado, at ang pagsukat ay naka-flag na handa na.

Pamamaraan para sa paghahanap ng bilang ng mga resistors na gagamitin

Sa pag-andar ng selectNumOfResistors isang simpleng paghahambing ng boltahe sa mga preset na halaga ay tapos na at sa resulta ang bilang ng mga resistor na gagamitin ay napagpasyahan. Ang naaangkop na mosfet ay binubuksan upang laktawan ang ilan sa mga resistors. Ang mga puwang ng boltahe ay pinili upang ang pinakamataas na kasalukuyang anumang oras sa panahon ng paglabas ay mananatili nang bahagyang higit sa 600mA (2V / 3.3Ohm = 606mA). Ibinabalik ng pagpapaandar ang bilang ng mga resistors na ginamit. Dahil ang tagahanga ay hinihimok mula sa parehong linya tulad ng unang mosfet kailangan itong laging buksan kapag nangyayari ang paglabas.

Hakbang 5: Pag-calibrate sa Meter

Pag-calibrate ng Meter
Pag-calibrate ng Meter

Upang mai-calibrate ang metro Lumikha ako ng isa pang app (naka-attach). Gumagamit ito ng parehong hardware. Sa simula ang mga halaga ng divider ng pagwawasto ay nakatakda sa 1000.

const int divCorrectionB10V = 1000; // divider correction multiplier in range 10V const int divCorrectionR10V = 1000; // divider correction multiplier in range 10V const int divCorrectionB20V = 1000; // divider correction multiplier in range 20V const int divCorrectionR20V = 1000; // divider correction multiplier sa saklaw na 20V

sa readVcc () na pag-andar ang nagresultang Vcc boltahe ay depende sa pagtatakda ng halaga sa huling linya ng pagpapaandar bago bumalik. Kadalasan maaari mong makita sa internet ang isang halaga ng 1126400L upang magamit sa pagkalkula. Napansin kong hindi tama ang resulta.

Proseso ng pagkakalibrate:

  1. I-load ang pagsukat app sa Arduino.
  2. Maaari mong makita sa Arduino (at sa serial output at kung ang fan ay umiikot) kung ang load ay nakabukas. Kung i-on ang switch ng pagpili ng uri ng baterya.
  3. Ayusin ang halaga sa readuVCC () upang magkaroon ng wastong resulta. Kunin ang halagang ibinibigay ng pagpapaandar (na nasa millivolts) at hatiin ang mahabang halaga kasama nito. Makukuha mo ang hilaw na halaga ng panloob na sanggunian. Sukatin ngayon ang aktwal na boltahe ng suplay sa mga millivolts na may multimeter at i-multiply ito sa dating kinakalkula na halaga at makuha mo ang bagong naitama na mahabang halaga. Sa aking kaso ang pagpapaandar ay bumalik 5288mV kapag ang tunay na Vcc ay 5.14V. Kinakalkula ang 1126400/5288 * 5140 = 1094874 na aking natapos sa pagsubok. Ilagay ang bagong halaga sa code at i-upload ito muli sa Arduino.
  4. Ang pagsasaayos ng mga halaga ng pagwawasto ng divider ng divor ng divor ay nangyayari sa pamamagitan ng paggamit ng isang naaayos na mapagkukunan ng kuryente na ginagamit upang pakainin ang input ng metro. Ang pinakasimpleng ay ang paggamit ng mga voltages mula 1V hanggang 20V na may mga hakbang na 1V at pagtatala ng mga resulta sa isang spreadsheet. Sa average ng spreadsheet ay kinuha. Ang mga naitama na halaga ay kinakalkula gamit ang sumusunod na formula: "raw_value * range * Vcc / Vin" kung saan ang raw_value ay ang halaga sa 10VdivB, 10VdivR, 20VdivB o 20VdivR depende sa kung aling pagwawasto ang dapat kalkulahin.

Tingnan ang spreadsheet kung paano ako hahanapin. Ang mga average ay kinakalkula lamang mula sa mga halagang nasa saklaw at ang mga halagang iyon ay itinatakda sa aktwal na meter app.

Ganito

const int divCorrectionB10V = 998; // divider correction divider sa saklaw na 10V const int divCorrectionR10V = 1022; // divider correction divider sa saklaw na 10V const int divCorrectionB20V = 1044; // divider correction divider sa saklaw na 20V const int divCorrectionR20V = 1045; // divider correction divider sa saklaw na 20V

Ang pag-aayos ng halaga ng risistor ay maaaring gawin sa pamamagitan ng pagbibigay ng ilang boltahe sa input (ie 2V), paglipat ng switch ng uri ng bat (upang makakuha ng pag-load) at pagsukat ng kasalukuyang pagpasok at ang boltahe sa unang risistor at paghati ng boltahe sa kasalukuyang. Para sa akin ang 2V ay nagbigay ng 607mA na nagbibigay ng 2 / 0.607 = 3.2948 ohms na bilugan ko sa 3.295 ohms. Kaya ngayon tapos na ang pagkakalibrate.

Hakbang 6: Huling TANDAAN

Isang mahalagang tala dito. Ito ay kinakailangan upang magkaroon ng lahat ng mga koneksyon sa pangunahing kondisyon mula sa baterya hanggang sa resistors. Mayroon akong isang hindi magandang koneksyon at nagtataka kung bakit nakakuha ako ng 0.3V na mas kaunting volts sa resistor grid kaysa sa baterya. Nangangahulugan ito na ang proseso ng pagsukat ay nagtapos halos kaagad sa 1.2V NiCd cells dahil ang mas mababang limitasyon na 0.95V ay naabot nang mabilis.

Inirerekumendang: