Indholdsfortegnelse:
- Trin 1: Funktioner og omkostninger
- Trin 2: Skematisk og teori om drift
- Trin 3: PCB og elektronik
- Trin 4: Etui og samling
- Trin 5: Arduino -kode
- Trin 6: Android App
- Trin 7: Java -kode
- Trin 8:
Video: Digital USB C -drevet Bluetooth -strømforsyning: 8 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Har du nogensinde ønsket en strømforsyning, som du kan bruge på farten, selv uden en stikkontakt i nærheden? Og ville det ikke være fedt, hvis det også var meget præcist, digitalt og kontrollerbart via pc og din telefon?
I denne instruktive vil jeg vise dig, hvordan du opbygger præcis det: en digital strømforsyning, der drives via USB C. Den er arduino -kompatibel og kan styres via pc'en via USB eller via din telefon via Bluetooth.
Dette projekt er en udvikling af min tidligere strømforsyning, som var batteridrevet og har display og knapper. Tjek det ud her! Jeg ville dog gå mindre, så derfor lavede jeg dette!
Strømforsyningen kan drives fra en USB C batteribank eller telefonoplader. Dette giver mulighed for op til 15W strøm, hvilket er nok til at drive mest laveffektelektronik! For at få et godt brugergrænseflade på sådan en lille enhed inkluderede jeg Bluetooth og en Android -app til kontrolelementerne. Dette gør denne strømforsyning ultraportabel!
Jeg vil vise hele designprocessen, og alle projektfiler kan findes på min GitHub -side:
Lad os komme igang!
Trin 1: Funktioner og omkostninger
Funktioner
- Drives af USB C
- Styres via Android -app via Bluetooth
- Styres via Java via USB C
- Konstant spænding og konstant strømtilstand
- Bruger en lineær regulator med lav støj, efterfulgt af en preregulator til sporing for at minimere effekttab
- Drevet af ATMEGA32U4, programmeret med Arduino IDE
- Kan drives af en USB C batteribank for at gøre den bærbar
- USB C og Apple oplader registrering
- Bananstik med 18 mm afstand til kompatibilitet med BNC -adaptere
specifikationer
- 0 - 1A, trin på 1 mA (10 bit DAC)
- 0 - 25V, trin på 25 mV (10 bit DAC) (ægte 0V drift)
- Spændingsmåling: 25 mV opløsning (10 bit ADC)
- Nuværende måling: <40mA: 10uA opløsning (ina219) <80mA: 20uA opløsning (ina219) <160mA: 40uA opløsning (ina219) <320mA: 80uA opløsning (ina219)> 320mA: 1mA opløsning (10 bit ADC)
Koste
Den komplette strømforsyning kostede mig omkring $ 100, med alle engangskomponenter. Selvom dette kan virke dyrt, leverer strømforsyninger med langt mindre ydeevne og funktioner ofte mere end dette. Hvis du ikke har noget imod at bestille dine komponenter fra ebay eller aliexpress, vil prisen falde til omkring $ 70. Det tager længere tid for delene at komme ind, men det er en levedygtig mulighed.
Trin 2: Skematisk og teori om drift
For at forstå kredsløbets funktion skal vi se på skematikken. Jeg opdelte det i funktionelle blokke, sådan at det er lettere at forstå; Jeg vil således også forklare betjeningen trin for trin. Denne del er ganske dybtgående og kræver en god elektronikviden. Hvis du bare vil vide, hvordan du opbygger kredsløbet, kan du springe til det næste trin.
Hovedblok
Operationen er baseret på LT3080 -chippen: det er en lineær spændingsregulator, der kan nedbringe spændinger baseret på et styresignal. Dette styresignal vil blive genereret af en mikrokontroller; hvordan dette gøres, vil blive forklaret i detaljer senere.
Spændingsindstilling
Kredsløbet omkring LT3080 genererer de passende styresignaler. Først vil vi se på, hvordan spændingen er indstillet. Spændingsindstillingen fra mikrokontrolleren er et PWM -signal (PWM_Vset), som filtreres af et lavpasfilter (C23 & R32). Dette producerer en analog spænding - mellem 0 og 5 V - proportional med den ønskede udgangsspænding. Da vores outputområde er 0 - 25 V, bliver vi nødt til at forstærke dette signal med en faktor 5. Dette gøres ved hjælp af den ikke -inverterende opamp -konfiguration af U7C. Forstærkningen til den indstillede pin bestemmes af R31 og R36. Disse modstande er 0,1% tolerante for at minimere fejl. R39 og R41 er ligegyldige her, da de er en del af feedback -loop.
Nuværende indstilling
Denne sætnål kan også bruges til den anden indstilling: aktuel tilstand. Vi vil måle strømstrømmen og slukke for udgangen, når denne overstiger den ønskede strøm. Derfor starter vi igen med et PWM -signal (PWM_Iset), genereret af mikrokontrolleren, som nu lavpasfiltreres og dæmpes til at gå fra et 0 - 5 V område til et 0 - 2,5 V område. Denne spænding sammenlignes nu med spændingsfaldet over den aktuelle følelsesmodstand (ADC_Iout, se nedenfor) af komparator -konfigurationen af opamp U1B. Hvis strømmen er for høj, vil dette tænde en LED, og også trække den indstillede linje for LT3080 til jorden (via Q1) og dermed slukke for udgangen. Målingen af strømmen og generering af signalet ADC_Iout udføres som følger. Udgangsstrømmen strømmer gennem modstand R22. Når strøm strømmer gennem denne modstand, skaber det et spændingsfald, som vi kan måle, og det placeres foran LT3080, da spændingsfaldet over det ikke bør påvirke udgangsspændingen. Spændingsfaldet måles med en differentialforstærker (U7B) med en forstærkning på 5. Dette resulterer i et spændingsområde på 0 - 2,5 V (mere om det senere), derfor spændingsdeleren ved PWM -signalet i strømmen. Bufferen (U7A) er der for at sikre, at strømmen, der strømmer ind i modstandene R27, R34 og R35, ikke går gennem den aktuelle følelsesmodstand, hvilket ville påvirke dens aflæsning. Bemærk også, at dette skal være en skinne-til-skinne opamp, fordi indgangsspændingen ved den positive indgang er lig med forsyningsspændingen. Den ikke -inverterende forstærker er kun til kursusmåling, men for meget præcise målinger har vi INA219 -chippen ombord. Denne chip giver os mulighed for at måle meget små strømme og adresseres via I2C.
Yderligere ting
Ved output fra LT3080 har vi nogle flere ting. Først og fremmest er der en strømvask (LM334). Dette tegner en konstant strøm på 677 uA (indstillet af modstand R46) for at stabilisere LT3080. Det er dog ikke forbundet til jord, men til VEE, en negativ spænding. Dette er nødvendigt for at LT3080 kan fungere ned til 0 V. Når den er tilsluttet jorden, vil den laveste spænding være omkring 0,7 V. Dette virker lavt nok, men husk på, at dette forhindrer os i at slukke for strømforsyningen helt. Desværre er dette kredsløb ved udgangen fra LT3080, hvilket betyder, at dets strøm vil bidrage til den udgangsstrøm, vi ønsker at måle. Heldigvis er den konstant, så vi kan kalibrere for denne strøm. Zenerdioden D7 bruges til at spænde udgangsspændingen, hvis den går over 25 V, og modstandsdeleren sænker udgangsspændingsområdet fra 0 - 25 V til 0 - 2,5 V (ADC_Vout). Bufferen (U7D) sikrer, at modstandene ikke trækker strøm fra udgangen.
Opladningspumpe
Den negative spænding, som vi nævnte før, genereres af et underligt lille kredsløb: ladningspumpen. Den fodres med en 50% PWM af mikrokontrolleren (PWM).
Boost -konverter
Lad os nu se på indgangsspændingen i vores hovedblok: VCC. Vi ser, at det er 5 - 27V, men vent, USB giver maksimalt 5 V? Ja, og derfor er vi nødt til at øge spændingen med en såkaldt boost -konverter. Vi kunne altid øge spændingen til 27 V, uanset hvilken output vi ønsker; dette ville dog spilde meget strøm i LT3080, og tingene ville blive toasty hot! Så i stedet for at gøre det, vil vi øge spændingen til lidt mere end udgangsspændingen. Cirka 2,5 V højere er passende for at tage højde for spændingsfaldet i den aktuelle forstandsmodstand og frafaldsspændingen for LT3080. Spændingen indstilles af modstande på boost -konverterens udgangssignal. For at ændre denne spænding i farten bruger vi et digitalt potentiometer, MCP41010, som styres via SPI.
USB C
Dette fører os til den reelle indgangsspænding: USB -porten! Grunden til at bruge USB C (USB type 3.1 for at være præcis, USB C er bare stikstik) er, fordi den tillader en strøm på 3A ved 5V, det er allerede en del strøm. Men der er en fangst, enheden skal være kompatibel for at trække denne strøm og 'forhandle' med værtenheden. I praksis gøres dette ved at forbinde to 5,1 k nedrivningsmodstande (R12 og R13) til CC1- og CC2 -linjen. For USB 2 -kompatibilitet er dokumentationen mindre klar. Kort sagt: du tegner den strøm du ønsker, så længe værten kan levere den. Dette kan kontrolleres ved at overvåge USB -busspændingen: Når spændingen falder under 4,25V, trækker enheden for meget strøm. Dette registreres af komparatoren U1A og deaktiverer output. Det sender også et signal til mikrokontrolleren for at indstille den maksimale strøm. Som en bonus er der tilføjet modstande for at understøtte påvisning af oplader -id'et for æble- og samsung -opladere.
5V regulator
Arduinoens 5 V forsyningsspænding kommer normalt direkte fra USB. Men da USB -spændingen kan variere mellem 4,5 og 5,5 V i henhold til USB -specifikationen, er dette ikke præcist nok. Derfor bruges en 5V regulator, som kan generere 5V fra lavere og højere spændinger. Alligevel er denne spænding ikke frygtelig præcis, men dette løses ved et kalibreringstrin, hvor PWM -signalets driftscyklus justeres i overensstemmelse hermed. Denne spænding måles af spændingsdeleren dannet af R42 og R43. Men da jeg ikke havde flere gratis input, var jeg nødt til at få en pin til at trække dobbelt pligt. Når strømforsyningen starter, sættes denne pin først som et input: den måler forsyningsskinnen og kalibrerer sig selv. Dernæst indstilles det som en output, og det kan drive chipvalglinjen i potentiometeret.
2,56 V spændingsreference
Denne lille chip giver en meget præcis 2,56 V spændingsreference. Dette bruges som reference for de analoge signaler ADC_Vout, ADC_Iout, ADC_Vbatt. Derfor havde vi brug for spændingsdelere for at bringe disse signaler ned til 2,5 V.
FTDI
Den sidste del af denne strømforsyning er forbindelsen til den grusomme omverden. Til dette skal vi konvertere de serielle signaler til USB -signaler. Heldigvis gøres dette af ATMEGA32U4, det er den samme chip, der bruges i Arduino Micro.
Bluetooth
Bluetooth-delen er meget enkel: Et Bluetooth-modul på hylden tilføjes og tager sig af alt for os. Da det er logisk niveau er 3,3V (VS 5V for mikrokontrolleren) bruges en spændingsdeler til niveauforskydning af signalet.
Og det er alt, hvad der skal til!
Trin 3: PCB og elektronik
Nu hvor vi forstår, hvordan kredsløbet fungerer, kan vi begynde at bygge det! Du kan simpelthen bestille printkortet online fra din foretrukne producent (min koster omkring $ 10), gerber -filerne kan findes på min GitHub, sammen med materialebekræftelsen. Montering af printkortet er så i bund og grund et spørgsmål om lodning af komponenterne på plads i henhold til silketrykket og materialebilledet.
Mens min tidligere strømforsyning kun havde gennemgående huller, gjorde størrelsesbegrænsningen for min nye dette umuligt. De fleste komponenter er stadig relativt lette at lodde, så vær ikke bange. Som en illustration: en af mine venner, der aldrig havde loddet før, formåede at udfylde denne enhed!
Det er nemmest at lave komponenterne på forsiden først, derefter på bagsiden og afslutte med hullerne i hullerne. Når dette gøres, vil PCB'en ikke vingle ved lodning af de vanskeligste komponenter. Den sidste komponent, der skal loddes, er Bluetooth -modulet.
Alle komponenter kan loddes, bortset fra de 2 bananstik, som vi monterer i næste trin!
Trin 4: Etui og samling
Med printet lavet, kan vi gå videre til sagen. Jeg har specielt designet PCB'et omkring en aluminium 20x50x80mm sag (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), så det anbefales ikke at bruge en anden sag. Du kan dog altid 3D -udskrive en sag med de samme dimensioner.
Det første trin er at forberede slutpanelet. Vi bliver nødt til at bore nogle huller til bananstikkene. Jeg gjorde dette i hånden, men hvis du har adgang til en CNC, ville det være en mere præcis mulighed. Sæt bananstikkene i disse huller og lod dem på printkortet.
Det er en god idé at tilføje nogle silkepuder nu og holde dem på plads med en lille dråbe superlim. Disse giver mulighed for varmeoverførsel mellem LT3080 og LT1370 og sagen. Glem dem ikke!
Vi kan nu fokusere på frontpanelet, som bare skruer på plads. Med begge paneler på plads kan vi nu indsætte samlingen i sagen og lukke det hele. På dette tidspunkt er hardwaren færdig, nu er der kun tilbage at blæse noget liv i den med softwaren!
Trin 5: Arduino -kode
Hjernen i dette projekt er ATMEGA32U4, som vi vil programmere med Arduino IDE. I dette afsnit vil jeg gennemgå den grundlæggende betjening af koden, detaljerne kan findes som kommentarer inde i koden.
Koden løber grundlæggende gennem disse trin:
- Send data til app
- Læs data fra app
- Mål spænding
- Mål strøm
- Afstemningsknap
USB -overstrømmen håndteres af en afbrydelsesrutine for at få den så lydhør som muligt.
Inden chippen kan programmeres over USB, skal bootloaderen brændes. Dette gøres via ISP/ICSP -porten (3x2 hanhovederne) gennem en ISP -programmør. Valgmulighederne er AVRISPMK2, USBTINY ISP eller en arduino som ISP. Sørg for, at kortet får strøm, og tryk på knappen 'brænd bootloader'.
Koden kan nu uploades til kortet via USB C -porten (da chippen har en bootloader). Board: Arduino Micro Programmer: AVR ISP / AVRISP MKII Nu kan vi tage et kig på samspillet mellem Arduino og pc'en.
Trin 6: Android App
Vi har nu en fuldt funktionsdygtig strømforsyning, men ingen måde at kontrollere den på endnu. Meget irriterende. Så vi laver en Android -app til at styre strømforsyningen via Bluetooth.
Appen er lavet med MIT app -opfinderprogrammet. Alle filer kan inkluderes for at klone og ændre projektet. Download først MIT AI2 -app til din telefon. Importér derefter.aia -filen på AI -webstedet. Dette giver dig også mulighed for at downloade appen på din egen telefon ved at vælge "Byg> App (angiv QR -kode til.apk)"
For at bruge appen skal du vælge en Bluetooth-enhed fra listen: den vises som HC-05-modul. Når den er tilsluttet, kan alle indstillinger ændres, og strømforsyningens output kan aflæses.
Trin 7: Java -kode
Til logning af data og styring af strømforsyningen via pc'en lavede jeg en java -applikation. Dette giver os mulighed for nemt at styre tavlen gennem en GUI. Ligesom med Arduino -koden vil jeg ikke gå ind på alle detaljer, men give et overblik.
Vi starter med at lave et vindue med knapper, tekstfelter osv. grundlæggende GUI -ting.
Nu kommer den sjove del: tilføjelse af USB -porte, som jeg brugte jSerialComm -biblioteket til. Når en port er valgt, vil java lytte efter indgående data. Vi kan også sende data til enheden.
Desuden gemmes alle indgående data i en csv -fil til senere databehandling.
Når vi kører.jar -filen, skal vi først vælge den rigtige port i rullemenuen. Efter tilslutning begynder data at komme ind, og vi kan sende vores indstillinger til strømforsyningen.
Selvom programmet er temmelig grundlæggende, kan det være meget nyttigt at styre det via en pc og logge dets data.
Trin 8:
Efter alt dette arbejde har vi nu en fuldt funktionel strømforsyning!
Vi kan nu nyde vores eget hjemmelavede strømforsyning, som vil være praktisk, når vi arbejder på andre fantastiske projekter! Og vigtigst af alt: vi har lært mange ting undervejs.
Hvis du kunne lide dette projekt, kan du stemme på mig i lommestørrelsen og mikrokontroller -konkurrencen, jeg ville virkelig sætte pris på det!
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores
Iron Man Reactor for Fun (Digital joystick til digital bevægelse): 7 trin (med billeder)
Iron Man Reactor for Fun (Digital Motion Processor Joystick): Hej kære! Dette er min første instruktion, så håber på din fordel og feedback! Projektet er en interaktiv platform til hjemmefester, konkurrencer, events - bare for sjov. Disse er to bevægelsessensorer fremstillet i designet af jernmandsreaktoren. Det
Genbrugt digital fotoramme med virtuel assisterende: 7 trin (med billeder)
Genbrugt digital fotoramme med virtuel assisterende: Hej alle sammen! Denne instruktør blev født fra en bærbar computer delt i to, købt af en ven. Det første forsøg på et sådant projekt var min Lego Digital fotoramme, men da jeg var en entusiastisk bruger af Siri og Google Now, besluttede jeg at tage det til en ny