Kazalo:
- Korak: Funkcije in stroški
- 2. korak: Shema in teorija delovanja
- 3. korak: PCB in elektronika
- 4. korak: Ohišje in montaža
- 5. korak: Arduino koda
- 6. korak: aplikacija za Android
- Korak 7: Koda Java
- 8. korak:
Video: Napajanje prek digitalnega USB C napajanja Bluetooth: 8 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ste kdaj želeli napajanje, ki ga lahko uporabljate na poti, tudi brez stenske vtičnice v bližini? In ali ne bi bilo kul, če bi bilo tudi zelo natančno, digitalno in nadzorovano prek računalnika in telefona?
V tem navodilu vam bom pokazal, kako zgraditi točno to: digitalno napajanje, ki se napaja prek USB -ja C. Je združljiv z arduinom in ga je mogoče upravljati prek osebnega računalnika prek USB -ja ali telefona prek Bluetootha.
Ta projekt je evolucija mojega prejšnjega napajanja, ki je delovalo na baterije in ima zaslon in gumbe. Preverite tukaj! Vendar sem hotel iti manj, zato sem to naredil!
Napajanje se lahko napaja iz akumulatorja USB C ali polnilnika telefona. To omogoča do 15 W moči, kar je dovolj za napajanje večine elektronike z nizko porabo energije! Za dober uporabniški vmesnik na tako majhni napravi sem za nadzor vključil Bluetooth in aplikacijo za Android, zaradi česar je to napajanje izjemno prenosljivo!
Prikazal bom celoten postopek oblikovanja, vse projektne datoteke pa najdete na moji strani GitHub:
Začnimo!
Korak: Funkcije in stroški
Lastnosti
- Napaja USB C
- Upravlja se prek aplikacije Android prek povezave Bluetooth
- Upravlja se prek Jave prek USB C
- Načini stalne napetosti in konstantnega toka
- Uporablja linearni regulator z nizkim šumom, pred katerim je predregulator za sledenje, da zmanjša porabo energije
- Poganja ga ATMEGA32U4, programirano z Arduino IDE
- Lahko se napaja iz baterije USB C, da je prenosna
- Zaznavanje polnilnika USB C in Apple
- 18 mm razmaknjeni čepi za banane za združljivost z adapterji BNC
Specifikacije
- 0 - 1A, koraki 1 mA (10 -bitni DAC)
- 0 - 25V, koraki 25 mV (10 -bitni DAC) (resnično delovanje 0V)
- Merjenje napetosti: ločljivost 25 mV (10 -bitni ADC)
- Trenutne meritve: <40mA: ločljivost 10uA (ina219) <80mA: Ločljivost 20uA (ina219) <160mA: Ločljivost 40uA (ina219) <320mA: Ločljivost 80uA (ina219)> 320mA: Ločljivost 1mA (10 -bitni ADC)
Stroški
Popolno napajanje me je stalo okoli 100 USD z vsemi enkratnimi komponentami. Čeprav se to morda zdi drago, napajalniki z veliko manj zmogljivosti in funkcijami pogosto stanejo več kot to. Če vas ne moti, da svoje komponente naročite na ebayu ali aliexpressu, bi cena padla na okoli 70 USD. Za dobavo delov traja dlje, vendar je to izvedljiva možnost.
2. korak: Shema in teorija delovanja
Za razumevanje delovanja vezja bomo morali pogledati shemo. Razdelil sem ga na funkcionalne bloke, tako da je lažje razumljiv; Tako bom korak za korakom tudi razložil delovanje. Ta del je precej poglobljen in zahteva dobro poznavanje elektronike. Če želite samo vedeti, kako zgraditi vezje, lahko preskočite na naslednji korak.
Glavni blok
Delovanje temelji na čipu LT3080: to je linearni regulator napetosti, ki lahko zniža napetosti na podlagi krmilnega signala. Ta krmilni signal bo ustvaril mikrokrmilnik; kako se to naredi, bo podrobneje razloženo kasneje.
Nastavitev napetosti
Vezje okoli LT3080 ustvarja ustrezne krmilne signale. Najprej si bomo ogledali, kako je napetost nastavljena. Nastavitev napetosti iz mikrokrmilnika je signal PWM (PWM_Vset), ki ga filtrira nizkoprepustni filter (C23 in R32). Tako nastane analogna napetost - med 0 in 5 V - sorazmerna z želeno izhodno napetostjo. Ker je naše izhodno območje 0 - 25 V, bomo morali ta signal ojačati s faktorjem 5. To naredimo z neinvertirajočo konfiguracijo opampa U7C. Dobiček nastavljenega zatiča je določen z R31 in R36. Ti upori so 0,1% tolerantni, da zmanjšajo napake. R39 in R41 tukaj nista pomembna, saj sta del povratne zanke.
Trenutna nastavitev
Ta nastavljeni pin lahko uporabite tudi za drugo nastavitev: trenutni način. Želimo izmeriti trenutno porabo in izklopiti izhod, ko ta preseže želeni tok. Zato znova zaženemo s signalom PWM (PWM_Iset), ki ga ustvari mikrokrmilnik, ki je zdaj nizkoprepustni filtriran in oslabljen za prehod iz območja 0 - 5 V v območje 0 - 2,5 V. Ta napetost se zdaj primerja s padcem napetosti na trenutnem zaznavalnem uporu (ADC_Iout, glej spodaj) s primerjalno konfiguracijo opampa U1B. Če je tok previsok, bo ta vklopil LED in tudi potegnil nastavljeno črto LT3080 na tla (prek Q1) in tako izklopil izhod. Merjenje toka in generiranje signala ADC_Iout se izvede na naslednji način. Izhodni tok teče skozi upor R22. Ko tok teče skozi ta upor, ustvari padec napetosti, ki ga lahko izmerimo, in je postavljen pred LT3080, saj padec napetosti na njem ne bi smel vplivati na izhodno napetost. Padec napetosti se meri z diferencialnim ojačevalnikom (U7B) z dobičkom 5. To povzroči napetostno območje 0 - 2,5 V (več o tem kasneje), zato je razdelilnik napetosti pri signalu PWM toka. Medpomnilnik (U7A) je namenjen zagotavljanju, da tok, ki teče v uporih R27, R34 in R35, ne teče skozi trenutni senzorski upor, kar bi vplivalo na njegovo branje. Upoštevajte tudi, da bi to moral biti opamp od tirnice do tirnice, ker je vhodna napetost na pozitivnem vhodu enaka napajalni napetosti. Neinvertirni ojačevalnik je namenjen le merjenju tečaja, čeprav imamo za zelo natančne meritve čip INA219. Ta čip nam omogoča merjenje zelo majhnih tokov in naslavlja prek I2C.
Dodatne stvari
Na izhodu LT3080 imamo še nekaj stvari. Najprej je tokovnik (LM334). Ta črpa konstanten tok 677 uA (nastavljen z uporom R46) za stabilizacijo LT3080. Ni pa priključen na ozemljitev, ampak na VEE, negativno napetost. To je potrebno, da lahko LT3080 deluje do 0 V. Pri priključitvi na ozemljitev bi bila najnižja napetost približno 0,7 V. To se zdi dovolj nizko, vendar ne pozabite, da nam to preprečuje, da bi napajanje popolnoma izklopili. Na žalost je to vezje na izhodu iz LT3080, kar pomeni, da bo njegov tok prispeval k izhodnemu toku, ki ga želimo izmeriti. Na srečo je konstanten, zato lahko umerimo ta tok. Zener dioda D7 se uporablja za vpenjanje izhodne napetosti, če ta preseže 25 V, razdelilnik upora pa spusti območje izhodne napetosti od 0 - 25 V do 0 - 2,5 V (ADC_Vout). Odbojnik (U7D) zagotavlja, da upori ne črpajo toka iz izhoda.
Polnilna črpalka
Negativno napetost, ki smo jo omenili prej, ustvari zanimivo majhno vezje: polnilna črpalka. Napaja ga 50% PWM mikrokontrolerja (PWM).
Boost Converter
Zdaj pa poglejmo vhodno napetost našega glavnega bloka: VCC. Vidimo, da je 5 - 27V, vendar počakajte, USB daje največ 5 V? Dejansko in zato moramo povečati napetost s tako imenovanim ojačevalnim pretvornikom. Napetost lahko vedno povečamo na 27 V, ne glede na to, kakšen izhod želimo; vendar bi to v LT3080 zapravilo veliko energije in stvari bi postale pečene! Namesto tega bomo napetost povečali na nekoliko več kot izhodna napetost. Primerno je približno 2,5 V višje, da se upošteva padec napetosti v trenutnem senzorskem uporu in izpadna napetost LT3080. Napetost nastavimo z upori na izhodnem signalu ojačevalnega pretvornika. Za hitro spreminjanje te napetosti uporabljamo digitalni potenciometer, MCP41010, ki ga krmilimo prek SPI.
USB C
To nas pripelje do prave vhodne napetosti: USB -vhod! Razlog za uporabo USB C (natančneje USB 3.1, USB C je samo tip priključka) je v tem, da omogoča tok 3A pri 5V, kar je že kar nekaj moči. Vendar obstaja ulov, naprava mora biti skladna, da črpa ta tok in se "pogaja" z gostiteljsko napravo. V praksi se to naredi tako, da se na linijo CC1 in CC2 priključita dva 5,1 k spustna upora (R12 in R13). Za združljivost USB 2 je dokumentacija manj jasna. Skratka: narišete kakršen koli tok, ki ga želite, dokler ga gostitelj lahko zagotovi. To lahko preverite s spremljanjem napetosti vodila USB: ko napetost pade pod 4,25 V, naprava črpa preveč toka. Primerjalnik U1A to zazna in onemogoči izhod. Pošilja tudi signal mikrokrmilniku, da nastavi največji tok. Kot bonus so bili dodani upori, ki podpirajo odkrivanje ID polnilnika polnilnikov apple in samsung.
5V regulator
Napajalna napetost 5 V arduina običajno prihaja neposredno iz USB -ja. Ker pa se napetost USB lahko razlikuje glede na specifikacije USB med 4,5 in 5,5 V, to ni dovolj natančno. Zato se uporablja 5V regulator, ki lahko generira 5V iz nižjih in višjih napetosti. Kljub temu ta napetost ni zelo natančna, vendar se to reši s kalibracijskim korakom, pri katerem se delovni cikel signala PWM ustrezno prilagodi. To napetost e merimo z delilnikom napetosti, ki ga tvorita R42 in R43. Ker pa nisem imel več prostih vložkov, sem moral dvakrat pritisniti na pin. Ko se napajanje zažene, je ta zatič najprej nastavljen kot vhod: meri napajalno tirnico in se sam umerja. Nato je nastavljen kot izhod in lahko poganja linijo za izbiro čipov potenciometra.
Referenčna napetost 2,56 V
Ta mali čip zagotavlja zelo natančno referenčno napetost 2,56 V. To se uporablja kot referenca za analogne signale ADC_Vout, ADC_Iout, ADC_Vbatt. Zato smo potrebovali delilnike napetosti, da bi te signale znižali na 2,5 V.
FTDI
Zadnji del tega napajanja je povezava z okrutnim zunanjim svetom. Za to moramo pretvoriti serijske signale v USB signale. Na srečo to počne ATMEGA32U4, to je isti čip, ki se uporablja v Arduino Micro.
Bluetooth
Del Bluetooth je zelo preprost: dodan je modul Bluetooth, ki je v prodaji in skrbi za vse namesto nas. Ker je njegova logična raven 3,3 V (VS 5 V za mikrokrmilnik), se za premik nivoja signala uporablja delilnik napetosti.
In to je vse!
3. korak: PCB in elektronika
Zdaj, ko razumemo, kako deluje vezje, ga lahko začnemo graditi! Lahko preprosto naročite tiskano vezje na spletu pri svojem najljubšem proizvajalcu (moj stane okoli 10 USD), datoteke gerber lahko najdete na mojem GitHubu skupaj s kosovnico. Sestavljanje tiskanega vezja je v bistvu stvar spajkanja sestavnih delov v skladu s sitotiskom in kosovnico materialov.
Medtem ko je imel moj prejšnji napajalnik samo komponente skozi luknje, je omejitev velikosti mojega novega to onemogočila. Večino komponent je še vedno relativno enostavno spajkati, zato se ne bojte. Kot ponazoritev: moj prijatelj, ki še nikoli ni spajkal, je uspel poseliti to napravo!
Najlažje je, da sestavne dele najprej naredite na sprednji strani, nato na zadnji strani in končate s sestavnimi deli z luknjami. Pri tem se tiskano vezje ne bo nihalo pri spajkanju najtežjih komponent. Zadnja komponenta za spajkanje je modul Bluetooth.
Vse komponente je mogoče spajkati, razen dveh priključkov za banane, ki jih bomo namestili v naslednjem koraku!
4. korak: Ohišje in montaža
Z izdelanim tiskanim vezjem lahko preidemo na ohišje. PCB sem posebej oblikoval okoli aluminijastega ohišja 20x50x80mm (https://www.aliexpress.com/item/Aluminium-PCB-Instr…), zato uporaba drugega ohišja ni priporočljiva. Vendar pa lahko vedno 3D natisnete ohišje enakih dimenzij.
Prvi korak je priprava zaključne plošče. Za vtičnice za banane bomo morali izvrtati nekaj lukenj. To sem naredil ročno, če pa imate dostop do CNC, bi bila to natančnejša možnost. V te luknje vstavite vtičnice za banane in jih spajkajte na tiskano vezje.
Dobro je, da zdaj dodate nekaj svilenih blazinic in jih pritrdite z majhno kapljico super lepila. To bo omogočilo prenos toplote med LT3080 in LT1370 ter ohišjem. Ne pozabite nanje!
Zdaj se lahko osredotočimo na sprednjo ploščo, ki se samo privije. Z nameščenima obema ploščama lahko zdaj vstavimo sklop v ohišje in vse skupaj zapremo. Na tej točki je strojna oprema končana, vse, kar ostane, je, da s programsko opremo vnesete nekaj življenja!
5. korak: Arduino koda
Možgani tega projekta so ATMEGA32U4, ki jih bomo programirali z Arduino IDE. V tem razdelku bom pregledal osnovno delovanje kode, podrobnosti pa najdete kot komentarje znotraj kode.
Koda se v bistvu vrti skozi te korake:
- Pošljite podatke v aplikacijo
- Preberite podatke iz aplikacije
- Izmerite napetost
- Izmerite tok
- Gumb za glasovanje
Prekomerni tok USB upravlja servisna rutina prekinitev, da je čim bolj odziven.
Preden lahko čip programirate prek USB -ja, morate zagonski nalagalnik zapisati. To se naredi prek vrat ISP/ICSP (moške glave 3x2) prek programerja ISP. Možnosti so AVRISPMK2, USBTINY ISP ali arduino kot ISP. Prepričajte se, da plošča dobi napajanje, in pritisnite gumb 'burn bootloader'.
Kodo lahko zdaj naložite na ploščo prek vrat USB C (ker ima čip zagonski nalagalnik). Plošča: Arduino Micro Programmer: AVR ISP / AVRISP MKII Zdaj si lahko ogledamo interakcijo med Arduinom in osebnim računalnikom.
6. korak: aplikacija za Android
Zdaj imamo popolnoma delujoč napajalnik, vendar ga še ne moremo nadzorovati. Zelo nadležna. Zato bomo naredili aplikacijo za Android za nadzor napajanja prek Bluetootha.
Aplikacija je bila narejena s programom izumitelja aplikacij MIT. Vse datoteke so lahko vključene za kloniranje in spreminjanje projekta. Najprej prenesite spremljevalno aplikacijo MIT AI2 v telefon. Nato uvozite datoteko.aia na spletno mesto AI. To vam omogoča tudi prenos aplikacije na svoj telefon, tako da izberete "Build> App (navedite kodo QR za.apk)"
Če želite uporabljati aplikacijo, s seznama izberite napravo Bluetooth: prikazana bo kot modul HC-05. Ko ste povezani, lahko spremenite vse nastavitve in preberete izhod napajanja.
Korak 7: Koda Java
Za beleženje podatkov in nadzor napajanja prek računalnika sem naredil java aplikacijo. To nam omogoča enostavno upravljanje plošče prek grafičnega vmesnika. Tako kot pri kodi Arduino ne bom šel v vse podrobnosti, ampak bom dal pregled.
Začnemo tako, da naredimo okno z gumbi, besedilnimi polji itd.; osnovne stvari z grafičnim vmesnikom.
Zdaj prihaja zabaven del: dodajanje vrat USB, za katere sem uporabil knjižnico jSerialComm. Ko je vrata izbrana, bo java poslušal vse dohodne podatke. Podatke lahko pošljemo tudi v napravo.
Poleg tega se vsi dohodni podatki shranijo v datoteko csv za kasnejšo obdelavo podatkov.
Pri zagonu datoteke.jar moramo najprej iz spustnega menija izbrati prava vrata. Po povezavi bodo začeli prihajati podatki in nastavitve lahko pošljemo napajalniku.
Čeprav je program precej preprost, je lahko zelo koristno, da ga upravljate prek računalnika in beležite njegove podatke.
8. korak:
Po vsem tem delu imamo zdaj popolnoma funkcionalno napajanje!
Zdaj lahko uživamo v lastnem domačem napajanju, ki nam bo prišlo prav pri delu pri drugih čudovitih projektih! In kar je najpomembneje: na poti smo se naučili marsikaj.
Če vam je bil ta projekt všeč, vas prosim, da glasujete zame na natečaju za žepne mikrokontrolerje, zelo bi vam bil hvaležen!
Priporočena:
Dodajanje digitalnega zaslona staremu komunikacijskemu sprejemniku: 6 korakov (s slikami)
Dodajanje digitalnega zaslona staremu komunikacijskemu sprejemniku: Ena od pomanjkljivosti uporabe starejše komunikacijske opreme je dejstvo, da analogni gumb ni zelo natančen. Vedno ugibate o frekvenci, ki jo prejemate. V pasovih AM ali FM to na splošno ni problem, ker običajno
Porazdelitev moči digitalnega avtomata: 9 korakov (s slikami)
Porazdelitev moči digitalnih avtomatov: Ste kdaj izdelali veliko postavitev avtomatov in ugotovili, da avtomobili nimajo enakih zmogljivosti? Ali pa sovražite, ko vaše dirke prekinejo avtomobili, ki se ustavijo zaradi slabih spojev? Ta navodila vam bodo pokazala, kako
Generativno oblikovanje - evolucija digitalnega bonsajskega drevesa: 15 korakov (s slikami)
Generativno oblikovanje - razvoj digitalnega bonsajskega drevesa: Pred približno dvema letoma sem začel sodelovati z raziskovalno skupino pri Autodesku z Dreamcatcherjem. Takrat sem ga uporabljal za oblikovanje vesoljskih plovil. Od takrat sem se naučil ljubiti to programsko opremo, saj mi omogoča raziskovanje na tisoče modelov,
Nadzorujte naprave prek interneta prek brskalnika. (IoT): 6 korakov
Nadzorujte naprave prek interneta prek brskalnika. (IoT): V tem navodilu vam bom pokazal, kako lahko prek spletnega brskalnika nadzirate naprave, kot so LED, releji, motorji itd. Do kontrol lahko varno dostopate prek katere koli naprave. Spletna platforma, ki sem jo uporabil tukaj, je RemoteMe.org obiščite
Prenos datotek prek vašega LAN -a prek BitTorrenta: 6 korakov
Prenos datotek prek vašega LAN -a prek BitTorrenta: Včasih boste morda morali prenesti datoteke po omrežju na več računalnikov. Čeprav bi ga lahko postavili na bliskovni pogon ali CD/DVD, bi morali v vsak računalnik kopirati datoteke, zato lahko traja nekaj časa, da vse datoteke kopirate (zlasti z