Sisukord:

Mikrokontrolleril põhinev nutikas akulaadija: 9 sammu (piltidega)
Mikrokontrolleril põhinev nutikas akulaadija: 9 sammu (piltidega)

Video: Mikrokontrolleril põhinev nutikas akulaadija: 9 sammu (piltidega)

Video: Mikrokontrolleril põhinev nutikas akulaadija: 9 sammu (piltidega)
Video: Mikrolaineahju olemasolu ja valgusandur ZY-M100 ZigBee/WiFi Tuya Smart – nutikas juhtimine 2024, November
Anonim
Mikrokontrolleril põhinev nutikas akulaadija
Mikrokontrolleril põhinev nutikas akulaadija
Mikrokontrolleril põhinev nutikas akulaadija
Mikrokontrolleril põhinev nutikas akulaadija
Mikrokontrolleril põhinev nutikas akulaadija
Mikrokontrolleril põhinev nutikas akulaadija

Ahel, mida te näete, on nutikas akulaadija, mis põhineb ATMEGA8A -l ja millel on automaatne väljalülitus. Erinevad parameetrid kuvatakse LCD -ekraanil erinevatel laadimisolekutel. Samuti teeb vooluahel helisignaali laadimise lõppedes.

Ma ehitasin laadija põhiliselt oma 11.1v/4400maH liitiumioonaku laadimiseks. Püsivara on põhimõtteliselt kirjutatud selle konkreetse akutüübi laadimiseks. Te saate laadida oma laadimisprotokolli, et täita oma vajadusi teiste akutüüpide laadimiseks.

Nagu te teate, on nutikad akulaadijad turgudel hõlpsasti saadaval. Kuid olles elektrooniline entusiast, on mul alati parem ehitada oma, mitte osta seda, millel on staatilised/muutumatud funktsioonid. Selles moodulis on mul plaanis tulevikus täiendada, nii et olen jätnud sellega seoses ruumi.

Kui ma esimest korda ostsin oma eelmise 11,1 v/2200 mAh liitium-ioonaku, otsisin Internetist nutika juhtimisega isetegija akulaadijaid. Kuid leidsin väga piiratud ressursse. Siis tegin akulaadija, mis põhineb LM317-l ja see töötas minu jaoks tõesti hea. Aga kuna mu eelmine aku aja jooksul (ilma põhjuseta) tühjaks sai, ostsin teise 11,1v/4400mah liitium-ioonaku. Kuid seekord oli eelmine seadistus minu uue aku laadimiseks ebapiisav. nõue, õppisin natuke netis ja sain oma nutika laadija kujundada.

Jagan seda, kuna arvan, et seal on palju harrastajaid/harrastajaid, kes on tõesti kirglikud jõuelektroonika ja mikrokontrolleri kallal töötamisest ning samuti vajadusest luua oma nutikas laadija.

Vaatame kiirelt, kuidas laadida liitiumioonakut.

Samm: liitiumioonaku laadimisprotokoll

Liitium-ioonaku laadimiseks peavad olema täidetud teatud tingimused. Kui me tingimusi ei täida, on aku alalaetud või süüdatakse (kui see on üle laetud) või kahjustatakse seda püsivalt.

Seal on väga hea veebisait, kus saate teada kõike vajalikku erinevat tüüpi patareide kohta, ja muidugi teate veebisaidi nime, kui olete patareidega töötamisega tuttav … Jah, ma räägin akust batteryuniversity.com.

Siin on link, et teada saada vajalikke üksikasju liitiumioonaku laadimiseks.

Kui olete piisavalt laisk, et lugeda kõiki neid teooriaid, siis on põhiolemus järgmine.

1. 3,7v liitium-ioon aku täislaadimine on 4,2v. Meie puhul tähendab 11,1v liitium-ioonaku 3 x 3,7v akut. Täieliku laadimise korral peab aku jõudma 12,6v, kuid ohutuse tagamiseks laeb kuni 12,5v.

2. Kui aku hakkab jõudma täislaadimiseni, langeb laadija laadimisvool nii madalale kui 3% aku nominaalsest mahust. Näiteks on minu mobiiltelefoni aku maht 4400 mAh. Niisiis, kui aku on täielikult laetud, jõuab aku voolutugevus peaaegu 3% -5% -ni 4400mast, st vahemikus 132–220 mA. Laadimise ohutuks peatamiseks peatatakse laadimine, kui vooluhulk langeb alla 190ma (ligi 4% nimivõimsusest).

3. Kogu laadimisprotsess on jagatud kaheks põhiosaks: 1-konstantvool (CC-režiim), 2-konstantne pinge (CV-režiim). (Samuti on olemas laadimisrežiim, kuid me ei rakenda seda oma laadijas laadijana teavitab kasutajat täislaadimisest ärevusega, siis tuleb aku laadijast lahti ühendada)

CC režiim -

CC -režiimis laadib laadija akut 0,5c või 1c laadimiskiirusega. Mis kurat on siis 0,5c/1c ???? Lihtsalt öeldes, kui teie aku maht on näiteks 4400mah, siis CC -režiimis 0,5c on 2200ma ja 1c on 4400ma laadimisvool. "c" tähistab laadimis-/tühjenemiskiirust. Mõned akud toetavad ka 2c, st CC -režiimis, saate seadistada laadimisvoolu kuni 2x aku mahutavuseni, kuid see on hull !!!!!

Kuid turvalisuse huvides valin 4400 mAh aku laadimisvoolu 1000 mA, st 0,22 c. Selles režiimis jälgib laadija aku voolu, sõltumata laadimispingest. Laadija säilitab 1A laadimisvoolu, suurendades /väljundpinge vähendamine, kuni aku laeb 12,4 v -ni.

CV režiim -

Nüüd, kui aku pinge jõuab 12,4 V -ni, säilitab laadija oma väljundis 12,6 volti (sõltumata aku voolutugevusest). Nüüd peatab laadija laadimistsükli sõltuvalt kahest asjast. Kui aku pinge ületab 12,5 v samuti kui laadimisvool langeb alla 190ma (4% aku nimimahust, nagu eelnevalt selgitatud), siis laadimistsükkel peatatakse ja kostub helisignaal.

2. samm: skeem ja selgitus

Nüüd vaatame vooluringi tööd. Skeem on lisatud pdf -vormingus BIN.pdf -faili.

Ahela sisendpinge võib olla 19/20v. 19v saamiseks olen kasutanud vana sülearvuti laadijat.

J1 on klemmliides, mis ühendab vooluahela sisendpingeallikaga. Q1, D2, L1, C9 moodustavad buck -muunduri. Mis kurat see nüüd on? See on põhimõtteliselt alalisvoolu alalisvoolu muundur. Seda tüüpi muunduri abil saate u saavutada soovitud väljundpinge, muutes töötsüklit. Kui soovite buck -muundurite kohta rohkem teada saada, külastage seda lehte. aga ausalt öeldes on need teooriast täiesti erinevad. L1 & õigete väärtuste hindamiseks C9 minu nõudmiste jaoks kulus 3 päeva katse- ja veateadet. Kui kavatsete laadida erinevaid akusid, võib olla võimalik, et need väärtused muutuvad.

Q2 on toite mosfet Q1 draiveri transistor. R1 on Q1 eelpingetakisti. Väljundpinge juhtimiseks anname Q2 baasi pwm -signaali. C13 on lahtiühendamise kate.

Nüüd edastatakse väljund Q3 -le. Võib küsida küsimust: "Mis kasu on Q3 -st siin ??". Vastus on üsna lihtne, see toimib nagu lihtne lüliti. Kui me mõõdame aku pinget, lülitame Q3 välja, et eraldada laadimispinge väljund buck -muundurist. Q4 on Q3 draiver eelpingestustakisti R3 abil.

Pange tähele, et rajal on diood D1. Mida diood siin rada teeb? See vastus on samuti väga lihtne. Kui vooluahel ühendatakse toiteallikast lahti, kui aku on väljundi külge ühendatud, hakkab aku vool voolab vastupidises suunas MOSFET Q3 & Q1 keredioodide kaudu ja seega saavad U1 ja U2 aku sisendpinge ja lülitavad vooluahela aku pingest sisse. Selle vältimiseks kasutatakse D1.

Seejärel suunatakse D1 väljund vooluanduri sisendisse (IP+). See on hall-efekti baasvoolu andur, st voolutundlik osa ja väljundosa on eraldatud. Seejärel suunatakse vooluanduri väljund (IP-) aku. Siin moodustavad R5, RV1, R6 pingejaotusahela, et mõõta aku pinget/väljundpinget.

Aku pinge ja voolu mõõtmiseks kasutatakse siin atmega8 ADC -d. ADC võib mõõta max 5v. Kuid me mõõdame max 20v (mõne kõrgusega). Selleks, et vähendada pinget ADC vahemikku, 4: Kasutatakse 1 pingejaoturit. Potti (RV1) kasutatakse peenhäälestuseks/kalibreerimiseks. Ma arutan seda hiljem. C6 on lahtiühendamise kate.

ACS714 vooluanduri väljund antakse ka atmega8 ADC0 tihvtile. Selle ACS714 anduri abil mõõdame voolu. Mul on 5A versiooni pololu purunemisplaat ja see töötab tõesti suurepäraselt. Ma räägin sellest järgmises etapis kuidas mõõta voolu.

LCD on tavaline 16x2 lcd. Siin kasutatav LCD on konfigureeritud 4 -bitises režiimis, kuna atmega8 kontaktide arv on piiratud. CV2 on LCD heleduse reguleerimise pott.

Atmega8 on kellaga 16 MHz koos välise kristalliga X1, millel on kaks eralduskorki C10/11. Atmega8 ADC -üksust toidetakse Avcc -tihvti kaudu 10uH induktiivpooli kaudu. C7, C8 on Agndiga ühendatud lahtiühendatavad korgid. Asetage need PCB valmistamise ajal vastavalt Avccile ja Arefile. Pange tähele, et Agndi tihvti pole vooluringis näidatud. Agndi tihvt ühendatakse maaga.

Olen konfigureerinud atmega8 ADC välise Vrefi kasutamiseks, st me tarnime võrdluspinget Arefi tihvti kaudu. Selle peamine põhjus on maksimaalse võimaliku lugemistäpsuse saavutamine. Sisemine 2,56v võrdluspinge pole avrsis nii suur. Seepärast seadistasin selle väliselt. Siin tuleb nüüd tähele panna. 7805 (U2) tarnib ainult ACS714 andurit ja atmega8 Arefi tihvti. See on optimaalse täpsuse säilitamiseks. ACS714 annab stabiilse 2,5 V väljundpinge selle kaudu voolu ei voola. Aga näiteks kui ACS714 toitepinget alandatakse (näiteks 4,7 v), siis väheneb ka praegune väljundpinge (2,5 v) ja see tekitab sobimatu/eksliku voolu näidu. Samuti, kui me mõõdame pinget Vrefi suhtes, peab Arefi võrdluspinge olema veatu ja stabiilne. Sellepärast vajame stabiilset 5v.

Kui toitaksime ACS714 & Arefi toiteallikast U1, mis varustab atmega8 ja LCD -d, siis oleks U1 väljundis märkimisväärne pingelangus ning ampri ja pinge näit oleks ekslikud. Sellepärast kasutatakse siin vea kõrvaldamiseks U2 tarnides ainult Arefile ja ACS714 -le stabiilse 5v.

Pinge näidu kalibreerimiseks vajutatakse nuppu S1. S2 on reserveeritud edaspidiseks kasutamiseks. Saate selle nupu vastavalt oma valikule lisada/mitte lisada.

Samm: toimimine…

Toimiv …
Toimiv …
Toimiv …
Toimiv …
Toimiv …
Toimiv …

Sisselülitamisel lülitab atmega8 buck -muunduri sisse, andes Q2 baasil 25% pwm -väljundi. Seejärel käivitab Q2 Q1 ja buck -muundur käivitatakse. Q3 lülitatakse buck -muunduri väljundi lahtiühendamiseks välja ja aku. Seejärel loeb atmega8 aku pinget takisti jagaja kaudu. Kui akut pole ühendatud, kuvab atmega8 16x2 lcd kaudu teate "Sisesta aku" ja ootab akut. Kui aku on ühendatud, atmega8 kontrollib pinget. Kui pinge on madalam kui 9v, kuvab atmega8 16x2 lcd ekraanil "Vigane aku".

Kui leiti rohkem kui 9 V aku, lülitub laadija esmalt CC -režiimi ja lülitab sisse väljundi mosfet Q3. Laadimisrežiimi (CC) värskendatakse kohe, et kuvada. Kui aku pinge on suurem kui 12,4 V, siis mega8 lahkub kohe CC -režiimist ja lülitub CV -režiimi. Kui aku pinge on alla 12,4 v, hoiab mega8 1A laadimisvoolu, suurendades/vähendades buck -muunduri väljundpinget, muutes pwm -i töötsüklit. Laadimisvoolu loeb ACS714 vooluandur. Punkti väljundpinget, laadimisvoolu, PWM -i töötsüklit värskendatakse perioodiliselt LCD -ekraanil.

. Aku pinget kontrollitakse, lülitades Q3 välja iga 500 ms järel. Aku pinge värskendatakse kohe LCD -le.

Kui aku pinge saab laadimise ajal üle 12,4 volti, lahkub mega8 CC -režiimist ja lülitub CV -režiimi. Režiimi olek värskendatakse viivitamatult LCD -le.

Siis hoiab mega8 väljundpinget 12,6 volti, muutes bucki töötsüklit. Siin kontrollitakse aku pinget iga 1 sekundi järel. Niipea, kui aku pinge on suurem kui 12,5 v, kontrollitakse seda kui tõmmatud vool on alla 190ma. Kui mõlemad tingimused on täidetud, peatatakse laadimistsükkel, lülitades Q3 jäädavalt välja ja Q5 sisselülitamisel kõlab helisignaal. Samuti kuvab mega8 lcd kaudu "Charge complete".

Samm: vajalikud osad

Vajalikud osad
Vajalikud osad

Allpool on loetletud projekti lõpuleviimiseks vajalikud osad. Palun vaadake pinouti andmelehtedelt. Lisatud on ainult oluliste osade andmelehe link

1) ATMEGA8A x 1. (andmeleht)

2) ACS714 5A vooluandur Pololu x 1 -st (soovitan tungivalt kasutada Pololu andurit, kuna need on kõigi teiste kasutatavate andurite hulgas kõige täpsemad. Selle leiate siit). Pinnout on kirjeldatud pildil.

3) IRF9540 x 2. (andmeleht)

4) 7805 x 2 (soovitatav Toshiba originaalvaruosast, kuna need annavad kõige stabiilsema 5 V väljundi). (Andmeleht)

5) 2n3904 x 3. (andmeleht)

6) 1n5820 schottky x 2. (andmeleht)

7) 16x2 LCD x 1. (andmeleht)

8) 330uH/2A võimsusinduktor x 1 (soovitatav coilmasterilt)

9) 10uH induktor x 1 (väike)

10) Takistid -(kõik takistid on 1% MFR tüüpi)

150R x 3

680R x 2

1k x 1

2k2 x 1

10 x 2

22k x 1

5k pott x 2 (trükkplaadi kinnituse tüüp)

11) Kondensaatorid

Märkus: ma ei kasutanud C4 -d. Kui kasutate 19 -voldise toiteallikana sülearvuti toiteallikat/reguleeritud toiteallikat, pole seda vaja kasutada.

100uF/25v x 3

470uF/25v x 1

1000uF/25v x 1

100n x 8

22p x 2

12) PCB -kinnituse hetkeline tõukelüliti x 2

13) 20v helisignaal x 1

14) 2 -kontaktiline klemmliistuliides x 2

15) Kabinet (ma kasutasin sellist kappi.). Võite kasutada kõike, mis teile meeldib.

16) 19v sülearvuti toiteallikas (muutsin hp sülearvuti toiteallikat. Saate kasutada mis tahes tüüpi toiteallikat, kui soovite. Kui soovite seda ehitada, külastage minu juhendit.)

17) Keskmise suurusega jahutusradiaator U1 ja Q1 jaoks. Saate seda tüüpi kasutada. Või võite viidata minu vooluringi piltidele. Kuid kindlasti kasutage mõlema jaoks jahutusradiaatorit.

18) Banaanipistik - emane (must ja punane) x 1 + isane (must ja punane) (sõltuvalt pistikute vajadusest)

Samm: arvutamise aeg ……

Pinge mõõtmise arvutamine:

Maksimaalne pinge, mida mõõdame atmega8 adc abil, on 20v. Kuid atmega8 adc saab mõõta max 5v. Seega, et 20v teha 5v vahemikus, kasutatakse siin 4: 1 pingejaoturit (20v/4 = 5v). Nii et me saaksime seda rakendada, kasutades lihtsalt kahte takistit, kuid meie puhul olen lisanud poti kahe fikseeritud takisti vahele, et saaksime potti keerates täpsust käsitsi reguleerida. ADC eraldusvõime on 10 bit, st adc tähistab 0v kuni 5v kui 0 kuni 1023 kümnendkoha numbrit või 00h kuni 3FFh. ("h" tähistab kuusnurkseid numbreid). Viide on Arefi tihvti kaudu väliselt seatud väärtusele 5v.

Nii et mõõdetud pinge = (adc näit) x (Vref = 5v) x (takisti jagaja tegur, st 4 antud juhul) / (max adc näit, st 1023 10bit adc jaoks).

Oletame, et saame adc näit 512. Siis mõõdetakse pinge -

(512 x 5 x 4) / 1023 = 10v

Praegune mõõtmisarvutus:

ACS714 annab väljundpistikul 2,5 V stabiilse väljundi, kui IP+ -st IP- suunas voolu ei voola. See annab 185 mv/A üle 2,5 V, st kui vooluringi kaudu voolab 3A vool, annab acs714 2,5v+(0,185 x 3) v = 3,055v selle tihvti juures.

Seega on praegune mõõtmisvalem järgmine -

Mõõdetud vool = (((adc näit)*(Vref = 5v)/1023) -2,5)/0,185.

näiteks adc näit on 700, siis on mõõdetud vool - (((700 x 5)/1023) - 2,5)/0,185 = 4,98A.

6. samm: tarkvara

Tarkvara on kodeeritud Winavris, kasutades GCC -d. Olen koodi moduleerinud, st olen loonud erinevaid teeke, nagu ADC raamatukogu, LCD -raamatukogu jne. ADC -teek sisaldab vajalikke käske, et seadistada ja suhelda ADC -ga. LCD -raamatukogu sisaldab kõiki funktsioone 16x2 lcd juhtimiseks. Võite kasutada ka lcd_updated _library.c, kuna selles teegis muudetakse lcd käivitusjärjestust. Kui soovite kasutada uuendatud raamatukogu, nimetage see ümber lcd.c -ga

Fail main.c sisaldab põhifunktsioone. Li-ioonide laadimisprotokoll on siin kirjutatud. Palun määratlege ref_volt in main.c, mõõtes U2 (7805) väljundit täpse multimeetriga, et saada arvutustena täpsed näidud põhinevad sellel.

Peapiirist möödahiilimiseks võite lihtsalt.hex -faili otse oma mega8 -sse põletada.

Neile, kes soovivad kirjutada teise laadimisprotokolli, olen lisanud piisavalt kommentaare, mille abil isegi laps saab aru, mis toimub iga rea täitmisel. Lihtsalt peate kirjutama oma protokolli erinevat tüüpi aku jaoks. Kui kasutate Li- erineva pingega ioonid, peate ainult parameetreid muutma. (Kuigi seda ei testita teiste liitiumioonide/muude akutüüpide puhul. Peate selle ise välja töötama).

Soovitan tungivalt seda vooluringi mitte ehitada, kui see on teie esimene projekt või olete mikrokontrolleri/toiteelektroonika jaoks uus.

Olen iga faili üles laadinud algses vormingus, välja arvatud Makefile, kuna see avab probleemi. Laadisin selle üles.txt -vormingus. Lihtsalt kopeerige sisu ja kleepige see uude Makefile'i ning ehitage kogu projekt. Voila…. Olete valmis hex -faili põletama.

Samm 7: Aitab teooriast….. olgem Buld It

Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It
Aitab teooriast … … olgu Buld It

Siin on minu prototüübi pildid leivaplaadist kuni pcb -sse viimistlemiseni. Lisateabe saamiseks lugege palun piltide märkmeid. Pildid on järjestatud algusest lõpuni.

8. samm: enne esimest laadimistsüklit ……. Kalibreerige !!

Enne aku laadimist laadijaga peate selle kõigepealt kalibreerima. Vastasel juhul ei saa see akut laadida/üle laadida.

Kalibreerimist on kahte tüüpi 1) Pinge kalibreerimine. 2) Praegune kalibreerimine. Kalibreerimiseks toimige järgmiselt.

Algul mõõta U2 väljundpinget. Seejärel määratle see main.c -s kui ref_volt. Minu miinus oli 5.01. Muuda seda vastavalt oma mõõtmistele. See on pinge ja voolu kalibreerimise peamine vajalik samm. Voolu kalibreerimiseks pole midagi muidu on see vajalik. Kõige eest hoolitseb tarkvara ise

Nüüd, kui olete hex -faili pärast põhivoolu ref volti määratlemist põletanud, tapke seadme võimsus.

. Mõõtke nüüd multimeetri abil laetavat aku pinget ja ühendage aku seadmega.

Vajutage nüüd nuppu S1 ja hoidke seda all ning lülitage vooluahel sisse, kui nuppu vajutatakse. Lühikese umbes 1 -sekundilise viivituse järel vabastage nupp S1. Pange tähele, et seade ei lülitu kalibreerimisrežiimi, kui lülitate vooluahela kõigepealt sisse, seejärel vajutage S1.

Nüüd näete ekraanil, et ahel on lülitatud kalibreerimisrežiimi. LCD -ekraanil kuvatakse koos aku pingega "cal mode". Nüüd sobitage LCD -l näidatud aku pinge oma multimeetri näituga, keerates potti. Kui olete lõpetanud, vajutage uuesti S1 -lülitit, hoidke seda umbes sekundi jooksul lahti ja vabastage see. Kalibreerimisrežiimist väljub. Taaskäivitage laadija, lülitades selle välja ja sisse.

Ülaltoodud protsessi saab teha ka ilma aku ühendamata. Peate väljundklemmiga (J2) ühendama välise toiteallika. Pärast kalibreerimisrežiimi sisenemist kalibreerige potti kasutades. Kuid seekord ühendage esmalt väline toiteallikas lahti ja seejärel vajutage S1 kalibreerimisrežiimist väljumiseks. See on vajalik esmalt välise toiteallika lahtiühendamiseks, et vältida mis tahes seadmete rikkeid.

Samm 9: sisselülitamine pärast kalibreerimist … … nüüd olete rokkimiseks valmis

Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima
Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima
Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima
Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima
Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima
Sisselülitamine pärast kalibreerimist … … nüüd olete valmis rokkima

Nüüd, kui kalibreerimine on lõpule viidud, saate nüüd laadimisprotsessi alustada. Ühendage esmalt aku ja seejärel lülitage seade sisse. Puhkuse eest hoolitseb laadija.

Minu vooluring on 100% töökorras ja testitud. Aga kui märkate midagi, andke mulle sellest teada. Samuti võtke julgelt ühendust, kui teil on küsimusi.

Õnnelik hoone.

Rgds // Sharanya

Soovitan: