Sisukord:

Digitaalne USB C toitega Bluetooth -toide: 8 sammu (piltidega)
Digitaalne USB C toitega Bluetooth -toide: 8 sammu (piltidega)

Video: Digitaalne USB C toitega Bluetooth -toide: 8 sammu (piltidega)

Video: Digitaalne USB C toitega Bluetooth -toide: 8 sammu (piltidega)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, Juuli
Anonim
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide
Digitaalne USB C toitega Bluetooth -toide

Kas olete kunagi tahtnud toiteallikat, mida saate kasutada liikvel olles, isegi kui läheduses pole pistikupesa? Ja kas poleks lahe, kui see oleks ka väga täpne, digitaalne ja juhitav arvuti ja telefoni kaudu?

Selles juhendis näitan teile, kuidas täpselt seda ehitada: digitaalset toiteallikat, mis töötab USB C kaudu. See on arduino ühilduv ja seda saab juhtida arvuti kaudu USB kaudu või telefoni kaudu Bluetoothi kaudu.

See projekt on minu varasema toiteallika areng, mis töötas patareidega ning millel oli ekraan ja nupud. Vaata siit! Tahtsin siiski väiksemaks minna, nii et sellepärast ma selle tegin!

Toiteallikat saab toita USB C akupangast või telefoni laadijast. See võimaldab kuni 15W võimsust, millest piisab enamiku väikese võimsusega elektroonika toiteks! Et sellisel väikesel seadmel oleks hea kasutajaliides, lisasin juhtnuppude jaoks Bluetoothi ja Androidi rakenduse. See muudab selle toiteallika ülimalt kaasaskantavaks!

Näitan kogu disainiprotsessi ja kõik projektifailid leiate minu GitHubi lehelt:

Alustame!

Samm: funktsioonid ja maksumus

Omadused ja maksumus
Omadused ja maksumus

Funktsioonid

  • Toiteallikaks on USB C
  • Juhitav Androidi rakenduse kaudu Bluetoothi kaudu
  • Juhitav Java kaudu USB C kaudu
  • Pideva pinge ja konstantse voolu režiimid
  • Kasutab madala müratasemega lineaarset regulaatorit, millele eelneb jälgimise eelregulaator, et minimeerida toite hajumist
  • Toetab ATMEGA32U4, programmeeritud Arduino IDE -ga
  • Seda saab toita USB C akupanga abil, et muuta see kaasaskantavaks
  • USB C ja Apple'i laadija tuvastamine
  • 18 mm vahedega banaanipistikud ühilduvuseks BNC adapteritega

Tehnilised andmed

  • 0 - 1A, 1 mA sammuga (10 -bitine DAC)
  • 0–25 V, 25 mV sammud (10 -bitine DAC) (tõeline 0 V töö)
  • Pinge mõõtmine: 25 mV eraldusvõime (10 -bitine ADC)
  • Praegune mõõtmine: <40mA: 10uA resolutsioon (ina219) <80mA: 20uA resolutsioon (ina219) <160mA: 40uA resolutsioon (ina219) <320mA: 80uA resolutsioon (ina219)> 320mA: 1mA resolutsioon (10 bit ADC)

Maksumus

Täielik toiteallikas maksis mulle umbes 100 dollarit koos kõigi ühekordsete komponentidega. Kuigi see võib tunduda kallis, maksavad palju väiksema jõudluse ja funktsioonidega toiteallikad sageli rohkem kui see. Kui te ei pahanda, et tellite oma komponente ebayst või aliexpressist, langeb hind umbes 70 dollarini. Osade saabumine võtab kauem aega, kuid see on elujõuline võimalus.

2. etapp: töö skeem ja teooria

Töö skeem ja teooria
Töö skeem ja teooria

