INHOUDSOPGAWE:
- Stap 1: Kenmerke en koste
- Stap 2: Skematiese en teorie van werking
- Stap 3: PCB en elektronika
- Stap 4: Behuizing en montering
- Stap 5: Arduino -kode
- Stap 6: Android -app
- Stap 7: Java -kode
- Stap 8:
Video: Digitale USB C -aangedrewe Bluetooth -kragvoorsiening: 8 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Wou u al ooit 'n kragvoorsiening wat u onderweg kan gebruik, selfs sonder 'n stopcontact in die buurt? En sou dit nie gaaf wees as dit ook baie presies, digitaal en beheerbaar was via die rekenaar en u telefoon nie?
In hierdie instruksies sal ek jou wys hoe om presies dit te bou: 'n digitale kragvoorsiening, wat via USB C. aangedryf word. Dit is arduino -versoenbaar en kan via die rekenaar via USB of via jou foon via Bluetooth beheer word.
Hierdie projek is 'n evolusie van my vorige kragvoorsiening, wat op batterye werk en 'n skerm en knoppe het. Kyk hier! Ek wou egter kleiner word, so daarom het ek dit gemaak!
Die kragtoevoer kan van 'n USB C -batterybank of telefoonlaaier gevoed word. Dit maak voorsiening vir tot 15W krag, wat genoeg is om die meeste elektronika met 'n lae krag aan te dryf! Om 'n goeie UI op so 'n klein toestel te hê, het ek Bluetooth en 'n Android -app vir die kontroles ingesluit. Dit maak hierdie kragvoorsiening ultra draagbaar!
Ek sal die hele ontwerpproses wys, en alle projeklêers kan op my GitHub -bladsy gevind word:
Laat ons begin!
Stap 1: Kenmerke en koste
Kenmerke
- Aangedryf deur USB C
- Beheer via Android -app via Bluetooth
- Beheer via Java via USB C
- Konstante spanning en konstante stroom modi
- Gebruik 'n lineêre reguleerder met 'n lae geraas, voorafgegaan deur 'n opsporingsreguleerder om die kragverlies te verminder
- Aangedryf deur ATMEGA32U4, geprogrammeer met Arduino IDE
- Kan aangedryf word deur 'n USB C -batterybank om dit draagbaar te maak
- USB C en Apple laaier opsporing
- Piesangproppe met 'n afstand van 18 mm vir verenigbaarheid met BNC -adapters
Spesifikasies
- 0 - 1A, stappe van 1 mA (10 bit DAC)
- 0 - 25V, stappe van 25 mV (10 bit DAC) (ware 0V -werking)
- Spanningsmeting: 25 mV resolusie (10 bit ADC)
- Huidige meting: <40mA: 10uA resolusie (ina219) <80mA: 20uA resolusie (ina219) <160mA: 40uA resolusie (ina219) <320mA: 80uA resolusie (ina219)> 320mA: 1mA resolusie (10 bit ADC)
Koste
Die volledige kragvoorsiening kos my ongeveer $ 100, met alle eenmalige komponente. Alhoewel dit duur kan lyk, kos kragvoorsienings met baie minder prestasie en funksies dikwels meer as dit. As u nie omgee om u komponente by ebay of aliexpress te bestel nie, sal die prys tot ongeveer $ 70 daal. Dit neem langer om die dele in te kom, maar dit is 'n lewensvatbare opsie.
Stap 2: Skematiese en teorie van werking
Om die werking van die stroombaan te verstaan, moet ons na die skema kyk. Ek het dit in funksionele blokke verdeel, sodat dit makliker is om te verstaan; Ek sal dus ook die werking stap vir stap verduidelik. Hierdie gedeelte is redelik diep en verg goeie elektroniese kennis. As u net wil weet hoe u die kring moet bou, kan u na die volgende stap gaan.
Hoofblok
Die operasie is gebaseer op die LT3080 -chip: dit is 'n lineêre spanningsreguleerder wat spanning kan verlaag, gebaseer op 'n beheersignaal. Hierdie beheersignaal word deur 'n mikrobeheerder gegenereer; hoe dit gedoen word, sal later in detail verduidelik word.
Spanning instelling
Die stroombane rondom die LT3080 genereer die toepaslike beheerseine. Eerstens kyk ons na hoe die spanning ingestel is. Die spanningsinstelling van die mikrobeheerder is 'n PWM -sein (PWM_Vset), wat deur 'n laagdeurlaatfilter (C23 en R32) gefiltreer word. Dit lewer 'n analoog spanning - tussen 0 en 5 V - eweredig aan die gewenste uitgangsspanning. Aangesien ons uitsetbereik 0 - 25 V is, sal ons hierdie sein moet versterk met 'n faktor 5. Dit word gedoen deur die nie -omkerende opamp -konfigurasie van U7C. Die versterking van die stelpen word bepaal deur R31 en R36. Hierdie weerstande is 0,1% verdraagsaam om foute tot die minimum te beperk. R39 en R41 maak nie hier saak nie, aangesien dit deel uitmaak van die terugvoerlus.
Huidige instelling
Hierdie stelpen kan ook gebruik word vir die tweede instelling: huidige modus. Ons wil die huidige trekking meet en die uitset afskakel as dit die gewenste stroom oorskry. Daarom begin ons weer met 'n PWM -sein (PWM_Iset), gegenereer deur die mikrobeheerder, wat nou laagweg gefiltreer en verswak word om van 'n 0 - 5 V -reeks na 'n 0 - 2.5 V -reeks te gaan. Hierdie spanning word nou vergelyk met die spanningsval oor die huidige sinweerstand (ADC_Iout, sien hieronder) deur die vergelykingskonfigurasie van opamp U1B. As die stroom te hoog is, skakel dit 'n LED aan en trek die stellyn van die LT3080 ook grond toe (via Q1), waardeur die uitset afgeskakel word. Die meting van die stroom en die opwekking van die sein ADC_Iout word soos volg gedoen. Die uitsetstroom vloei deur weerstand R22. As stroom deur hierdie weerstand vloei, skep dit 'n spanningsval wat ons kan meet, en dit word voor die LT3080 geplaas, aangesien die spanningsval daaroor nie die uitsetspanning mag beïnvloed nie. Die spanningsval word gemeet met 'n differensiaalversterker (U7B) met 'n versterking van 5. Dit lei tot 'n spanningsbereik van 0 - 2,5 V (meer hieroor later), vandaar die spanningsverdeler by die PWM -sein van die stroom. Die buffer (U7A) is daar om seker te maak dat die stroom wat in resistors R27, R34 en R35 vloei, nie deur die huidige sensorweerstand gaan nie, wat die lesing daarvan sou beïnvloed. Let ook daarop dat dit 'n spoor-tot-spoor-opamp moet wees, want die insetspanning by die positiewe ingang is gelyk aan die voedingspanning. Die nie -omkeerversterker is slegs vir die kursusmeting, maar vir baie presiese metings het ons die INA219 -chip aan boord. Met hierdie chip kan ons baie klein strome meet, en word via I2C aangespreek.
Bykomende dinge
Op die uitset van die LT3080 het ons nog meer dinge. Eerstens is daar 'n huidige wasbak (LM334). Dit trek 'n konstante stroom van 677 uA (ingestel deur weerstand R46) om die LT3080 te stabiliseer. Dit is egter nie aan die aarde gekoppel nie, maar aan VEE, 'n negatiewe spanning. Dit is nodig om die LT3080 in staat te stel om tot 0 V. te werk. As dit op die aarde gekoppel is, is die laagste spanning ongeveer 0,7 V. Dit lyk laag genoeg, maar hou in gedagte dat dit ons verhinder om die kragbron heeltemal uit te skakel. Ongelukkig is hierdie stroombaan by die uitset van die LT3080, wat beteken dat die stroom sal bydra tot die uitsetstroom wat ons wil meet. Gelukkig is dit konstant, sodat ons vir hierdie stroom kan kalibreer. Die zenerdiode D7 word gebruik om die uitgangsspanning vas te klem as dit bo 25 V gaan, en die weerstandsverdeler laat die uitsetspanningsbereik van 0 - 25 V tot 0 - 2,5 V (ADC_Vout) daal. Die buffer (U7D) verseker dat die weerstande nie stroom uit die uitset trek nie.
Laaipomp
Die negatiewe spanning wat ons voorheen genoem het, word gegenereer deur 'n vreemde stroombaan: die laaipomp. Dit word gevoed deur 'n 50% PWM van die mikrobeheerder (PWM).
Versterk omskakelaar
Kom ons kyk nou na die ingangsspanning van ons hoofblok: VCC. Ons sien dat dit 5 - 27V is, maar wag, USB gee 'n maksimum van 5 V? Inderdaad, en daarom moet ons die spanning verhoog met 'n sogenaamde boost converter. Ons kan altyd die spanning na 27 V verhoog, maak nie saak watter uitset ons wil hê nie; Dit sal egter baie krag in die LT3080 vermors en dinge sal te warm word! Dus, in plaas daarvan om dit te doen, verhoog ons die spanning tot 'n bietjie meer as die uitgangsspanning. Ongeveer 2,5 V hoër is gepas, om die spanningsval in die huidige sinweerstand en die uitvalspanning van die LT3080 in ag te neem. Die spanning word bepaal deur weerstande op die uitsetsein van die hupstootomskakelaar. Om hierdie spanning onmiddellik te verander, gebruik ons 'n digitale potensiometer, die MCP41010, wat via SPI bestuur word.
USB C
Dit lei ons na die werklike ingangsspanning: die USB -poort! Die rede vir die gebruik van USB C (USB -tipe 3.1 om presies te wees, USB C is net die aansluitingstipe) is omdat dit 'n stroom van 3A by 5V toelaat, dit is reeds 'n bietjie krag. Maar daar is 'n vangs, die toestel moet voldoen om hierdie stroom te trek en met die gasheertoestel te 'onderhandel'. In die praktyk word dit gedoen deur twee 5.1k -aftrekweerstands (R12 en R13) aan die CC1- en CC2 -lyn te koppel. Vir USB 2 -verenigbaarheid is die dokumentasie minder duidelik. Kortom: u teken die stroom wat u wil, solank die gasheer dit kan verskaf. Dit kan nagegaan word deur die USB -busspanning te monitor: as die spanning onder 4.25V daal, trek die toestel te veel stroom. Dit word deur die vergelyker U1A opgespoor en sal die uitset deaktiveer. Dit stuur ook 'n sein na die mikrobeheerder om die maksimum stroom in te stel. As 'n bonus is weerstande bygevoeg om die opsporing van die laaier -ID van appel- en Samsung -laaiers te ondersteun.
5V reguleerder
Die 5 V -voedingsspanning van die arduino kom gewoonlik direk vanaf die USB. Maar aangesien die USB -spanning volgens die USB -spesifikasie tussen 4.5 en 5.5 V kan wissel, is dit nie presies genoeg nie. Daarom word 'n 5V -reguleerder gebruik, wat 5V kan genereer uit laer en hoër spannings. Tog is hierdie spanning nie vreeslik presies nie, maar dit word opgelos deur 'n kalibrasie -stap waar die werksiklus van die PWM -sein dienooreenkomstig aangepas word. Hierdie spanning word gemeet deur die spanningsverdeler gevorm deur R42 en R43. Maar aangesien ek nie meer gratis insette gehad het nie, moes ek 'n pen twee keer trek. As die kragtoevoer begin, word hierdie pen eers as 'n invoer gestel: dit meet die toevoerrail en kalibreer homself. Vervolgens word dit as 'n uitset gestel, en dit kan die chip -kieslyn van die potensiometer aandryf.
2.56 V spanning verwysing
Hierdie klein skyfie bied 'n baie akkurate 2,56 V spanningsverwysing. Dit word gebruik as verwysing vir die analoog seine ADC_Vout, ADC_Iout, ADC_Vbatt. Daarom het ons spanningsverdelers nodig gehad om hierdie seine tot 2,5 V.
FTDI
Die laaste deel van hierdie kragvoorsiening is die verbinding met die wrede buitewêreld. Hiervoor moet ons die seriële seine omskakel in USB -seine. Gelukkig word dit gedoen deur die ATMEGA32U4, dit is dieselfde chip wat in die Arduino Micro gebruik word.
Bluetooth
Die Bluetooth-deel is baie eenvoudig: 'n Bluetooth-module op die rak word bygevoeg en sorg vir alles vir ons. Aangesien sy logiese vlak 3,3V is (VS 5V vir die mikrobeheerder) word 'n spanningsverdeler gebruik om die sein gelyk te maak.
En dit is al wat daar is!
Stap 3: PCB en elektronika
Noudat ons verstaan hoe die stroombaan werk, kan ons begin bou! U kan die PCB eenvoudig aanlyn by u gunsteling vervaardiger bestel (myne kos ongeveer $ 10). Die gerber -lêers kan op my GitHub gevind word, tesame met die materiaalbrief. Die samestelling van die PCB is dan basies 'n kwessie van die soldeer van die komponente volgens die syskerm en die materiaalverslag.
Alhoewel my vorige kragvoorsiening slegs deurgaande komponente gehad het, het die groottebeperking van my nuwe een dit onmoontlik gemaak. Die meeste komponente is nog relatief maklik om te soldeer, dus moenie bang wees nie. Ter illustrasie: 'n vriend van my wat nog nooit voorheen gesoldeer het nie, kon hierdie toestel opvul!
Dit is die maklikste om eers die komponente aan die voorkant te doen, dan aan die agterkant en af te sluit met die deurlopende gaatjies. As u dit doen, sal die PCB nie wankel as u die moeilikste komponente soldeer nie. Die laaste komponent wat u moet soldeer, is die Bluetooth -module.
Alle komponente kan gesoldeer word, behalwe vir die 2 piesangboute, wat ons in die volgende stap gaan monteer!
Stap 4: Behuizing en montering
Met die PCB gemaak, kan ons na die saak gaan. Ek het die PCB spesifiek ontwerp rondom 'n aluminium 20x50x80mm-omhulsel (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), daarom word dit nie aanbeveel om 'n ander omhulsel te gebruik nie. U kan egter altyd 'n geval met dieselfde afmetings in 3D druk.
Die eerste stap is om die eindpaneel voor te berei. Ons sal 'n paar gate vir die piesangboutjies moet boor. Ek het dit met die hand gedoen, maar as u toegang tot 'n CNC het, sou dit 'n meer akkurate opsie wees. Steek die piesangboute in hierdie gate en soldeer dit op die printplaat.
Dit is 'n goeie idee om nou 'n paar syblokkies by te voeg en dit met 'n klein druppel supergom vas te hou. Dit maak voorsiening vir hitte -oordrag tussen die LT3080 en LT1370 en die kas. Moenie hulle vergeet nie!
Ons kan nou fokus op die voorpaneel, wat net vasskroef. Met albei panele in plek, kan ons die eenheid nou in die omhulsel steek en dit alles toemaak. Op hierdie punt is die hardeware klaar, nou is dit net wat u oorbly om 'n bietjie lewe daarin te blaas met die sagteware!
Stap 5: Arduino -kode
Die brein van hierdie projek is die ATMEGA32U4, wat ons met die Arduino IDE sal programmeer. In hierdie afdeling gaan ek deur die basiese werking van die kode; die besonderhede kan gevind word as kommentaar in die kode.
Die kode loop basies deur hierdie stappe:
- Stuur data na die app
- Lees data van die app
- Meet spanning
- Meet die stroom
- Poll -knoppie
Die USB -oorstroom word deur 'n onderbrekingsroetine hanteer om dit so responsief as moontlik te maak.
Voordat die chip oor USB geprogrammeer kan word, moet die selflaaiprogram verbrand word. Dit word gedoen via die ISP/ICSP -poort (die 3x2 manlike headers) via 'n ISP -programmeerder. Opsies is die AVRISPMK2, USBTINY ISP of 'n arduino as ISP. Maak seker dat die bord krag kry en druk op die 'brand bootloader' -knoppie.
Die kode kan nou via die USB C -poort op die kaart opgelaai word (aangesien die chip 'n selflaaiprogram het). Raad: Arduino Micro Programmer: AVR ISP / AVRISP MKII Nou kan ons kyk na die interaksie tussen die Arduino en die rekenaar.
Stap 6: Android -app
Ons het nou 'n volledig funksionele kragvoorsiening, maar ons kan dit nog nie beheer nie. Baie irriterend. Ons maak dus 'n Android -app om die kragvoorsiening via Bluetooth te beheer.
Die app is gemaak met die MIT -program vir uitvinders. Alle lêers kan ingesluit word om die projek te kloon en aan te pas. Laai eers die MIT AI2 -metgesel -app op u telefoon af. Voer vervolgens die.aia -lêer op die AI -webwerf in. Hiermee kan u ook die app op u eie telefoon aflaai deur 'Build> App' te kies (verskaf QR -kode vir.apk) '
Kies 'n Bluetooth-toestel uit die lys om die app te gebruik: dit verskyn as 'n HC-05-module. As dit gekoppel is, kan alle instellings verander word en kan die uitvoer van die kragvoorsiening uitgelees word.
Stap 7: Java -kode
Ek het 'n Java -toepassing gemaak om data aan te meld en die kragvoorsiening via die rekenaar te beheer. Dit stel ons in staat om die bord maklik te beheer deur middel van 'n GUI. Net soos met die Arduino -kode, gaan ek nie in op alle besonderhede nie, maar gee ek 'n oorsig.
Ons begin deur 'n venster te maak met knoppies, teksvelde, ens. basiese GUI -dinge.
Nou kom die prettige deel: die byvoeging van die USB -poorte, waarvoor ek die jSerialComm -biblioteek gebruik het. Sodra 'n poort gekies is, luister Java na inkomende data. Ons kan ook data na die toestel stuur.
Verder word alle inkomende data in 'n csv -lêer gestoor vir latere databehandeling.
As u die.jar -lêer uitvoer, moet ons eers die regte poort in die keuselys kies. Na die verbinding begin data inkom, en ons kan ons instellings na die kragvoorsiening stuur.
Alhoewel die program redelik basies is, kan dit baie handig wees om dit via 'n rekenaar te beheer en die data daarvan aan te teken.
Stap 8:
Na al hierdie werk het ons nou 'n ten volle funksionele kragvoorsiening!
Ons kan nou ons eie tuisgemaakte kragvoorsiening geniet, wat handig sal wees as u aan ander wonderlike projekte werk! En die belangrikste: ons het onderweg baie dinge geleer.
As u van hierdie projek hou, stem asseblief vir my in die sakformaat en mikrobeheerderkompetisie, ek sal dit opreg waardeer!
Aanbeveel:
Digitale vlak met kruislynlaser: 15 stappe (met foto's)
Digitale vlak met kruislynlaser: Hallo almal, vandag gaan ek u wys hoe u 'n digitale vlak kan maak met opsionele geïntegreerde kruislynlaser. Ongeveer 'n jaar gelede het ek 'n digitale multi-instrument geskep. Alhoewel die instrument baie verskillende modusse bevat, is dit die algemeenste en nuttigste vir my
Digitale klok met behulp van mikrokontroller (AT89S52 sonder RTC -stroombaan): 4 stappe (met foto's)
Digitale klok met behulp van mikrobeheerder (AT89S52 Sonder RTC -stroombaan): Kom ons beskryf 'n horlosie … " Klok is 'n toestel wat die tyd tel en toon (relatief) " . LET WEL: dit sal 2-3 minute neem om te lees, lees die hele projek, anders sal ek nie
Netwerktyd digitale klok met behulp van die ESP8266: 4 stappe (met foto's)
Netwerktyd digitale klok Met behulp van die ESP8266: Ons leer hoe om 'n oulike digitale horlosie te bou wat met NTP -bedieners kommunikeer en netwerk- of internettyd vertoon. Ons gebruik die WeMos D1 mini om aan te sluit op 'n WiFi -netwerk, kry die NTP -tyd en vertoon dit op 'n OLED -module
Herlaaibare digitale voltmeter met behulp van ICL7107 ADC: 7 stappe (met foto's)
Herlaaibare digitale voltmeter met behulp van ICL7107 ADC: In hierdie handleiding sal ek jou wys hoe om 'n super eenvoudige digitale voltmeter te maak wat spanning van 20 mV tot 200V kan meet. Hierdie projek sal geen mikrobeheerder soos arduino gebruik nie. In plaas daarvan sal 'n ADC, dws ICL7107, met 'n paar passasiers gebruik word
Outomatiese troeteldiervoerder met 'n ou digitale horlosie: 10 stappe (met foto's)
Outomatiese troeteldiervoerder met 'n ou digitale horlosie: Hallo, in hierdie instruksies sal ek jou wys hoe ek 'n outomatiese troeteldiervoerder met 'n ou digitale horlosie gemaak het. Ek het ook 'n video ingebed oor hoe ek hierdie voerder gemaak het. Hierdie instruksies word vir die PCB -wedstryd ingeskryf, en as 'n guns wil ek