Turinys:

Skaitmeninis USB C maitinimas „Bluetooth“maitinimas: 8 žingsniai (su nuotraukomis)
Skaitmeninis USB C maitinimas „Bluetooth“maitinimas: 8 žingsniai (su nuotraukomis)

Video: Skaitmeninis USB C maitinimas „Bluetooth“maitinimas: 8 žingsniai (su nuotraukomis)

Video: Skaitmeninis USB C maitinimas „Bluetooth“maitinimas: 8 žingsniai (su nuotraukomis)
Video: Lesson 68, Home Automation: How to control 16 Channel Relay module using Arduino control 16 AC loads 2024, Liepa
Anonim
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „Bluetooth“maitinimo šaltinis
Skaitmeninis USB C maitinamas „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 sukurti: skaitmeninį maitinimo šaltinį, kuris maitinamas per USB C. Jis yra suderinamas su arduino ir gali būti valdomas per kompiuterį per USB arba per jūsų telefoną per „Bluetooth“.

Šis projektas yra mano ankstesnio maitinimo šaltinio, kuris buvo maitinamas baterijomis ir kuriame yra ekranas ir rankenėlės, evoliucija. Patikrinkite čia! Tačiau norėjau būti mažesnis, todėl aš tai padariau!

Maitinimas gali būti maitinamas iš USB C akumuliatoriaus banko arba telefono įkroviklio. Tai leidžia iki 15 W galios, kurios pakanka daugumai mažos galios elektronikos maitinti! Kad tokiame mažame įrenginyje būtų gera vartotojo sąsaja, aš įtraukiau „Bluetooth“ir „Android“programą valdikliams. Tai daro šį maitinimo šaltinį ypač nešiojamą!

Parodysiu visą projektavimo procesą, o visus projekto failus rasite mano „GitHub“puslapyje:

Pradėkime!

1 žingsnis: funkcijos ir kaina

Savybės ir kaina
Savybės ir kaina

funkcijos

  • Maitinamas USB C
  • Valdomas per „Android“programą per „Bluetooth“
  • Valdomas naudojant „Java“per USB C
  • 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ą
  • Sukurtas naudojant ATMEGA32U4, užprogramuotas naudojant „Arduino IDE“
  • Gali būti maitinamas iš USB C akumuliatoriaus banko, kad būtų nešiojamas
  • USB C ir „Apple“įkroviklio aptikimas
  • 18 mm atstumu išdėstyti bananų kištukai, suderinami su BNC adapteriais

Specifikacijos

  • 0 - 1A, 1 mA žingsniai (10 bitų DAC)
  • 0 - 25 V, 25 mV žingsniai (10 bitų DAC) (tikras 0 V veikimas)
  • Įtampos matavimas: 25 mV raiška (10 bitų ADC)
  • Dabartinis matavimas: <40mA: 10uA raiška (ina219) <80mA: 20uA rezoliucija (ina219) <160mA: 40uA rezoliucija (ina219) <320mA: 80uA raiška (ina219)> 320mA: 1mA raiška (10 bitų ADC)

Kaina

Visas maitinimo šaltinis man kainavo apie 100 USD su visais vienkartiniais komponentais. 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 nukris iki maždaug 70 USD. Dalių pristatymas užtrunka ilgiau, tačiau tai yra perspektyvus pasirinkimas.

2 žingsnis: schema ir veikimo teorija

Schema ir veikimo teorija
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), kurį filtruoja žemo dažnio filtras (C23 ir R32). Tai sukuria analoginę įtampą - nuo 0 iki 5 V - proporcingą norimai išėjimo įtampai. Kadangi mūsų išėjimo diapazonas yra 0 - 25 V, mes turėsime sustiprinti šį signalą koeficientu 5. Tai daro neinversinė UAMC konfigūracija. Nustatyto kaiščio padidėjimą lemia R31 ir R36. Šie rezistoriai toleruoja 0,1%, kad sumažintų klaidas. R39 ir R41 čia nesvarbūs, 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 vėl pradedame nuo PWM signalo (PWM_Iset), sugeneruoto mikrovaldiklio, kuris dabar yra žemų dažnių filtras ir susilpnintas, kad pereitų nuo 0 iki 5 V diapazono į 0 - 2,5 V diapazoną. Ši įtampa dabar lyginama su įtampos kritimu per dabartinį jutimo rezistorių (ADC_Iout, žr. Toliau), naudojant opamp U1B lyginamąją konfigūraciją. Jei srovė yra per didelė, tai įjungs šviesos diodą ir taip pat atitrauks nustatytą LT3080 liniją prie žemės (per Q1), taip išjungdama išėjimą. Srovės matavimas ir signalo ADC_Iout generavimas atliekamas taip. Išėjimo srovė teka per rezistorių R22. Kai srovė teka per šį rezistorių, jis sukuria įtampos kritimą, kurį galime išmatuoti, ir jis yra prieš LT3080, nes įtampos kritimas per jį neturėtų turėti įtakos išėjimo įtampai. Įtampos kritimas matuojamas diferencialiniu stiprintuvu (U7B), kurio padidėjimas yra 5. Dėl to įtampos diapazonas yra 0 - 2,5 V (daugiau apie tai vėliau), taigi įtampos daliklis prie srovės PWM signalo. Buferis (U7A) yra skirtas įsitikinti, kad į rezistorius R27, R34 ir R35 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 R46). 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. Deja, ši grandinė yra prie LT3080 išėjimo, o tai reiškia, kad jos srovė prisidės prie išėjimo srovės, kurią norime išmatuoti. Laimei, jis yra pastovus, kad galėtume kalibruoti šią srovę. „Zener“diodas D7 naudojamas išėjimo įtampai užfiksuoti, jei ji viršija 25 V, o rezistoriaus daliklis sumažina išėjimo įtampos diapazoną nuo 0 iki 25 V iki 0 - 2,5 V (ADC_Vout). Buferis (U7D) užtikrina, kad rezistoriai neimtų srovės iš išvesties.