Vooluahela toimimise mõistmiseks peame vaatama skeemi. Jagasin selle funktsionaalseteks plokkideks, nii et seda oleks lihtsam mõista; Selgitan seega ka toimingut samm -sammult. See osa on üsna põhjalik ja nõuab häid elektroonikateadmisi. Kui soovite lihtsalt teada, kuidas vooluringi üles ehitada, võite järgmise sammu juurde liikuda.

Peamine plokk

Toiming põhineb LT3080 kiibil: see on lineaarne pingeregulaator, mis võib juhtsignaali põhjal pingeid vähendada. Selle juhtsignaali genereerib mikrokontroller; kuidas seda tehakse, selgitatakse üksikasjalikult hiljem.

Pinge seadistamine

LT3080 ümber olev vooluring genereerib sobivad juhtimissignaalid. Esiteks vaatame, kuidas pinge on seatud. Mikrokontrolleri pingeseade on PWM -signaal (PWM_Vset), mida filtreerib madalpääsfilter (C23 & R32). See tekitab analoogpinge vahemikus 0 kuni 5 V - proportsionaalne soovitud väljundpingega. Kuna meie väljundvahemik on 0–25 V, peame seda signaali võimendama koefitsiendiga 5. Seda teeb U7C mittepööratud opamp -konfiguratsioon. Seadistatud tihvti võimenduse määravad R31 ja R36. Need takistid on vigade minimeerimiseks 0,1% tolerantsed. R39 ja R41 pole siin olulised, kuna need on osa tagasisideahelast.

Praegune seadistus

Seda tihvti saab kasutada ka teise seadistuse jaoks: praegune režiim. Tahame mõõta praegust voolu ja lülitada väljund välja, kui see ületab soovitud voolu. Seetõttu alustame uuesti mikrokontrolleri genereeritud PWM -signaaliga (PWM_Iset), mis on nüüd madalpääsfiltreeritud ja nõrgestatud, et minna vahemikku 0–5 V vahemikku 0–2,5 V. Seda pinget võrreldakse nüüd opamp U1B võrdluskonfiguratsiooniga pingelangusega voolutundlikus takistis (ADC_Iout, vt allpool). Kui vool on liiga kõrge, lülitab see sisse LED -i ja tõmbab ka LT3080 seadistatud joone maapinnale (Q1 kaudu), lülitades seega väljundi välja. Voolu mõõtmine ja signaali ADC_Iout genereerimine toimub järgmiselt. Väljundvool voolab läbi takisti R22. Kui vool voolab läbi selle takisti, tekitab see pingelanguse, mida saame mõõta, ja see asetatakse LT3080 ette, kuna selle pingelangus ei tohiks väljundpinget mõjutada. Pingelangust mõõdetakse diferentsiaalvõimendiga (U7B) võimendusega 5. Selle tulemuseks on pingevahemik 0 - 2,5 V (sellest lähemalt hiljem), seega pingejagur voolu PWM signaali juures. Puhver (U7A) on selleks, et veenduda, et takistitesse R27, R34 ja R35 voolav vool ei lähe läbi praeguse takisti, mis mõjutaks selle lugemist. Pange tähele ka seda, et see peaks olema rööpast rööpani opamp, kuna positiivse sisendi sisendpinge võrdub toitepingega. Mitte inverteeriv võimendi on mõeldud ainult kursuse mõõtmiseks, kuigi väga täpsete mõõtmiste jaoks on meil INA219 kiip pardal. See kiip võimaldab meil mõõta väga väikeseid voolusid ja seda käsitletakse I2C kaudu.

Täiendavad asjad

LT3080 väljundis on meil veel asju. Esiteks on praegune valamu (LM334). See tõmbab LT3080 stabiliseerimiseks konstantse voolu 677 uA (seatud takisti R46 abil). See pole aga ühendatud maandusega, vaid negatiivse pingega VEE -ga. Seda on vaja selleks, et LT3080 saaks töötada kuni 0 V. Kui see on ühendatud maandusega, oleks madalaim pinge umbes 0,7 V. See tundub piisavalt madal, kuid pidage meeles, et see takistab meil toiteallikat täielikult välja lülitada. Kahjuks on see ahel LT3080 väljundis, mis tähendab, et selle vool aitab kaasa väljundvoolule, mida me soovime mõõta. Õnneks on see pidev, et saaksime selle voolu jaoks kalibreerida. Zeneri dioodi D7 kasutatakse väljundpinge kinnistamiseks, kui see ületab 25 V, ja takisti jagaja langetab väljundpinge vahemikku 0–25 V kuni 0–2,5 V (ADC_Vout). Puhver (U7D) tagab, et takistid ei võta väljundist voolu.

Laadige pump

Negatiivse pinge, mida me varem mainisime, tekitab uudishimulik väike ahel: laadimispump. Seda toidab 50% PWM mikrokontrollerist (PWM).

Võimendusmuundur

Vaatame nüüd meie põhiploki sisendpinget: VCC. Näeme, et see on 5 - 27V, kuid oodake, USB annab maksimaalselt 5 V? Tõepoolest, ja sellepärast peame pinget suurendama nn võimendusmuunduriga. Võiksime alati pinge 27 V -ni tõsta, olenemata sellest, millist väljundit me soovime; see aga raiskaks LT3080 -s palju energiat ja asjad läheksid kuumaks! Nii et selle asemel suurendame pinget natuke rohkem kui väljundpinge. Umbes 2,5 V kõrgem on sobiv, et võtta arvesse praeguse takisti pingelangust ja LT3080 väljalangemispinget. Pinge seadistatakse takisti abil võimendusmuunduri väljundsignaalile. Selle pinge muutmiseks käigu pealt kasutame digitaalset potentsiomeetrit MCP41010, mida juhitakse SPI kaudu.

USB C

See viib meid tegeliku sisendpinge juurde: USB -port! USB C (täpsemalt USB tüüp 3.1, USB C on lihtsalt pistikutüüp) kasutamise põhjus on see, et see võimaldab 5 V voolu 3A, see on juba üsna palju energiat. Kuid sellel on üks takistus: seade peab olema voolu juhtimiseks ja vastuvõtva seadmega läbirääkimiste pidamiseks ühilduv. Praktikas tehakse seda, ühendades CC1 ja CC2 liiniga kaks 5,1k väljatõmmatavat takistit (R12 ja R13). USB 2 ühilduvuse puhul on dokumentatsioon vähem selge. Lühidalt: te tõmbate mis tahes voolu, kui soovite, kui peremees suudab seda pakkuda. Seda saab kontrollida, jälgides USB -siini pinget: ühe pinge langeb alla 4,25 V, seade võtab liiga palju voolu. Võrdleja U1A tuvastab selle ja keelab väljundi. Samuti saadab see signaali mikrokontrollerile maksimaalse voolu seadmiseks. Boonusena on lisatud takistid, mis toetavad Apple'i ja Samsungi laadijate laadija ID tuvastamist.

5V regulaator

Arduino 5 V toitepinge tuleb tavaliselt otse USB -st. Kuid kuna USB -pinge võib sõltuvalt USB spetsifikatsioonist varieeruda vahemikus 4,5–5,5 V, pole see piisavalt täpne. Seetõttu kasutatakse 5 V regulaatorit, mis võib tekitada 5 V madalamast ja kõrgemast pingest. Siiski pole see pinge kohutavalt täpne, kuid selle lahendab kalibreerimisetapp, kus PWM -signaali töötsüklit vastavalt reguleeritakse. Seda e pinget mõõdetakse pingejaguriga, mille moodustavad R42 ja R43. Aga kuna mul ei olnud enam tasuta sisendeid, pidin tegema tihvttõmbamise topeltkoormuse. Toiteallika käivitamisel seatakse see tihvt kõigepealt sisendiks: see mõõdab toitepiiret ja kalibreerib ennast. Seejärel seadistatakse see väljundiks ja see võib juhtida potentsiomeetri kiibi valimisliini.

2,56 V pinge võrdlus

See väike kiip pakub väga täpset 2,56 V pinge võrdlust. Seda kasutatakse võrdluseks analoogsignaalidele ADC_Vout, ADC_Iout, ADC_Vbatt. Sellepärast vajasime pingejagureid, et viia need signaalid alla 2,5 V.

FTDI

Selle energiavarustuse viimane osa on ühendus julma välismaailmaga. Selleks peame jadasignaalid teisendama USB -signaalideks. Õnneks teeb seda ATMEGA32U4, see on sama kiip, mida kasutatakse Arduino Micro -s.

Bluetooth

Bluetoothi osa on väga lihtne: lisatakse valmis Bluetooth-moodul, mis hoolitseb meie eest kõige eest. Kuna selle loogika tase on 3,3 V (VS 5V mikrokontrolleri jaoks), kasutatakse signaali taseme nihutamiseks pingejagurit.

Ja see on ka kõik!

3. samm: trükkplaat ja elektroonika

PCB ja elektroonika
PCB ja elektroonika
PCB ja elektroonika
PCB ja elektroonika
PCB ja elektroonika
PCB ja elektroonika

Nüüd, kui me saame aru, kuidas vooluring töötab, saame hakata seda ehitama! PCB -d saate lihtsalt tellida veebist oma lemmiktootjalt (minu oma maksis umbes 10 dollarit), gerberi failid leiate koos minu materjaliga minu GitHubist. PCB kokkupanek on põhimõtteliselt komponentide jootmine vastavalt siiditrükile ja materjalide nimekirjale.

Kui mu eelmisel toiteallikal olid ainult aukudega komponendid, tegi minu uue suurusepiirang selle võimatuks. Enamikku komponente on endiselt suhteliselt lihtne joota, nii et ärge kartke. Näitena: mu sõber, kes polnud kunagi varem jootnud, suutis selle seadme täita!

Kõige lihtsam on kõigepealt teha esiosa komponendid, seejärel tagumine ja lõpetada aukude komponentidega. Seda tehes ei kõiguta PCB kõige raskemate komponentide jootmisel. Viimane joodetav komponent on Bluetooth -moodul.

Kõiki komponente saab jootma, välja arvatud 2 banaanipistikut, mille paigaldame järgmises etapis!

4. samm: ümbris ja kokkupanek

Korpus ja kokkupanek
Korpus ja kokkupanek
Korpus ja kokkupanek
Korpus ja kokkupanek
Korpus ja kokkupanek
Korpus ja kokkupanek

Kui trükkplaat on tehtud, saame liikuda korpuse juurde. Disainisin trükkplaadi spetsiaalselt 20x50x80mm alumiiniumist ümbrise ümber (https://www.aliexpress.com/item/Aluminium-PCB-Instr…), seega ei ole soovitatav kasutada muud ümbrist. Siiski saate alati printida samade mõõtmetega ümbrise 3D -vormingus.

Esimene samm on lõpppaneeli ettevalmistamine. Peame puurima mõned augud banaanipesade jaoks. Ma tegin seda käsitsi, kuid kui teil on juurdepääs CNC -le, oleks see täpsem valik. Sisestage nendesse aukudesse banaanipistikud ja jootke need trükkplaadile.

Hea mõte on nüüd lisada mõned siidist padjad ja hoida neid väikese tilga superliimiga paigal. Need võimaldavad soojusülekannet LT3080 ja LT1370 ning korpuse vahel. Ärge unustage neid!

Nüüd saame keskenduda esipaneelile, mis lihtsalt kruvib oma kohale. Kui mõlemad paneelid on paigas, saame nüüd komplekti korpusesse sisestada ja selle kõik sulgeda. Siinkohal on riistvara tehtud, nüüd jääb üle vaid tarkvaraga veidi elu sisse puhuda!

Samm: Arduino kood

Arduino kood
Arduino kood

Selle projekti ajuks on ATMEGA32U4, mida programmeerime koos Arduino IDE -ga. Selles jaotises vaatan läbi koodi põhitoimingu, üksikasjad leiate koodi kommentaaridest.

Põhimõtteliselt toimub kood järgmiste sammude kaudu:

  1. Andmete saatmine rakendusse
  2. Andmete lugemine rakendusest
  3. Mõõda pinget
  4. Mõõtke voolu
  5. Küsitluse nupp

USB ülevoolu haldab katkestusteenuse rutiin, et see oleks võimalikult reageeriv.

Enne kui kiipi saab USB kaudu programmeerida, tuleks alglaadur põletada. Seda tehakse ISP/ICSP pordi kaudu (3x2 meespead) ISP programmeerija kaudu. Valikud on AVRISPMK2, USBTINY ISP või arduino ISP -na. Veenduge, et plaat saab voolu, ja vajutage nuppu „põletada alglaadur”.

Koodi saab nüüd tahvlile USB C -pordi kaudu üles laadida (kuna kiibil on alglaadur). Tahvel: Arduino mikroprogrammeerija: AVR ISP / AVRISP MKII Nüüd saame heita pilgu Arduino ja arvuti vahelisele suhtlusele.

6. samm: Androidi rakendus

Androidi rakendus
Androidi rakendus

Meil on nüüd täielikult toimiv toiteallikas, kuid pole veel võimalust seda juhtida. Väga tüütu. Seega teeme Androidi rakenduse toiteallika juhtimiseks Bluetoothi kaudu.

Rakendus on loodud MIT rakenduse leiutaja programmiga. Projekti kloonimiseks ja muutmiseks saab lisada kõik failid. Esmalt laadige oma telefoni alla kaasrakendus MIT AI2. Seejärel importige.aia -fail AI veebisaidilt. See võimaldab teil ka rakenduse oma telefoni alla laadida, valides "Ehita> Rakendus (sisestage.apk jaoks QR -kood")

Rakenduse kasutamiseks valige loendist Bluetooth-seade: see kuvatakse moodulina HC-05. Ühendamisel saab kõiki seadeid muuta ja toiteallika väljundit välja lugeda.

Samm: Java -kood

Java kood
Java kood

Andmete logimiseks ja toiteallika juhtimiseks arvuti kaudu tegin Java -rakenduse. See võimaldab meil hõlpsalt plaati GUI kaudu juhtida. Nagu Arduino koodi puhul, ei lähe ma kõikidesse üksikasjadesse, vaid annan ülevaate.

Alustuseks teeme akna nuppude, tekstiväljade jms abil; põhilised GUI -asjad.

Nüüd tuleb lõbus osa: USB -portide lisamine, mille jaoks kasutasin jSerialCommi raamatukogu. Kui port on valitud, kuulab java kõiki sissetulevaid andmeid. Samuti võime seadmesse andmeid saata.

Lisaks salvestatakse kõik sissetulevad andmed csv -faili hilisemaks andmete töötlemiseks.

Faili.jar käivitamisel peaksime esmalt rippmenüüst õige pordi valima. Pärast ühendamist hakkavad andmed tulema ja saame oma seaded toiteallikale saata.

Kuigi programm on üsna lihtne, võib olla väga kasulik seda arvuti kaudu juhtida ja selle andmeid logida.

8. samm:

Pilt
Pilt
Pilt
Pilt
Pilt
Pilt

Pärast seda tööd on meil nüüd täielikult toimiv toiteallikas!

Nüüd saame nautida oma kodus valmistatud toiteallikat, mis tuleb kasuks teiste vingete projektide kallal töötades! Ja mis kõige tähtsam: me oleme teel õppinud palju asju.

Kui teile see projekt meeldis, hääletage palun taskusuuruste ja mikrokontrollerite konkursil minu poolt, oleksin väga tänulik!

Soovitan: