Turinys:
- 1 žingsnis: funkcijos ir kaina
- 2 žingsnis: schema ir veikimo teorija
- 3 žingsnis: PCB ir elektronika
- 4 žingsnis: korpusas ir surinkimas
- 5 veiksmas: „Arduino“kodas
- 6 žingsnis: „Java“kodas
- 7 žingsnis: sėkmė
Video: Maitinimas iš skaitmeninio akumuliatoriaus: 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Ar kada nors norėjote maitinimo šaltinio, kurį galėtumėte naudoti kelyje, net jei netoliese nėra elektros lizdo? Ir ar nebūtų šaunu, jei jis taip pat būtų labai tikslus, skaitmeninis ir valdomas per kompiuterį?
Šioje pamokoje aš jums parodysiu, kaip tiksliai tai sukurti: skaitmeninis akumuliatorinis maitinimo šaltinis, suderinamas su arduino ir kurį galima valdyti per kompiuterį per USB.
Prieš kurį laiką aš sukūriau maitinimo šaltinį iš seno ATX maitinimo šaltinio ir, nors jis puikiai veikia, norėjau sustiprinti savo žaidimą naudodami skaitmeninį maitinimo šaltinį. Kaip jau minėta, jis maitinamas baterijomis (tiksliau - 2 ličio elementai) ir gali tiekti ne daugiau kaip 20 V esant 1 A; to užtenka daugumai mano projektų, kuriems reikalingas tikslus energijos tiekimas.
Parodysiu visą projektavimo procesą, o visus projekto failus rasite mano „GitHub“puslapyje:
Pradėkime!
1 žingsnis: funkcijos ir kaina
funkcijos
- Pastovios įtampos ir nuolatinės srovės režimai
- Naudoja mažo triukšmo linijinį reguliatorių, prieš kurį yra stebėjimo išankstinis reguliatorius, siekiant sumažinti energijos išsisklaidymą
- Naudokite rankiniu būdu surenkamus komponentus, kad projektas būtų prieinamas
- Sukurtas naudojant ATMEGA328P, užprogramuotas naudojant „Arduino IDE“
- Bendravimas kompiuteriu per „Java“programą per „micro USB“
- Pagaminta iš 2 apsaugotų 18650 ličio jonų elementų
- 18 mm atstumu išdėstyti bananų kištukai, suderinami su BNC adapteriais
Specifikacijos
- 0 - 1A, 1 mA žingsniai (10 bitų DAC)
- 0 - 20 V, 20 mV žingsniai (10 bitų DAC) (tikras 0 V veikimas)
- Įtampos matavimas: 20 mV raiška (10 bitų ADC)
-
Dabartinis matavimas:
- <40mA: 10uA raiška (ina219)
- <80mA: 20uA raiška (ina219)
- <160mA: 40uA raiška (ina219)
- <320 mA: 80uA raiška (ina219)
- > 320mA: 1mA raiška (10 bitų ADC)
Kaina
Visas maitinimo šaltinis man kainavo apie 135 USD su visais vienkartiniais komponentais. Baterijos yra brangiausia dalis (30 USD už 2 ląsteles), nes jos yra apsaugotos 18650 ličio elementų. Jei akumuliatoriaus eksploatuoti nereikia, galima žymiai sumažinti išlaidas. Praleidus baterijas ir įkrovimo grandinę, kaina nukrenta iki maždaug 100 USD. Nors tai gali atrodyti brangu, maitinimo šaltiniai su daug mažesniu našumu ir funkcijomis dažnai kainuoja daugiau nei tai.
Jei nenorite užsisakyti komponentų iš „ebay“ar „aliexpress“, kaina su baterijomis sumažėtų iki 100 USD, o be jų - 70 USD. Dalių pristatymas užtrunka ilgiau, tačiau tai yra perspektyvus pasirinkimas.
2 žingsnis: schema ir veikimo teorija
Norėdami suprasti grandinės veikimą, turėsime pažvelgti į schemą. Aš suskirstiau jį į funkcinius blokus, kad būtų lengviau suprasti; Taip pat žingsnis po žingsnio paaiškinsiu operaciją. Ši dalis yra gana išsami ir reikalauja gerų elektronikos žinių. Jei tiesiog norite žinoti, kaip sukurti grandinę, galite pereiti prie kito žingsnio.
Pagrindinis blokas
Operacija pagrįsta LT3080 mikroschema: tai linijinis įtampos reguliatorius, kuris gali sumažinti įtampą pagal valdymo signalą. Šį valdymo signalą sukurs mikrovaldiklis; kaip tai daroma, bus išsamiai paaiškinta vėliau.
Įtampos nustatymas
Grandinė aplink LT3080 generuoja atitinkamus valdymo signalus. Pirma, mes pažvelgsime į tai, kaip nustatoma įtampa. Įtampos nustatymas iš mikrovaldiklio yra PWM signalas (PWM_Vset), kuris filtruojamas žemo dažnio filtru (C9 ir R26). Tai sukuria analoginę įtampą - nuo 0 iki 5 V - proporcingą norimai išėjimo įtampai. Kadangi mūsų išėjimo diapazonas yra 0 - 20 V, šį signalą turėsime sustiprinti koeficientu 4. Tai daro neinvertuojanti U3C opamp konfigūracija. Nustatyto kaiščio stiprinimas nustatomas pagal R23 // R24 // R25 ir R34. Šie rezistoriai toleruoja 0,1%, kad sumažintų klaidas. R39 ir R36 čia nesvarbu, nes jie yra grįžtamojo ryšio ciklo dalis.
Dabartinis nustatymas
Šį kaištį galima naudoti ir antram nustatymui: dabartiniam režimui. Norime išmatuoti srovės stiprį ir išjungti išėjimą, kai ji viršija norimą srovę. Todėl mes vėl pradedame nuo PWM signalo (PWM_Iset), sugeneruoto mikrovaldiklio, kuris dabar yra žemo dažnio filtras ir susilpnintas, kad nuo 0 iki 5 V diapazono pereitų į 0 - 2 V diapazoną. Ši įtampa dabar lyginama su įtampos kritimu per dabartinį jutimo rezistorių (ADC_Iout, žr. Toliau), naudojant lyginamąją opamp U3D konfigūraciją. Jei srovė yra per didelė, tai įjungs šviesos diodą ir taip pat atitrauks nustatytą LT3080 liniją prie žemės (per Q2), taip išjungdama išėjimą. Srovės matavimas ir signalo ADC_Iout generavimas atliekamas taip. Išėjimo srovė teka per rezistorius R7 - R16. Tai iš viso 1 omas; priežastis, kodėl pirmiausia nenaudojamas 1R, yra dvejopa: 1 rezistorius turėtų turėti didesnę galią (jis turi išsklaidyti bent 1 W), o lygiagrečiai naudojant 10 1% rezistorių, mes gauname didesnį tikslumą nei su vienu 1 % rezistoriumi. Gerą vaizdo įrašą apie tai, kodėl tai veikia, rasite čia: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Kai per šiuos rezistorius teka srovė, jis sukuria įtampos kritimą, kurį galime išmatuoti. prieš LT3080, nes įtampos kritimas neturi turėti įtakos išėjimo įtampai. Įtampos kritimas matuojamas diferencialiniu stiprintuvu (U3B), kurio padidėjimas yra 2. Dėl to įtampos diapazonas yra 0 - 2 V (daugiau apie tai vėliau), taigi įtampos daliklis prie srovės PWM signalo. Buferis (U3A) yra skirtas įsitikinti, kad į rezistorius R21, R32 ir R33 tekanti srovė nepatenka per dabartinį jutimo rezistorių, o tai turėtų įtakos jo rodmenims. Taip pat atkreipkite dėmesį, kad tai turėtų būti opcija nuo bėgio iki bėgio, nes įėjimo įtampa esant teigiamam įėjimui yra lygi maitinimo įtampai. Neapverstas stiprintuvas skirtas tik kurso matavimui, tačiau labai tiksliems matavimams mes turime INA219 mikroschemą. Ši mikroschema leidžia mums išmatuoti labai mažas sroves ir yra nukreipta per I2C.
Papildomi dalykai
„LT3080“išvestyje turime daugiau dalykų. Visų pirma, yra srovės kriauklė (LM334). Tai stabilizuoja LT3080 nuolatinę 677 uA srovę (nustatyta rezistoriaus R41). Tačiau jis prijungtas ne prie žemės, o prie neigiamos įtampos VEE. To reikia, kad LT3080 veiktų iki 0 V. Kai prijungta prie žemės, žemiausia įtampa būtų apie 0,7 V. Atrodo, kad tai pakankamai žema, tačiau atminkite, kad tai neleidžia visiškai išjungti maitinimo šaltinio. „Zener“diodas D3 naudojamas išėjimo įtampai užfiksuoti, jei ji viršija 22 V, o rezistoriaus daliklis sumažina išėjimo įtampos diapazoną nuo 0 iki 20 V iki 0 - 2 V (ADC_Vout). Deja, šios grandinės yra išėjime iš LT3080, o tai reiškia, kad jų srovė prisidės prie išėjimo srovės, kurią norime išmatuoti. Laimei, šios srovės yra pastovios, jei įtampa išlieka pastovi; kad galėtume kalibruoti srovę, kai pirmiausia atjungiama apkrova.
Įkraukite siurblį
Neigiamą įtampą, kurią minėjome anksčiau, sukuria įdomi maža grandinė: įkrovimo siurblys. Apie jo veikimą norėčiau kreiptis čia: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Jį maitina 50% mikrovaldiklio (PWM) PWM
„Boost“keitiklis
Dabar pažvelkime į pagrindinio bloko „Vboost“įėjimo įtampą. Matome, kad jis yra 8 - 24 V, bet palaukite, 2 ličio elementai nuosekliai suteikia maksimalią 8,4 V įtampą? Iš tiesų, ir todėl mes turime padidinti įtampą naudodami vadinamąjį stiprinimo keitiklį. Mes visada galėtume padidinti įtampą iki 24 V, nesvarbu, kokios išvesties norime; tačiau tai sugaištų daug energijos LT3080 ir viskas būtų karšta! Taigi užuot tai darę, mes padidinsime įtampą šiek tiek daugiau nei išėjimo įtampa. Tinkama apie 2,5 V didesnė, atsižvelgiant į įtampos kritimą dabartiniame jutiklyje ir LT3080 išėjimo įtampą. Įtampa nustatoma rezistoriais ant stiprintuvo keitiklio išėjimo signalo. Norėdami pakeisti šią įtampą, mes naudojame skaitmeninį potenciometrą MCP41010, kuris valdomas naudojant SPI.
Akumuliatoriaus įkrovimas
Tai veda prie tikrosios įėjimo įtampos: baterijų! Kadangi mes naudojame apsaugotas ląsteles, mes tiesiog turime jas sudėti į seriją ir baigsime! Čia svarbu naudoti apsaugotas ląsteles, kad būtų išvengta per didelės srovės ar perteklinio iškrovimo, taigi ir elementų pažeidimo. Vėlgi, mes naudojame įtampos daliklį akumuliatoriaus įtampai matuoti ir nuleisti iki naudingo diapazono. Dabar pereikite prie įdomios dalies: įkrovimo grandinės. Tam naudojame BQ2057WSN lustą: kartu su TIP32CG jis iš esmės sudaro linijinį maitinimo šaltinį. Šis lustas įkrauna ląsteles per atitinkamą CV CC trajektoriją. Kadangi mano baterijose nėra temperatūros zondo, šis įėjimas turėtų būti susietas su puse akumuliatoriaus įtampos. Tai baigia maitinimo šaltinio įtampos reguliavimo dalį.
5V reguliatorius
Arduino 5 V maitinimo įtampa pagaminta naudojant šį paprastą įtampos reguliatorių. Tačiau tai nėra pats tiksliausias 5 V išėjimas, tačiau tai bus išspręsta toliau.
2,048 V įtampos atskaitos taškas
Šis mažas lustas suteikia labai tikslią 2,048 V įtampos atskaitą. Tai naudojama kaip nuoroda analoginiams signalams ADC_Vout, ADC_Iout, ADC_Vbatt. Štai kodėl mums reikėjo įtampos daliklių, kad šie signalai sumažėtų iki 2 V. Mikrovaldiklis Šio projekto smegenys yra ATMEGA328P, tai yra tas pats lustas, kuris naudojamas „Arduino Uno“. Mes jau peržiūrėjome daugumą valdymo signalų, tačiau vis dėlto yra keletas įdomių papildymų. Sukamieji kodavimo įrenginiai yra prijungti prie 2 vienintelių arduino išorinių pertraukimo kaiščių: PD2 ir PD3. Tai reikalinga patikimam programinės įrangos diegimui. Apačioje esantys jungikliai naudoja vidinį traukimo rezistorių. Tada yra šis keistas įtampos skirstytuvas ant potenciometro (puodo) lusto pasirinkimo linijos. Įtampos daliklis išėjime, kam tai naudinga; galėtum pasakyti. Kaip minėta anksčiau, 5 V maitinimas nėra labai tikslus. Todėl būtų gerai tai tiksliai išmatuoti ir atitinkamai pakoreguoti PWM signalo veikimo ciklą. Bet kadangi nebeturėjau daugiau laisvų įėjimų, turėjau atlikti dvigubą uždėjimą. Įjungus maitinimo šaltinį, šis kaištis pirmiausia nustatomas kaip įvestis: jis matuoja maitinimo bėgelį ir pats kalibruoja. Tada jis nustatomas kaip išvestis ir gali vairuoti lusto pasirinkimo liniją.
Ekrano tvarkyklė
Ekranui norėjau įprasto ir pigaus „hitachi“LCD ekrano. Juos varo 6 smeigtukai, bet kadangi man neliko kaiščių, man reikėjo kito sprendimo. Į pamainą registras į pagalbą! 74HC595 leidžia valdyti ekraną naudojant SPI liniją, todėl man reikia tik 1 papildomos mikroschemų pasirinkimo linijos.
FTDI
Paskutinė šio energijos tiekimo dalis yra ryšys su žiauriu išoriniu pasauliu. Tam serijinius signalus turime paversti USB signalais. Tai daroma naudojant FTDI mikroschemą, kuri yra prijungta prie mikro USB prievado, kad būtų lengviau prijungti.
Ir tai viskas!
3 žingsnis: PCB ir elektronika
Dabar, kai suprantame, kaip veikia grandinė, galime pradėti ją kurti! Galite tiesiog užsisakyti PCB internetu iš savo mėgstamo gamintojo (mano kaina yra apie 10 USD), gerber failus galite rasti mano „GitHub“kartu su medžiagų sąrašu. Tada PCB surinkimas iš esmės yra komponentų litavimas pagal šilkografiją ir medžiagų sąrašą.
Pirmasis žingsnis yra SMD komponentų litavimas. Daugumą jų lengva padaryti rankomis, išskyrus FTDI mikroschemą ir „micro USB“jungtį. Todėl galite išvengti šių 2 komponentų litavimo ir naudoti FTDI pertraukimo plokštę. Pateikiau antgalių kaiščius, kur tai galima lituoti.
Baigę SMD darbą, galite pereiti prie visų skylių komponentų. Tai labai paprasta. Dėl lustų galbūt norėsite naudoti lizdus, o ne lituoti juos tiesiai prie plokštės. Pageidautina naudoti ATMEGA328P su „Arduino“įkrovos įkrovikliu, kitaip turėsite jį įkelti naudodami ICSP antraštę (parodyta čia).
Vienintelė dalis, kuriai reikia skirti daugiau dėmesio, yra LCD ekranas, nes jis turi būti montuojamas kampu. Lituokite ant jo kelias kampines antraštes, o plastikinė dalis nukreipta į ekrano apačią. Tai leis gerai išdėstyti ekraną ant plokštės. Po to jis gali būti lituojamas vietoje, kaip ir bet kuris kitas skylės komponentas.
Liko tik pridėti 2 laidus, kurie bus prijungti prie bananų gnybtų priekinėje plokštėje.
4 žingsnis: korpusas ir surinkimas
Sukūrę PCB, galime pereiti prie korpuso. Aš specialiai suprojektavau PCB aplink šį hammondo dėklą, todėl nerekomenduojama naudoti kito dėklo. Tačiau visada galite 3D spausdinti tų pačių matmenų dėklą.
Pirmasis žingsnis yra paruošti galinį skydelį. Mums reikės gręžti skyles varžtams, jungikliams ir pan. Aš tai padariau ranka, bet jei turite prieigą prie CNC, tai būtų tikslesnis pasirinkimas. Aš padariau skyles pagal schemą ir paliečiau varžtų skyles.
Gera idėja dabar pridėti šiek tiek šilko pagalvėlių ir laikyti jas vietoje nedideliu lašeliu super klijų. Jie izoliuos LT3080 ir TIP32 nuo galinės plokštės, tuo pačiu leisdami perduoti šilumą. Nepamirškite jų! Prisukdami drožles prie galinės plokštės, naudokite žėručio poveržlę, kad užtikrintumėte izoliaciją!
Dabar galime sutelkti dėmesį į priekinį skydelį, kuris tiesiog slysta vietoje. Dabar galime pridėti bananų kėliklius ir sukamųjų kodavimo įrenginių rankenėles.
Kai abi plokštės yra vietoje, dabar galime įdėti mazgą į dėklą, įdėti baterijas ir viską uždaryti. Įsitikinkite, kad naudojate apsaugotas baterijas, nenorite, kad elementai sprogtų!
Šiuo metu aparatinė įranga yra baigta, dabar belieka įpūsti tam tikrą gyvybę naudojant programinę įrangą!
5 veiksmas: „Arduino“kodas
Šio projekto smegenys yra ATMEGA328P, kurį programuosime su „Arduino IDE“. Šiame skyriuje aš atliksiu pagrindinę kodo operaciją, išsamią informaciją galite rasti kaip komentarus kodo viduje.
Kodas iš esmės susideda iš šių veiksmų:
- Skaitykite serijinius duomenis iš java
- Apklausos mygtukai
- Išmatuokite įtampą
- Išmatuokite srovę
- Išmatuokite srovę naudodami INA219
- Siųsti serijinius duomenis į java
- Konfigūruokite „boostconvertor“
- Įkraukite akumuliatorių
- Atnaujinti ekraną
Sukamuosius kodavimo įrenginius tvarko pertraukimo aptarnavimo tvarka, kad jie kuo geriau reaguotų.
Dabar kodą galima įkelti į plokštę per mikro USB prievadą (jei lustas turi įkrovos įkroviklį). Lenta: „Arduino pro“arba „pro mini“Programuotojas: AVR ISP / AVRISP MKII
Dabar galime pažvelgti į „Arduino“ir kompiuterio sąveiką.
6 žingsnis: „Java“kodas
Norėdami registruoti duomenis ir valdyti maitinimą per kompiuterį, sukūriau „Java“programą. Tai leidžia mums lengvai valdyti plokštę per GUI. Kaip ir naudojant „Arduino“kodą, nesigilinsiu į visas detales, bet pateikiu apžvalgą.
Mes pradedame nuo lango su mygtukais, teksto laukais ir tt; pagrindiniai GUI dalykai.
Dabar ateina linksmoji dalis: pridedami USB prievadai, kuriems naudojau jSerialComm biblioteką. Pasirinkus prievadą, „Java“klausysis gaunamų duomenų. Taip pat galime siųsti duomenis į įrenginį.
Be to, visi gaunami duomenys išsaugomi csv faile, kad vėliau būtų galima apdoroti duomenis.
Vykdydami.jar failą, pirmiausia turėtume pasirinkti tinkamą prievadą iš išskleidžiamojo meniu. Po prijungimo duomenys pradės ateiti, o mes galėsime nusiųsti savo nustatymus į maitinimo šaltinį.
Nors programa yra gana paprasta, gali būti labai naudinga ją valdyti per kompiuterį ir registruoti jos duomenis.
7 žingsnis: sėkmė
Po visų šių darbų dabar turime visiškai funkcionalų maitinimo šaltinį!
Taip pat turiu padėkoti kai kuriems žmonėms už palaikymą:
- Projektas buvo paremtas EEVBLOG uSupply projektu ir jo Rev C schema. Taigi ypatingas ačiū Davidui L. Jonesui, kad jis išleido savo schemas pagal atvirojo kodo licenciją ir pasidalino visomis savo žiniomis.
- Didelis ačiū Johanui Pattynui už šio projekto prototipų gamybą.
- Taip pat Cedricas Busschotsas ir Hansas Ingelbertas nusipelno nuopelnų už pagalbą šalinant trikčių šalinimą.
Dabar galime mėgautis savo namuose pagamintu maitinimo šaltiniu, kuris pravers dirbant su kitais nuostabiais projektais! Ir svarbiausia: pakeliui išmokome daug dalykų.
Jei jums patiko šis projektas, balsuokite už mane „powerupply“konkurse, būčiau labai dėkingas! Https: //www.instructables.com/contest/powersupply/
Antrasis prizas elektros energijos tiekimo konkurse
Rekomenduojamas:
Gręžtuvo akumuliatoriaus maitinimas gitaros pedalams: 3 žingsniai
Gręžtuvo akumuliatoriaus maitinimo šaltinis gitaros pedalams: Aš sukūriau šį gręžtuvo akumuliatoriaus maitinimo šaltinį prieš porą mėnesių ir iki šiol puikiai veikė. Baterija tarnauja tikrai ilgai, pavyzdžiui, daugiau nei 10 valandų su 4 pedalais, kai ją išbandžiau. Aš nusipirkau visas dalis „Amazon“, jau turėjau baterijas ir
Maitinimas be tinklo: 5 žingsniai (su nuotraukomis)
Maitinimas be tinklo: Šis projektas yra tyli, patogi patalpose alternatyva dujomis varomam generatoriui. Jei kraunate įrenginius, naudojate lempas ar net ribotą laiką naudojate elektros variklį, šis maitinimo šaltinis iš tinklo yra puikus kompanionas stovyklavietėse ar avarinėse situacijose
„Pasidaryk pats“akumuliatoriaus įkrovos indikatorius/automatinis 12 V akumuliatoriaus išjungimas: 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“akumuliatoriaus įkrovos indikatorius/automatinis 12 V akumuliatoriaus išjungimas: „Pasidaryk pats“… Mes visi patyrėme situaciją, kai mūsų aukščiausios klasės įkrovikliai yra užsiėmę tų ličio polimerų akumuliatorių įkrovimu, tačiau jums vis tiek reikia įkrauti tą 12 voltų švino rūgšties akumuliatorių ir vienintelį įkroviklį. got yra aklas …. Taip, aklas
Skaitmeninis USB C maitinimas „Bluetooth“maitinimas: 8 žingsniai (su nuotraukomis)
Skaitmeninis USB C maitinimas „Bluetooth“maitinimo šaltinis: ar kada nors norėjote maitinimo šaltinio, kurį galėtumėte naudoti kelyje, net jei netoliese nėra elektros lizdo? Ir ar nebūtų šaunu, jei jis taip pat būtų labai tikslus, skaitmeninis ir valdomas per kompiuterį ir telefoną? Šioje pamokoje aš jums parodysiu, kaip tiksliai pastatyti
DXG 305V skaitmeninio fotoaparato akumuliatoriaus modas - nebėra išeikvotų baterijų!: 5 žingsniai
„DXG 305V“skaitmeninio fotoaparato akumuliatoriaus modas - nebėra nusidėvėjusių baterijų !: Turėjau šį skaitmeninį fotoaparatą keletą metų ir pastebėjau, kad jis akimirksniu išsiurbia įkraunamas baterijas! Pagaliau pagalvojau, kaip jį modifikuoti, kad galėčiau sutaupyti baterijas tiems laikams, kai man iš tikrųjų reikėjo