Satura rādītājs:

Vēl viens akumulatora jaudas testeris: 6 soļi
Vēl viens akumulatora jaudas testeris: 6 soļi

Video: Vēl viens akumulatora jaudas testeris: 6 soļi

Video: Vēl viens akumulatora jaudas testeris: 6 soļi
Video: Как проверить аккумулятор мультиметром/How to check the battery with a multimeter 2024, Jūlijs
Anonim
Vēl viens akumulatora jaudas testeris
Vēl viens akumulatora jaudas testeris
Vēl viens akumulatora jaudas testeris
Vēl viens akumulatora jaudas testeris

Kāpēc vēl viens jaudas testeris

Es izlasīju daudz dažādu testētāju uzbūves instrukciju, taču šķiet, ka neviena no tām neatbilst manām vajadzībām. Es gribēju, lai varētu pārbaudīt arī ne tikai NiCd/NiMH vai Lion šūnas. Es gribēju, lai varētu pārbaudīt elektroinstrumenta akumulatoru, vispirms neņemot to līdz daļai. Tāpēc es nolēmu tuvāk apskatīt šo lietu un izveidot savu. Viena lieta noved pie citas, un es beidzot nolēmu pats uzrakstīt pamācību. Es arī nolēmu neiedziļināties visās detaļās par to, kā faktiski izveidot testeri, jo ikviens var izlemt par noteiktām izvēlēm, piemēram, kāda izmēra rezistoru izmantot, vai ir nepieciešams PCB vai ir pietiekami daudz Veroboard, un ir arī daudz instrukciju, kā to izdarīt instalēt ērgli vai kā izveidot PCB. Citiem vārdiem sakot, es koncentrēšos uz shēmām un kodu un testētāja kalibrēšanu.

1. darbība. Vēsture - 1. versija

Vēsture - 1. versija
Vēsture - 1. versija

Augšpusē ir pirmā versija ar zemāk minēto vairāk nekā 10 V ieejas atbalstu (R12 & R17 & Q11 & Q12).

Pirmā versija vairāk vai mazāk tika ņemta no instrukcijas, ko veica deba168 (diemžēl es nevaru atrast viņa pamācību sniegt saiti). Tika veiktas tikai nelielas izmaiņas. Šajā versijā man bija viens 10 omu slodzes rezistors, ko kontrolēja mosfets. Tas tomēr radīja dažas problēmas. Pārbaudot vienu NiCd vai NiMH šūnu, vajadzīgo laiku varēja viegli izmērīt stundās, ja ne dienās. 1500 mAh akumulators aizņēma vairāk nekā 12 stundas (strāva bija tikai 120 mA). No otras puses, pirmā versija varēja pārbaudīt tikai baterijas zem 10V. Un pilnībā uzlādēts 9,6 V akumulators faktiski var būt līdz 11,2 V, ko nevarēja pārbaudīt 10 V ierobežojuma dēļ. Vajadzēja kaut ko darīt. Pirmkārt, es vienkārši pievienoju pāris mosfetus un rezistorus, lai sprieguma dalītāji varētu atļaut vairāk nekā 10 V. Bet tas, no otras puses, radīja vēl vienu problēmu. Pilnībā ielādētam 14,4 V akumulatoram var būt līdz 16,8 V tp, kas ar 10 omu rezistoru nozīmēja 1,68A strāvu un, protams, jaudas izkliedi no slodzes rezistora gandrīz 30W. Tātad, ja zemspriegums ir pārāk ilgs pārbaudes laiks un augstspriegums ir pārāk augsts. Skaidrs, ka tas nebija adekvāts risinājums, un bija nepieciešama turpmāka attīstība.

2. darbība: 2. versija

Es gribēju risinājumu, kurā strāva paliktu noteiktās robežās neatkarīgi no akumulatora sprieguma. Viens risinājums būtu bijis izmantot PWM un tikai vienu rezistoru, bet es gribēju, lai man būtu risinājums bez pulsējošas strāvas vai nepieciešamība izkliedēt mosfet siltumu. Tādējādi es izveidoju risinājumu ar 10 sprieguma spraugām, katra 2 V plata, izmantojot 10 3,3 omu rezistorus un mosfetu katram rezistoram.

3. darbība. Tā tas izrādījās

Tā tas izvērtās
Tā tas izvērtās

Varētu apgalvot, ka sprieguma zudums pār mosfetu ir niecīgs, jo mosfeta pretestība ir tik zema, bet es esmu atstājis mosfeta izvēli lasītājam, un tādējādi pretestība var pārsniegt pat 1 omi vietā, kur tā sāk darboties jautājums. Pirmajā versijā, izvēloties pareizo mosfet, vairs nebūtu nepieciešams mērīt zemākos punktus, bet 2. versijā es nolēmu izmērīt tikai viena rezistora spriegumu, un tāpēc ir svarīgi, lai faktiski būtu divi mērīšanas punkti. Izvēles iemesls bija Veroboard vadu savienošanas vienkāršība. Tas rada zināmu precizitātes kļūdu, jo izmērītais spriegums vienā rezistorā ir ievērojami mazāks nekā visu rezistoru mērīšana. Sastāvdaļu izvēlē es nolēmu izmantot to, kas man jau bija pa rokai vai ko es varētu viegli iegūt. Tas noveda pie šādas BOM:

  • Arduino Pro Mini 5V! SVARĪGI! Es izmantoju 5V versiju, un viss ir balstīts uz to
  • 128x64 I2C OLED displejs
  • 10 x 5W 3,3 omu rezistori
  • 3 x 2n7000 mosfeti
  • 10 x IRFZ34N mosfeti
  • 6 x 10 kOhm rezistori
  • 2 x 5 kOhm rezistori
  • 16V 680uF kondensators
  • 1 vecs CPU ventilators

Shēmās neesmu pievienojis sekojošo

  • pullup rezistori uz I2C līnijām, ko pamanīju padarīt displeju stabilāku
  • elektropārvades līnijas
  • kondensators 5V līnijā, kas arī stabilizēja displeju

Pārbaudot, es pamanīju, ka slodzes rezistori kļūst diezgan karsti, it īpaši, ja tie visi tiek izmantoti. Temperatūra paaugstināta līdz vairāk nekā 100 grādiem pēc Celsija (kas pārsniedz 212 grādus pēc Fārenheita), un, ja visa sistēma ir jāaizver kastē, ir jānodrošina sava veida dzesēšana. Rezistori, kurus izmantoju, ir 3,3 omi / 5W, un maksimālajai strāvai vajadzētu notikt ar aptuveni 2V uz vienu rezistoru, dodot 2V / 3,3 = 0,61A, kā rezultātā rodas 1,21W. Es beidzot pievienoju kastē vienkāršu ventilatoru. Galvenokārt tāpēc, ka man apkārt bija kāds vecs CPU ventilators.

Shematiska funkcionalitāte

Tas ir diezgan taisni un pašsaprotami. Pārbaudāmā baterija ir savienota ar rezistoru sēriju un zemējumu. Sprieguma mērīšanas punkti ir akumulatora savienojums un pirmais rezistors. Sprieguma dalītāji tiek izmantoti, lai samazinātu spriegumu līdz līmenim, kas labāk atbilst Arduino. Viena digitālā izeja tiek izmantota, lai atlasītu 10V vai 20V sadalītāju diapazonu. Katru slodzes rezistoru var atsevišķi iezemēt, izmantojot mosfetus, kurus darbina tieši Arduino. Visbeidzot, displejs ir savienots ar Arduino I2C tapām. Nav daudz ko teikt par shematisko Dž

4. solis: kods

Kods
Kods

Iepriekš var redzēt koda aptuveno funkcionalitāti. Tad apskatīsim kodu tuvāk (arduino ino faili ir pievienoti). Ir vairākas funkcijas un pēc tam galvenā cilpa.

Galvenā cilpa

Kad mērīšana ir gatava, tiek parādīti rezultāti, un ar to izpilde beidzas. Ja mērīšana vēl nav veikta, vispirms tiek pārbaudīts, kurš akumulatora tips ir izvēlēts, un pēc tam spriegums ieejā. Ja spriegums pārsniedz 0,1 V, ir jāpievieno vismaz kāda veida akumulators. Šajā gadījumā tiek izsaukta apakšprogramma, lai mēģinātu noskaidrot, cik šūnu ir akumulatorā, lai izlemtu, kā pārbaudīt. Šūnu skaits ir vairāk vai mazāk informācija, ko varētu labāk izmantot, taču šajā versijā tas tiek ziņots tikai, izmantojot seriālo saskarni. Ja viss ir kārtībā, tiek sākts izlādes process un katrā galvenās cilpas kārtā tiek aprēķināta akumulatora jauda. Galvenās cilpas beigās displejs tiek aizpildīts ar zināmām vērtībām.

Rezultātu parādīšanas procedūra

Funkcija showResults vienkārši nosaka ekrānā redzamās līnijas un virkni, kas jānosūta uz seriālo saskarni.

Sprieguma mērīšanas procedūra

Funkcijas sākumā tiek mērīts Arduino Vcc. Tas ir nepieciešams, lai varētu aprēķināt spriegumus, kas izmērīti, izmantojot analogās ieejas. Tad akumulatora spriegumu mēra, izmantojot 20 V diapazonu, lai varētu izlemt, kuru diapazonu izmantot. Tad tiek aprēķināts gan akumulatora spriegums, gan rezistora spriegums. Akumulatora sprieguma mērījumos tiek izmantota DividerInput klase, kurai ir nolasīšanas un sprieguma metodes, lai iegūtu neapstrādāto rādījumu vai attiecīgās analogās ieejas aprēķināto spriegumu.

Izmantoto vērtību izvēles procedūra

Funkcijā selectUsedValues tiek uzminēts šūnu skaits un akumulatora augstās un zemās robežas ir iestatītas izmantošanai izlādes procedūrā. Arī mērīšana tiek atzīmēta kā sākta. Šīs procedūras ierobežojumi ir noteikti globālo mainīgo sākumā. Lai gan tie varētu būt nemainīgi, un tos varētu definēt arī procedūras ietvaros, jo tie netiek izmantoti globāli. Bet hei vienmēr ir ko uzlabot:)

Akumulatora jaudas aprēķināšanas procedūra

Izlādes funkcija rūpējas par akumulatora jaudas faktisko uzskaiti. Tiek pārbaudīti akumulatora sprieguma zemie un augstie ierobežojumi kā parametri. Šajā versijā augstā vērtība netiek izmantota, bet zemā vērtība tiek izmantota, lai izlemtu, kad pārtraukt testēšanu. Funkcijas sākumā izmantojamo rezistoru skaits tiek noskaidrots, izmantojot šim nolūkam izveidotu funkciju. Funkcija atgriež rezistoru skaitu un vienlaikus sāk izlādi un atiestata skaitītāju. Pēc tam spriegumus mēra un izmanto kopā ar zināmo rezistora vērtību, lai aprēķinātu strāvu. Tagad, kad mēs zinām spriegumu un strāvu un laiku no tā, ir pagājis kopš pēdējā mērījuma, mēs varam aprēķināt jaudu. Izlādes procesa beigās akumulatora spriegumu salīdzina ar zemo robežu, un, ja tas ir nokritis zem robežvērtības, izlādes fāze apstājas, mosfets tiek aizvērts un mērījums tiek atzīmēts kā gatavs.

Izmantojamo rezistoru skaita noteikšanas procedūra

Funkcijā selectNumOfResistors tiek veikts vienkāršs sprieguma salīdzinājums ar iepriekš iestatītajām vērtībām, un pēc tam tiek noteikts izmantoto rezistoru skaits. Tiek atvērts atbilstošais mosfets, lai izlaistu dažus rezistorus. Sprieguma spraugas ir izvēlētas tā, lai maksimālā strāva jebkurā laikā izlādes laikā paliktu nedaudz virs 600mA (2V/3.3Ohm = 606mA). Funkcija atgriež izmantoto rezistoru skaitu. Tā kā ventilators tiek darbināts no tās pašas līnijas kā pirmais mosfets, tas vienmēr ir jāatver, kad notiek izlāde.

5. solis: Skaitītāja kalibrēšana

Skaitītāja kalibrēšana
Skaitītāja kalibrēšana

Lai kalibrētu skaitītāju, es izveidoju citu lietotni (pievienota). Tas izmanto to pašu aparatūru. Sākumā visas korekcijas dalītāja vērtības ir iestatītas uz 1000.

const int divKorekcijaB10V = 1000; // dalītāja korekcijas reizinātājs diapazonā 10V const int divCorrectionR10V = 1000; // dalītāja korekcijas reizinātājs diapazonā 10V const int divCorrectionB20V = 1000; // dalītāja korekcijas reizinātājs diapazonā 20V const int divCorrectionR20V = 1000; // dalītāja korekcijas reizinātājs diapazonā 20V

funkcijā readVcc () iegūtais Vcc spriegums ir atkarīgs no vērtības iestatīšanas funkcijas pēdējā rindā pirms atgriešanās. Parasti internetā var atrast vērtību 1126400L, ko izmantot aprēķinos. Es pamanīju, ka rezultāts nav pareizs.

Kalibrēšanas process:

  1. Ielādējiet mērījumu lietotni Arduino.
  2. Arduino (un sērijveida izejā un ventilatora rotācijas laikā) var redzēt, vai slodze ir ieslēgta. Ja tas ir, pagrieziet akumulatora tipa izvēles slēdzi.
  3. Pielāgojiet vērtību readuVCC (), lai iegūtu pareizu rezultātu. Ņemiet funkcijas sniegto vērtību (kas ir milivoltos) un sadaliet ar to garo vērtību. Jūs iegūsit iekšējās atsauces neapstrādāto vērtību. Tagad izmēriet faktisko barošanas spriegumu milivoltos ar multimetru un reiziniet to ar iepriekš aprēķināto vērtību, un jūs iegūstat jauno koriģēto garo vērtību. Manā gadījumā funkcija atgriezās 5288 mV, kad faktiskais Vcc bija 5,14 V. Aprēķinot 1126400/5288*5140 = 1094874, ko es precizēju ar izmēģinājumu. Ievietojiet jauno vērtību kodā un augšupielādējiet to vēlreiz Arduino.
  4. Analogās ieejas rezistoru dalītāja korekcijas vērtības tiek pielāgotas, izmantojot regulējamu barošanas avotu, ko izmanto, lai barotu skaitītāja ievadi. Vienkāršākais ir izmantot spriegumu no 1V līdz 20V ar 1V soļiem un rezultātu ierakstīšanu izklājlapā. Izklājlapā tiek ņemts vidējais. Labotās vērtības tiek aprēķinātas pēc šādas formulas: “raw_value*diapazons*Vcc/Vin”, kur raw_value ir vērtība 10VdivB, 10VdivR, 20VdivB vai 20VdivR atkarībā no tā, kura korekcija ir jāaprēķina.

Skatiet izklājlapu, kā tā izskatījās man. Vidējie rādītāji tiek aprēķināti tikai no vērtībām, kurām jābūt diapazonā, un šīs vērtības tiek iestatītas faktiskajā skaitītāja lietotnē.

Kā šis

const int divKorekcijaB10V = 998; // dalītāja korekcijas dalītājs diapazonā 10V const int divCorrectionR10V = 1022; // dalītāja korekcijas dalītājs diapazonā 10V const int divCorrectionB20V = 1044; // dalītāja korekcijas dalītājs diapazonā 20V const int divCorrectionR20V = 1045; // dalītāja korekcijas dalītājs 20V diapazonā

Rezistora vērtības regulēšanu var veikt, ievadot kādu spriegumu (ti, 2 V), pārslēdzot nūjas tipa slēdzi (lai iegūtu slodzi) un izmērot strāvu un spriegumu pirmajā rezistorā un sadalot spriegumu ar strāvu. Man 2V deva 607mA, kas dod 2/0,607 = 3,2948 omi, ko noapaļoju līdz 3,295 omiem. Tātad tagad kalibrēšana ir pabeigta.

6. solis: pēdējā PIEZĪME

Šeit ir viena svarīga piezīme. Obligāti jābūt visiem savienojumiem labā stāvoklī no akumulatora līdz rezistoriem. Man bija viens slikts savienojums, un es domāju, kāpēc rezistoru režģī es saņēmu par 0,3 V mazāk voltu nekā uz akumulatora. Tas nozīmēja, ka mērīšanas process gandrīz uzreiz beidzās ar 1,2 V NiCd šūnām, jo ātri tika sasniegta apakšējā robeža - 0,95 V.

Ieteicams: