- Kāpēc mums ir nepieciešams akumulatora jaudas testeris?
- Nepieciešamās sastāvdaļas
- Arduino akumulatora jaudas pārbaudītāja shēmas shēma
- Arduino programma akumulatora jaudas mērīšanai
- Precizitātes uzlabojumi
- Kontūras veidošana un pārbaude
Līdz ar tehnoloģiju parādīšanos mūsu elektroniskie sīkrīki un ierīces kļūst arvien mazākas un funkcionālākas un sarežģītākas. Ar šo sarežģītības pieaugumu ir palielinājusies arī ķēdes jaudas prasība, un, cenšoties padarīt ierīci pēc iespējas mazāku un pēc iespējas pārnēsājamāku, mums ir nepieciešama baterija, kas ilgu laiku un tajā pašā laikā var nodrošināt lielu strāvu. laiku, nosveriet daudz mazāk, lai ierīce paliktu pārnēsājama. Ja vēlaties uzzināt vairāk par akumulatoriem, varat arī izlasīt šo rakstu par akumulatoru pamatterminoloģiju.
No daudzajiem pieejamajiem dažādu veidu akumulatoriem svina skābes akumulatori, Ni-Cd akumulatori un Ni-MH akumulatori nav piemēroti, jo tie vai nu sver vairāk, vai arī nespēj nodrošināt mūsu lietošanai nepieciešamo strāvu, tāpēc mums paliek litija jonu akumulatori kas var nodrošināt lielu strāvu, vienlaikus saglabājot svaru mazu un izmēru kompaktu. Iepriekš mēs esam uzbūvējuši arī 18650 akumulatora lādētāju un pastiprinātāja moduli un uz IoT balstītu akumulatoru uzraudzības sistēmu. Ja vēlaties, varat tos pārbaudīt.
Kāpēc mums ir nepieciešams akumulatora jaudas testeris?
Tirgū ir daudz akumulatoru pārdevēju, kas pārdod lētas litija jonu bateriju izslēgšanas versijas, apgalvojot savādas specifikācijas ar ļoti zemu cenu, kas ir pārāk laba, lai būtu patiesība. Pērkot šīs šūnas, vai nu tās nedarbojas vispār, vai arī darbojas, lādēšanas jauda vai pašreizējā plūsma ir tik zema, ka tās vispār nevar strādāt ar lietojumprogrammu. Tātad, kā pārbaudīt litija akumulatoru, ja šūna nav viena no šīm lētajām izslēgšanas reizēm? Viena no metodēm ir atvērtās ķēdes sprieguma mērīšana bez slodzes un slodzes, taču tas nepavisam nav uzticams.
Tātad mēs gatavosim 18650 akumulatora jaudas testeri Li-Ion 18650 Cell, kas izlādēs pilnībā uzlādētu 18650 šūnu caur rezistoru, vienlaikus mērot strāvu, kas plūst caur rezistoru, lai aprēķinātu tā jaudu. Ja jūs nesaņemat pieprasīto akumulatora jaudu, kamēr elementa spriegums ir noteiktajās robežās, šī kamera ir bojāta, un jums nevajadzētu to izmantot, jo šūnas uzlādes stāvoklis zem slodzes iztukšosies ļoti ātri, radot vietējā strāva, ja to lieto akumulatorā, kā rezultātā rodas apkure un, iespējams, uguns. Tāpēc lecam tieši tajā.
Nepieciešamās sastāvdaļas
- Arduino Nano
- 16 × 2 rakstzīmju LCD
- LM741 OPAMP IC
- 2,2Ω, 5 vatu rezistors
- 7805 pozitīvā sprieguma regulatora IC
- 12 V barošanas avots
- 10kΩ trimmera potenciometrs
- 0.47uF kondensators
- 33kΩ rezistors
- Līdzstrāvas barelu ligzdas savienotājs
- PCB skrūvju termināļi
- IRF540N N-Channel Mosfet IC
- Perfboard
- Lodēšanas komplekts
- Siltuma izlietnes
Arduino akumulatora jaudas pārbaudītāja shēmas shēma
Pilna 18650 akumulatora jaudas testera shēma ir parādīta zemāk. Kontūras skaidrojums ir šāds:
Skaitļošanas un attēlošanas vienība:
Šī shēma ir sadalīta divās daļās: vispirms ir zems 5 V barošanas bloks Arduino Nano un 16 × 2 burtciparu LCD ekrāns un to savienojumi, lai reāllaikā parādītu pašreizējās un sprieguma mērījumu rezultātus. Kontūru darbina 12 V barošanas avots, izmantojot SMPS, vai arī jūs varat izmantot 12 V akumulatoru, kā arī maksimālā strāva būs aptuveni 60-70 mA, lai darbinātu Arduino un LCD ekrānu.
Lai pazeminātu spriegumu līdz 5 V, mēs izmantosim lineāru sprieguma regulatoru, kas var aizņemt līdz 35 V un kam nepieciešams vismaz 7,5 V ieejas barošanas avots, lai nodrošinātu regulētu 5 V barošanu, un pārspriegums tiek izvadīts kā siltums, ja jūsu ievads spriegums LM7805 Sprieguma regulatora IC ir lielāks par 12 V, pēc tam apsveriet iespēju pievienot siltuma izlietni, lai tā netiktu sabojāta. LCD tiek darbināts ar 5V barošanu no 7805 un ir savienots ar Arduino un darbojas 4 bitu režīmā. Mēs esam pievienojuši arī 10k Ω tīrītāja potenciometru, lai kontrolētu LCD displeja kontrastu.
Pastāvīgas slodzes strāvas ķēde:
Otrkārt, uz PWM balstīta pastāvīgas strāvas slodzes ķēde, lai slodzes strāva, kas plūst caur rezistoru, būtu mums kontrolējama un nemainīga, lai šūnas spriegumam samazinoties, laika gaitā esošās strāvas svārstību dēļ nepieļautu kļūdas. Tas sastāv no LM741 OPAMP IC un IRF540N N-Channel MOSFET, kas kontrolē caur MOSFET plūstošo strāvu, ieslēdzot un izslēdzot MOSFET atbilstoši mūsu iestatītajam sprieguma līmenim.
Op-amp darbojas salīdzināšanas režīmā,tātad šajā režīmā. op-amp izeja būs augsta ikreiz, kad op-amp neinvertējošās tapas spriegums ir lielāks par invertējošo tapu. Līdzīgi, ja spriegums op-amp invertējošajā tapā ir lielāks par ne-invertējošo tapu, op-amp izeja tiks novilkta uz leju. Dotajā ķēdē neinvertējošā tapas sprieguma līmeni kontrolē Arduino NANO D9 PWM tapa, kas pārslēdzas 500Hz frekvencē, kas pēc tam tiek izvadīta caur zemas caurlaidības RC ķēdes filtru ar pretestības vērtību 33kΩ un kondensatoru ar kapacitāti 0,47 uF, lai nodrošinātu gandrīz nemainīgu līdzstrāvas signālu pie neinvertējošā kontakta. Invertējošais tapa ir savienots ar slodzes rezistoru, kas nolasa spriegumu pret rezistoru un kopējo GND. OPAMP izejas tapa ir savienota ar MOSFET vārtu spaili, lai to ieslēgtu vai izslēgtu.OPAMP mēģinās panākt, lai spriegumi abos tā spailēs būtu vienādi, pārslēdzot pievienoto MOSFET, tādējādi strāva, kas plūst caur rezistoru, būs proporcionāla PWM vērtībai, kuru esat iestatījis NANO D9 tapā. Šajā projektā maksimālā strāva man ir ierobežota līdz 1.3A, kas ir saprātīgi, jo man esošā šūna ir 10A kā tās maksimālais pašreizējais vērtējums
Sprieguma mērīšana:
Maksimālais spriegums, ko tipisks pilnībā uzlādēts litija jonu elements ir no 4,1 V līdz 4,3 V, kas ir mazāks par 5 V sprieguma robežu Arduino Nano analogo ieejas tapām, kurās ir vairāk nekā 10 kΩ iekšējā pretestība, lai mēs varētu tieši savienot Šūna uz jebkuru no analogās ievades tapām, neuztraucoties par strāvu, kas plūst caur tām. Tātad, šajā projektā mums ir jāmēra šūnas spriegums, lai mēs varētu noteikt, vai šūna atrodas pareizajā sprieguma darbības diapazonā un vai tā ir pilnībā izlādējusies.
Mums jāmēra arī strāva, kas plūst caur rezistoru, tāpēc mēs nevaram izmantot strāvas šuntu, jo ķēdes sarežģītība palielināsies, un, palielinot pretestību slodzes ceļā, samazināsies šūnu izlādes ātrums. Lai izmantotu mazākus šunta rezistorus, būs nepieciešama papildu pastiprinātāja ķēde, lai no tā nākošais sprieguma rādījums būtu salasāms Arduino.
Tātad mēs tieši nolasām spriegumu visā slodzes rezistorā un pēc tam, izmantojot Ohma likumu, dalām iegūto spriegumu ar slodzes rezistora vērtību, lai iegūtu caur to plūstošo strāvu. Rezistora negatīvais spaile ir savienota tieši ar GND, tāpēc mēs varam droši pieņemt, ka spriegums, ko mēs lasām uz rezistora, ir sprieguma kritums rezistorā.
Arduino programma akumulatora jaudas mērīšanai
Tagad pēc aparatūras ķēdes pabeigšanas mēs pārejam uz Arduino programmēšanu. Tagad, ja datorā nav instalēta Arduino IDE, ko jūs šeit darāt! Dodieties uz oficiālo Arduino vietni un lejupielādējiet un instalējiet Arduino IDE, vai arī jūs varat kodēt arī jebkurā citā redaktorā, taču šī ir tēma vēl vienu dienu, un tagad mēs paliekam pie Arduino IDE. Tagad mēs izmantojam Arduino Nano, tāpēc pārliecinieties, ka esat izvēlējies Arduino Nano dēli, dodoties uz TOOLS> BOARDS un tur atlasot ARDUINO NANO, tagad atlasiet pareizo nano procesoru, dodoties uz TOOLS> PROCESSORun atrodoties tur, datorā atlasiet arī portu, ar kuru Arduino ir savienots. Mēs izmantojam Arduino, lai vadītu 16 × 2 burtciparu LCD, kas tam pievienots, un lai izmērītu šūnas spriegumu un strāvu, kas plūst caur slodzes rezistoru, kā paskaidrots iepriekšējā sadaļā, mēs sākam savu kodu, deklarējot galvenes failus, lai vadītu 16 × 2 Burtciparu LCD ekrāns. Jūs varat izlaist šo sadaļu, lai lapas beigās iegūtu pilnībā pagatavotu un pasniegtu kodu, taču nesiet līdzi, kamēr mēs sadalām kodu mazās sadaļās un mēģinām izskaidrot.
Tagad, kad galvenes fails ir definēts, mēs virzāmies uz mainīgo lielumu deklarēšanu, ko kodā izmantosim, lai aprēķinātu spriegumu un strāvu. Turklāt mums ir jādefinē tapas, kuras mēs izmantojam, lai vadītu LCD, un tapas, kuras mēs izmantosim, lai sniegtu PWM izvadi un nolasītu analogos spriegumus, kas nāk no šūnas un rezistora, kā arī šajā sadaļā.
# iekļaut
Tagad dodieties uz iestatīšanas daļu. Ja vēlaties visu laiku saglabāt savu Arduino savienojumu ar datoru un uzraudzīt progresu, izmantojot sērijas monitoru, un šeit inicializējiet LCD ekrānu. Uz 3 sekundēm uz ekrāna tiks parādīts arī apsveikuma ziņojums “Battery Capacity Tester Circuit”.
void setup () {Sērijas.sākt (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Iestatiet kursoru pirmajā kolonnā un pirmajā rindā. lcd.print ("Akumulatora jauda"); lcd.setCursor (0,1); lcd.print ("Tester Circuit"); kavēšanās (3000); lcd.clear (); }
Tagad mums nav jāpaziņo Arduino PWM tapa kā izeja, jo AnalogWrite funkcija, kuru izmantosim mūsu galvenajā cilpā, rūpējas par šo daļu. Jums ir jādefinē PWM vērtība, kas rakstāma uz šīs PIN kodā. Rūpīgi izvēlieties PWM vērtību atbilstoši izlādes strāvai, kas nepieciešama jūsu lietojumprogrammā. Pārāk daudz PWM vērtības radīs lielu strāvu ar lielu sprieguma kritumu litija jonu šūnā un pārāk zemu PWM vērtību - lielu elementa izlādes laiku. Galvenajā cilpas funkcijā mēs nolasīsim spriegumus uz tapām A0 un A1, jo Arduino uz borta ir 10 bitu ADC, tāpēc mums vajadzētu iegūt digitālās izejas vērtības, kas svārstās no 0-1023, kas mums būs jāatgriež atpakaļ uz 0–5 V diapazons, reizinot to ar 5,0 / 1023,0. Pārliecinieties, ka esat pareizi izmērījis spriegumu starp Arduino Nano 5V un GND tapām, izmantojot kalibrētu voltmetru vai multimetru, jo lielākoties regulētais spriegums nav precīzi 5,0 V, un pat neliela atšķirība šajā atsauces spriegumā radītu kļūdas. sprieguma nolasījumos nomēriet pareizo spriegumu un iepriekš norādītajā reizinātājā nomainiet 5,0.
Tagad, lai izskaidrotu koda loģiku, mēs nepārtraukti mērām šūnas spriegumu un, ja šūnas spriegums pārsniedz kodu, kuru mēs norādījām, tad LCD displejā tiek parādīts kļūdas ziņojums, lai jūs informētu, vai šūna ir pārmērīgi uzlādēts vai savienojumā ir kaut kas nepareizs, un barošana MOSFET vārtu tapai tiek pārtraukta, lai caur slodzes rezistoru nevarētu plūst strāva. Ir ļoti svarīgi vispirms pilnībā uzlādēt savu šūnu, pirms to savienojat ar jaudas testera paneli, lai jūs varētu aprēķināt tās kopējo uzlādes jaudu.
analogWrite (MOSFET_Pin, PWM_VALUE); // lasīt ievadi analogajā tapā 0: int sensorsValue_voltage_Cell = analogRead (A0); // Pārvērst analogo rādījumu (kas iet no 0 līdz 1023) par spriegumu (0 - 5 V): pludiņa spriegums = sensorsValue_voltage_Cell * (5,08 / 1023,0); Serial.print ("VOLTAGE:"); Serial.println (spriegums); // Šeit spriegums tiek drukāts uz Serial Monitor lcd.setCursor (0, 0); // Iestatiet kursoru pirmajā kolonnā un pirmajā rindā. lcd.print ("Spriegums:"); // Izdrukājiet sprieguma rādījumu ekrānā lcd.print (spriegums); kavēšanās (100); int sensorsValue_Shunt_Resistor = analogRead (A1); pludiņa spriegums1 = sensorsValue_Shunt_Resistor * (5,08 / 1023,0); pludiņa strāva = spriegums1 / rezistors; Serial.print ("Pašreizējais:"); Seriālais.println (pašreizējais); lcd.setCursor (0, 1);// Iestatiet kursoru pirmajā kolonnā un otrajā rindā (skaitīšana sākas no 0!). lcd.print ("Pašreizējais:"); lcd.print (pašreizējais);
Ja šūnas spriegums ir mūsu norādītajā augšējā un apakšējā sprieguma robežās, Nano nolasīs pašreizējo vērtību ar iepriekš norādīto metodi un reizinās to ar laiku, kas pagājis mērījumu laikā, un saglabās to iepriekš definētajā jaudas mainīgajā mAh vienībās. Šajā visā laikā reālā laika strāvas un sprieguma vērtības tiek rādītas pievienotajā LCD ekrānā, un, ja vēlaties, varat tās redzēt arī sērijveida monitorā. Šūnas izlādes process turpināsies, līdz šūnas spriegums sasniegs zemāko mūsu programmā noteikto robežu, un pēc tam LCD ekrānā tiks parādīta šūnas kopējā jauda un strāvas plūsma caur rezistoru tiks pārtraukta, pavelkot MOSFET vārtus tapa zemu.
else if (spriegums> BAT_LOW && voltage <BAT_HIGH) {// Pārbaudiet, vai akumulatora spriegums ir drošajā robežās millisPassed = millis () - previousMillis; mA = strāva * 1000,0; Jauda = ietilpība + (mA * (millisPassed / 3600000.0)); // 1 stunda = 3600000ms, lai to pārvērstu mAh vienībās previousMillis = milis (); kavēšanās (1000); lcd.clear (); }
Precizitātes uzlabojumi
Tas katrā ziņā ir pietiekami labs veids, kā nolasīt spriegumu un strāvu, taču tas nav ideāls. Attiecība starp faktisko spriegumu un izmērīto ADC spriegumu nav lineāra, un tas radīs zināmu kļūdu spriegumu un strāvu mērījumos.
Ja vēlaties palielināt rezultāta precizitāti, tad diagrammā jāpiezīmē ADC vērtības, ko iegūstat, piemērojot dažādus zināmus sprieguma avotus, un pēc tam jānosaka reizinātāja vienādojums, izmantojot jebkuru jums vēlamo metodi. Tādā veidā tiks uzlabota precizitāte, un jūs nokļūsiet ļoti tuvu faktiskajiem rezultātiem.
Arī mūsu izmantotais MOSFET nav loģikas līmeņa MOSFET, tāpēc tam ir nepieciešams vairāk nekā 7 V, lai pilnībā ieslēgtu pašreizējo kanālu, un, ja mēs tam tieši lietojam 5 V, pašreizējie rādījumi būtu neprecīzi. Bet jūs varat izmantot loģikas līmeni IRL520N N-Channel MOSFET, lai izslēgtu 12 V barošanas izmantošanu un tieši strādātu ar 5 V loģikas līmeņiem, kas jums ir ar savu Arduino.
Kontūras veidošana un pārbaude
Tagad, kad mēs izstrādājām un pārbaudījām dažādas ķēdes sadaļas uz paneļa un pēc tam, kad pārliecinājāmies, ka visas tās darbojas kā paredzēts, mēs izmantojam Perfboard, lai visus komponentus lodētu kopā, jo tā ir daudz profesionālāka un uzticamāka metode ķēdes pārbaudei. Ja vēlaties, varat noformēt savu PCB uz AutoCAD Eagle, EasyEDA vai Proteus ARES vai jebkuru citu programmatūru, kas jums patīk. Arduino Nano, 16 × 2 burtciparu LCD un LM741 OPAMP ir uzstādīti uz sieviešu Bergstik, lai tos vēlāk varētu izmantot atkārtoti.
Es esmu nodrošinājis 12 V padevi caur DC Barrel Jack savienotāju pastāvīgas slodzes strāvas ķēdei, un pēc tam ar LM7805 palīdzību tiek nodrošināts 5 V Nano un LCD ekrānam. Tagad ieslēdziet ķēdi un noregulējiet trimmera katlu, lai iestatītu LCD ekrāna kontrasta līmeni, jums jau tagad vajadzētu redzēt sveiciena ziņojumu LCD ekrānā un tad, ja šūnas sprieguma līmenis ir darba diapazonā, tad tur parādīsies spriegums un strāva no akumulatora.
Šis ir ļoti vienkāršs tests, lai aprēķinātu izmantotās šūnas jaudu, un to var uzlabot, ņemot datus un saglabājot tos Excel failā, lai pēc grafiskām metodēm veiktu datu apstrādi un vizualizāciju. Mūsdienu uz datiem balstītajā pasaulē šo šūnu izlādes līkni var izmantot, lai izveidotu precīzus prognozējošus akumulatora modeļus, lai simulētu un redzētu akumulatora reakciju ielādes stāvoklī bez reālistiskas pārbaudes, izmantojot programmatūru, piemēram, NI LabVIEW, MATLAB Simulink utt. un jūs gaida daudz vairāk lietojumprogrammu. Pilnīgu šī projekta darbību varat atrast zemāk esošajā video. Ja jums ir kādi jautājumi par šo projektu, lūdzu, ierakstiet tos komentāru sadaļā zemāk vai izmantojiet mūsu forumus. Ejiet un izklaidējieties ar to, un, ja vēlaties, mēs varam norādīt tālāk sniegtajā komentāru sadaļā, kā tālāk rīkoties tālāk. Līdz tam Adios !!!