Įkraukite siurblį

Neigiamą įtampą, kurią minėjome anksčiau, sukuria įdomi maža grandinė: įkrovimo siurblys. Jį maitina 50% PWM mikrovaldiklio (PWM).

„Boost“keitiklis

Dabar pažvelkime į pagrindinio bloko įvesties įtampą: VCC. Matome, kad jis yra 5 - 27 V, bet palaukite, USB suteikia ne daugiau kaip 5 V? Iš tiesų, ir todėl mes turime padidinti įtampą naudodami vadinamąjį stiprinimo keitiklį. Mes visada galėtume padidinti įtampą iki 27 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.

USB C

Tai veda prie tikrosios įvesties įtampos: USB prievado! Priežastis naudoti USB C (tiksliau - USB tipas 3.1, USB C yra tik jungties tipas) yra ta, kad ji leidžia 3A srovę esant 5 V įtampai, tai jau yra gana daug energijos. Tačiau yra trūkumas, prietaisas turi būti suderinamas, kad galėtų paimti šią srovę ir „derėtis“su pagrindiniu įrenginiu. Praktiškai tai daroma prijungus du 5.1k ištraukiamus rezistorius (R12 ir R13) prie CC1 ir CC2 linijos. Dėl USB 2 suderinamumo dokumentacija yra ne tokia aiški. Trumpai tariant: jūs pritraukiate bet kokią norimą srovę, jei tik šeimininkas gali ją suteikti. Tai galima patikrinti stebint USB magistralės įtampą: kai įtampa nukrenta žemiau 4,25 V, prietaisas naudoja per daug srovės. Tai aptinka lygintuvas U1A ir išjungia išvestį. Jis taip pat siunčia signalą mikrovaldikliui, kad nustatytų maksimalią srovę. Kaip priedas buvo pridėti rezistoriai, padedantys aptikti „Apple“ir „Samsung“įkroviklių įkroviklio ID.

5V reguliatorius

Arduino 5 V maitinimo įtampa paprastai gaunama tiesiai iš USB. Bet kadangi USB įtampa gali skirtis nuo 4,5 iki 5,5 V, atsižvelgiant į USB specifikaciją, tai nėra pakankamai tikslu. Todėl naudojamas 5V reguliatorius, kuris gali generuoti 5V iš žemesnės ir aukštesnės įtampos. Vis dėlto ši įtampa nėra baisiai tiksli, tačiau tai išsprendžiama kalibravimo žingsniu, kai atitinkamai sureguliuojamas PWM signalo veikimo ciklas. Ši e įtampa matuojama įtampos dalikliu, kurį sudaro R42 ir R43. 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šėjimas ir gali valdyti potenciometro lusto pasirinkimo liniją.

2,56 V įtampos atskaitos taškas

Šis mažas lustas suteikia labai tikslią 2,56 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,5 V.

FTDI

Paskutinė šio energijos tiekimo dalis yra ryšys su žiauriu išoriniu pasauliu. Tam serijinius signalus turime paversti USB signalais. Laimei, tai daro „ATMEGA32U4“, tai yra tas pats lustas, kuris naudojamas „Arduino Micro“.

„Bluetooth“

„Bluetooth“dalis yra labai paprasta: pridedamas „Bluetooth“modulis, kuris pasirūpina viskuo už mus. Kadangi jo loginis lygis yra 3,3 V (VS 5V mikrokontroleriui), signalo lygiui pakeisti naudojamas įtampos skirstytuvas.

Ir tai viskas!

3 žingsnis: PCB ir elektronika

PCB ir elektronika
PCB ir elektronika
PCB ir elektronika
PCB ir elektronika
PCB ir elektronika
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šą.

Nors mano ankstesniame maitinimo šaltinyje buvo tik skylių komponentai, mano naujojo dydžio apribojimas padarė tai neįmanoma. Daugumą komponentų vis dar gana lengva lituoti, todėl nebijokite. Kaip iliustracija: mano draugas, kuris niekada nebuvo litavęs, sugebėjo užpildyti šį įrenginį!

Lengviausia iš pradžių atlikti komponentus priekinėje pusėje, tada nugarą ir užbaigti skylių komponentais. Tai darydami, PCB nesvyruos, kai lituojami sunkiausi komponentai. Paskutinis komponentas, kurį reikia lituoti, yra „Bluetooth“modulis.

Visi komponentai gali būti lituoti, išskyrus 2 bananų lizdus, kuriuos sumontuosime kitame žingsnyje!

4 žingsnis: korpusas ir surinkimas

Dėklas ir surinkimas
Dėklas ir surinkimas
Dėklas ir surinkimas
Dėklas ir surinkimas
Dėklas ir surinkimas
Dėklas ir surinkimas

Sukūrę PCB, galime pereiti prie korpuso. Aš specialiai suprojektavau PCB aplink aliuminio 20x50x80 mm dėklą (https://www.aliexpress.com/item/Aluminium-PCB-Instr…), 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 išgręžti keletą skylių bananų kėlikliams. Aš tai padariau ranka, bet jei turite prieigą prie CNC, tai būtų tikslesnis pasirinkimas. Įdėkite bananų lizdus į šias skyles ir prilituokite prie PCB.

Gera idėja dabar pridėti šiek tiek šilko pagalvėlių ir laikyti jas vietoje nedideliu lašeliu super klijų. Tai leis perduoti šilumą tarp LT3080 ir LT1370 ir korpuso. Nepamiršk jų!

Dabar galime sutelkti dėmesį į priekinį skydelį, kuris tiesiog užsukamas. Kai abi plokštės yra vietoje, dabar galime įterpti mazgą į dėklą ir visa tai uždaryti. Šiuo metu aparatinė įranga yra baigta, dabar belieka įpūsti tam tikrą gyvybę naudojant programinę įrangą!

5 veiksmas: „Arduino“kodas

Arduino kodas
Arduino kodas

Šio projekto smegenys yra ATMEGA32U4, 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ų:

  1. Siųsti duomenis į programą
  2. Skaitykite duomenis iš programos
  3. Išmatuokite įtampą
  4. Išmatuokite srovę
  5. Apklausos mygtukas

USB perteklinę srovę tvarko pertraukimo paslaugos, kad ji kuo geriau reaguotų.

Kad būtų galima užprogramuoti lustą per USB, įkrovos įkėlimo programą reikia sudeginti. Tai daroma per ISP/ICSP prievadą (3x2 vyrų antraštės) per ISP programuotoją. Parinktys yra AVRISPMK2, USBTINY ISP arba arduino kaip ISP. Įsitikinkite, kad plokštė gauna maitinimą, ir paspauskite mygtuką „įrašyti įkrovos įkroviklį“.

Dabar kodą galima įkelti į lentą per USB C prievadą (nes lustas turi įkrovos įkroviklį). Valdyba: „Arduino Micro“programuotojas: AVR ISP / AVRISP MKII Dabar galime pažvelgti į „Arduino“ir kompiuterio sąveiką.

6 veiksmas: „Android“programa

„Android“programa
„Android“programa

Dabar turime visiškai funkcionuojantį maitinimo šaltinį, bet kol kas jo valdyti negalime. Labai erzina. Taigi mes sukursime „Android“programą, skirtą valdyti maitinimą per „Bluetooth“.

Programa buvo sukurta naudojant MIT programų išradėjų programą. Visi failai gali būti įtraukti į projekto klonavimą ir pakeitimą. Pirmiausia atsisiųskite „MIT AI2“papildomą programą į savo telefoną. Tada importuokite.aia failą AI svetainėje. Taip pat galite atsisiųsti programą į savo telefoną pasirinkę „Sukurti> Programėlė (pateikite.apk QR kodą“)

Norėdami naudoti programą, iš sąrašo pasirinkite „Bluetooth“įrenginį: jis bus rodomas kaip HC-05 modulis. Kai prijungtas, galima keisti visus nustatymus ir perskaityti maitinimo šaltinio išvestį.

7 žingsnis: „Java“kodas

„Java“kodas
„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.

8 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas

Po visų šių darbų dabar turime visiškai funkcionalų maitinimo šaltinį!

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 kišeninio dydžio ir mikrovaldiklių konkurse, aš tikrai būčiau dėkingas!

Rekomenduojamas: