Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
Har du noen gang ønsket en strømforsyning som du kan bruke når du er på farten, selv uten en stikkontakt i nærheten? Og ville det ikke vært kult hvis det også var veldig presist, digitalt og kontrollerbart via PC?
I denne instruksen vil jeg vise deg hvordan du bygger akkurat det: en digital batteridrevet strømforsyning, som er arduino -kompatibel og kan styres via PC -en via USB.
For en stund tilbake bygde jeg en strømforsyning fra en gammel ATX -PSU, og selv om det fungerer bra, ønsket jeg å forsterke spillet mitt med en digital strømforsyning. Som allerede sagt, den drives av batterier (2 litiumceller for å være presis), og den kan levere maksimalt 20 V ved 1 A; som er nok for de fleste av prosjektene mine som krever nøyaktig strømforsyning.
Jeg vil vise hele designprosessen, og alle prosjektfilene finnes på min GitHub -side:
La oss komme i gang!
Trinn 1: Funksjoner og kostnader
Funksjoner
- Konstant spenning og konstant strømmodus
- Bruker en lineær regulator med lav støy, foran en sporingsregulator for å minimere effekttap
- Bruk av håndlodbare komponenter for å holde prosjektet tilgjengelig
- Drevet av ATMEGA328P, programmert med Arduino IDE
- PC -kommunikasjon via Java -applikasjon over mikro -USB
- Drevet av 2 beskyttede 18650 litiumionceller
- Bananplugger med 18 mm mellomrom for kompatibilitet med BNC -adaptere
Spesifikasjoner
- 0 - 1A, trinn på 1 mA (10 bit DAC)
- 0 - 20V, trinn på 20 mV (10 bit DAC) (ekte 0V -drift)
- Spenningsmåling: 20 mV oppløsning (10 bit ADC)
-
Gjeldende måling:
- <40mA: 10uA oppløsning (ina219)
- <80mA: 20uA oppløsning (ina219)
- <160mA: 40uA oppløsning (ina219)
- <320mA: 80uA oppløsning (ina219)
- > 320mA: 1mA oppløsning (10 bit ADC)
Koste
Den komplette strømforsyningen kostet meg rundt $ 135, med alle engangskomponenter. Batteriene er den dyreste delen ($ 30 for 2 celler), siden de er beskyttede 18650 litiumceller. Det er mulig å redusere kostnaden betydelig hvis det ikke er behov for batteridrift. Ved å utelate batteriene og ladekretsene faller prisen til omtrent $ 100. Selv om dette kan virke dyrt, koster strømforsyninger med langt mindre ytelse og funksjoner ofte mer enn dette.
Hvis du ikke har noe imot å bestille komponentene fra ebay eller aliexpress, vil prisen med batterier falle til $ 100 og $ 70 uten. Det tar lengre tid før delene kommer inn, men det er et levedyktig alternativ.
Trinn 2: Skjematisk og teori om driften
For å forstå driften av kretsen må vi se på skjematikken. Jeg delte den inn i funksjonelle blokker, slik at den er lettere å forstå; Jeg vil dermed også forklare operasjonen trinn for trinn. Denne delen er ganske grundig og krever god elektronikkunnskap. Hvis du bare vil vite hvordan du bygger kretsen, kan du hoppe til neste trinn.
Hovedblokk
Operasjonen er basert på LT3080 -brikken: det er en lineær spenningsregulator, som kan trappe ned spenninger, basert på et styresignal. Dette styresignalet vil bli generert av en mikrokontroller; hvordan dette gjøres, vil bli forklart i detalj senere.
Spenningsinnstilling
Kretsløpet rundt LT3080 genererer passende styresignaler. Først skal vi se på hvordan spenningen er satt. Spenningsinnstillingen fra mikrokontrolleren er et PWM -signal (PWM_Vset), som filtreres av et lavpassfilter (C9 og R26). Dette gir en analog spenning - mellom 0 og 5 V - proporsjonal med ønsket utgangsspenning. Siden utgangsområdet vårt er 0 - 20 V, må vi forsterke dette signalet med en faktor 4. Dette gjøres av den ikke inverterende opamp -konfigurasjonen til U3C. Gevinsten til settpinnen bestemmes av R23 // R24 // R25 og R34. Disse motstandene er 0,1% tolerante for å minimere feil. R39 og R36 spiller ingen rolle her, ettersom de er en del av tilbakemeldingssløyfen.
Nåværende innstilling
Denne settpinnen kan også brukes til den andre innstillingen: nåværende modus. Vi ønsker å måle strømtrekkingen, og slå av utgangen når denne overstiger ønsket strøm. Derfor starter vi igjen med et PWM -signal (PWM_Iset), generert av mikrokontrolleren, som nå er lavpassfiltrert og dempet for å gå fra et 0 - 5 V -område til et 0 - 2 V -område. Denne spenningen blir nå sammenlignet med spenningsfallet over den nåværende følelsesmotstanden (ADC_Iout, se nedenfor) av komparator -konfigurasjonen til opamp U3D. Hvis strømmen er for høy, vil denne slå på en LED, og også trekke den innstilte linjen til LT3080 til bakken (via Q2), og dermed slå av utgangen. Målingen av strømmen og generering av signalet ADC_Iout gjøres som følger. Utgangsstrømmen strømmer gjennom motstandene R7 - R16. Disse totalt 1 ohm; grunnen til ikke å bruke 1R i utgangspunktet er todelt: 1 motstand må ha en høyere effekt (den må spre minst 1 W), og ved å bruke 10 1% motstander parallelt får vi en høyere presisjon enn med en 1 % motstand. En god video om hvorfor dette fungerer finner du her: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Når strøm strømmer gjennom disse motstandene, skaper det et spenningsfall som vi kan måle, og det er plassert før LT3080, siden spenningsfallet over det ikke skal påvirke utgangsspenningen. Spenningsfallet måles med en differensialforsterker (U3B) med en forsterkning på 2. Dette resulterer i et spenningsområde på 0 - 2 V (mer om det senere), derav spenningsdeleren ved PWM -signalet til strømmen. Bufferen (U3A) er der for å sikre at strømmen som strømmer inn i motstandene R21, R32 og R33 ikke går gjennom den nåværende sensormotstanden, noe som vil påvirke lesingen. Vær også oppmerksom på at dette bør være en skinne-til-skinne opamp, fordi inngangsspenningen ved den positive inngangen er lik forsyningsspenningen. Den ikke -inverterende forsterkeren er bare for kursmåling, men for svært presise målinger har vi INA219 -brikken om bord. Denne brikken lar oss måle veldig små strømmer, og adresseres via I2C.
Ytterligere ting
På produksjonen av LT3080 har vi noen flere ting. Først og fremst er det en nåværende vask (LM334). Dette trekker en konstant strøm på 677 uA (satt av motstand R41), for å stabilisere LT3080. Den er imidlertid ikke koblet til jord, men til VEE, en negativ spenning. Dette er nødvendig for at LT3080 skal fungere ned til 0 V. Når den er koblet til bakken, vil den laveste spenningen være omtrent 0,7 V. Dette virker lavt nok, men husk at dette forhindrer oss i å slå strømforsyningen helt av. Zenerdioden D3 brukes til å feste utgangsspenningen hvis den går over 22 V, og motstandsdeleren senker utgangsspenningsområdet fra 0 - 20 V til 0 - 2 V (ADC_Vout). Dessverre er disse kretsene ved utgangen fra LT3080, noe som betyr at strømmen deres vil bidra til utgangsstrømmen vi ønsker å måle. Heldigvis er disse strømningene konstante hvis spenningen forblir konstant; slik at vi kan kalibrere strømmen når lasten kobles fra først.
Ladepumpe
Den negative spenningen som vi nevnte før, genereres av en merkelig liten krets: ladepumpen. For driften, vil jeg referere til her: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Den mates av en 50% PWM av mikrokontrolleren (PWM)
Boost -omformer
La oss nå se på inngangsspenningen til hovedblokken vår: Vboost. Vi ser at det er 8 - 24V, men vent, 2 litiumceller i serie gir maks 8,4 V? Faktisk, og det er derfor vi må øke spenningen, med en såkalt boost -omformer. Vi kan alltid øke spenningen til 24 V, uansett hvilken utgang vi ønsker; Imidlertid ville dette kaste bort mye strøm i LT3080, og ting ville bli toasty hot! Så i stedet for å gjøre det, vil vi øke spenningen til litt mer enn utgangsspenningen. Omtrent 2,5 V høyere er hensiktsmessig for å ta hensyn til spenningsfallet i motstanden for nåværende forstand og frafallsspenningen til LT3080. Spenningen settes av motstander på utgangssignalet til boost -omformeren. For å endre denne spenningen i farten bruker vi et digitalt potensiometer, MCP41010, som styres via SPI.
Batteri lading
Dette leder oss til den virkelige inngangsspenningen: batteriene! Siden vi bruker beskyttede celler, trenger vi bare å sette dem i serie, og vi er ferdige! Det er viktig å bruke beskyttede celler her for å unngå overstrøm eller overdiskladning, og dermed skade, av cellene. Igjen bruker vi en spenningsdeler for å måle batterispenningen og slippe den ned til et brukbart område. Nå til den interessante delen: ladekretsene. Vi bruker BQ2057WSN -brikken til dette formålet: i kombinasjon med TIP32CG danner den i utgangspunktet en lineær strømforsyning selv. Denne brikken lader cellene via en passende CV CC -bane. Siden batteriene mine ikke har en temperatursonde, bør denne inngangen være knyttet til halvparten av batterispenningen. Dette avslutter spenningsreguleringsdelen av strømforsyningen.
5V regulator
5 V forsyningsspenningen til arduinoen er laget med denne enkle spenningsregulatoren. Det er imidlertid ikke den mest presise 5 V -utgangen, men dette vil bli løst nedenfor.
2,048 V spenningsreferanse
Denne lille brikken gir en veldig nøyaktig 2,048 V spenningsreferanse. Dette brukes som referanse for de analoge signalene ADC_Vout, ADC_Iout, ADC_Vbatt. Derfor trengte vi spenningsdelere for å bringe disse signalene ned til 2 V. Mikrokontroller Hjernen i dette prosjektet er ATMEGA328P, dette er den samme brikken som brukes i Arduino Uno. Vi har allerede gått over de fleste kontrollsignaler, men det er likevel noen interessante tillegg. De roterende koderne er koblet til de to eneste eksterne avbruddspinnene på arduinoen: PD2 og PD3. Dette er nødvendig for en pålitelig programvareimplementering. Bryterne under bruker en intern pullup -motstand. Så er det denne merkelige spenningsdeleren på chip -valglinjen til potensiometeret (Pot). En spenningsdeler på en utgang, hva er det bra for; kan du si. Som nevnt tidligere er 5 V -forsyningen ikke veldig nøyaktig. Det ville derfor være godt å måle dette nøyaktig, og justere driftssyklusen til PWM -signalet deretter. Men siden jeg ikke hadde flere ledige innganger, måtte jeg lage en pin -pull -duty. Når strømforsyningen starter, settes denne pinnen først som en inngang: den måler tilførselsskinnen og kalibrerer seg selv. Deretter settes den som en utgang, og den kan drive chip -valglinjen.
Skjermdriver
For displayet ønsket jeg en vanlig - og billig - hitachi lcd -skjerm. De drives av 6 pins, men siden jeg ikke hadde noen pins igjen, trengte jeg en annen løsning. Et skiftregister til unnsetning! 74HC595 tillater meg å bruke SPI -linjen til å kontrollere skjermen, og trenger derfor bare 1 ekstra chip select line.
FTDI
Den siste delen av denne strømforsyningen er forbindelsen til den grusomme verden utenfor. For dette må vi konvertere de serielle signalene til USB -signaler. Dette gjøres med en FTDI -brikke, som er koblet til en mikro -USB -port for enkel tilkobling.
Og det er alt det er!
Trinn 3: PCB og elektronikk
Nå som vi forstår hvordan kretsen fungerer, kan vi begynne å bygge den! Du kan ganske enkelt bestille PCB -en online fra din favorittprodusent (min koster rundt $ 10). Gerber -filene finnes på min GitHub, sammen med materialregningen. Montering av PCB er da i utgangspunktet et spørsmål om lodding av komponentene på plass i henhold til silketrykket og materialregningen.
Det første trinnet er lodding av SMD -komponentene. De fleste av dem er enkle å gjøre for hånd, bortsett fra FTDI -brikken og mikro -USB -kontakten. Derfor kan du unngå å lodde de to komponentene selv, og bruke et FTDI -utbruddskort i stedet. Jeg ga toppnål der dette kan loddes på.
Når SMD -arbeidet er gjort, kan du gå videre til alle gjennomgående hullkomponenter. Disse er veldig enkle. For sjetongene kan det være lurt å bruke kontakter i stedet for å lodde dem direkte til brettet. Det er å foretrekke å bruke en ATMEGA328P med Arduino bootloader, ellers må du laste den opp med ICSP -overskriften (vist her).
Den eneste delen som trenger litt mer oppmerksomhet er LCD -skjermen, siden den må monteres på skrå. Lodd noen mannlige vinklede hoder på den, med plaststykket vendt mot undersiden av skjermen. Dette vil tillate en god plassering av skjermen på kretskortet. Etter det kan det loddes på plass akkurat som alle andre gjennomgående hullkomponenter.
Det eneste du trenger å gjøre er å legge til 2 ledninger, som kobles til bananterminalene på frontplaten.
Trinn 4: Etui og montering
Med PCB laget, kan vi gå videre til saken. Jeg designet spesielt kretskortet rundt dette hammond -etuiet, så det anbefales ikke å bruke et annet etui. Imidlertid kan du alltid skrive ut et etui med samme dimensjoner i 3D.
Det første trinnet er å forberede endepanelet. Vi må bore noen hull for skruer, brytere osv. Jeg gjorde dette for hånd, men hvis du har tilgang til en CNC ville det være et mer nøyaktig alternativ. Jeg lagde hullene i henhold til skjemaet og banket på skruehullene.
Det er en god idé å legge til noen silkeputer nå, og holde dem på plass med en liten dråpe superlim. Disse vil isolere LT3080 og TIP32 fra bakplaten, samtidig som de tillater varmeoverføring. Ikke glem dem! Når du skrur sponene på bakpanelet, bruk en glimmerskive for å sikre isolasjon!
Vi kan nå fokusere på frontpanelet, som bare glir på plass. Vi kan nå legge til banankontaktene og knottene for de roterende koderne.
Med begge panelene på plass kan vi nå sette enheten i saken, legge til batteriene og lukke det hele. Pass på at du bruker beskyttede batterier, du vil ikke at cellene skal eksplodere!
På dette tidspunktet er maskinvaren ferdig, nå gjenstår det bare å blåse litt liv i den med programvaren!
Trinn 5: Arduino -kode
Hjernen til dette prosjektet er ATMEGA328P, som vi skal programmere med Arduino IDE. I denne delen vil jeg gå gjennom den grunnleggende operasjonen av koden, detaljene kan bli funnet som kommentarer inne i koden.
Koden går i utgangspunktet gjennom disse trinnene:
- Les serielle data fra java
- Meningsmålingsknapper
- Mål spenning
- Mål strøm
- Mål strøm med INA219
- Send serielle data til java
- Konfigurer boostconvertor
- Få batteriladning
- Oppdateringsskjerm
De roterende koderne håndteres av en avbruddsrutine for å få dem så responsive som mulig.
Koden kan nå lastes opp til kortet via mikro -USB -porten (hvis brikken har en oppstartslaster). Brett: Arduino pro eller pro mini Programmerer: AVR ISP / AVRISP MKII
Nå kan vi se på samspillet mellom Arduino og PC.
Trinn 6: Java -kode
For å logge data og kontrollere strømforsyningen via PCen, laget jeg en java -applikasjon. Dette lar oss enkelt styre brettet gjennom en GUI. Som med Arduino -koden, vil jeg ikke gå inn på alle detaljer, men gi en oversikt.
Vi starter med å lage et vindu med knapper, tekstfelt etc; grunnleggende GUI -ting.
Nå kommer den morsomme delen: å legge til USB -portene, som jeg brukte jSerialComm -biblioteket til. Når en port er valgt, vil java lytte etter innkommende data. Vi kan også sende data til enheten.
Videre lagres alle innkommende data i en csv -fil, for senere databehandling.
Når du kjører.jar -filen, bør vi først velge riktig port fra rullegardinmenyen. Etter tilkobling begynner data å komme inn, og vi kan sende innstillingene våre til strømforsyningen.
Selv om programmet er ganske grunnleggende, kan det være veldig nyttig å kontrollere det via en PC og logge dataene.
Trinn 7: Suksess
Etter alt dette arbeidet har vi nå en fullt funksjonell strømforsyning!
Jeg må også takke noen for støtten:
- Prosjektet var basert på EEVBLOGs uSupply -prosjekt og Rev C -skjemaet. Så en spesiell takk til David L. Jones for at han ga ut skjemaene sine under en åpen kildekode -lisens og delte all sin kunnskap.
- En stor takk til Johan Pattyn for å produsere prototypene til dette prosjektet.
- Også Cedric Busschots og Hans Ingelberts fortjener æren for hjelpen med feilsøking.
Vi kan nå nyte vår egen hjemmelagde strømforsyning, som vil komme godt med mens du jobber med andre fantastiske prosjekter! Og viktigst av alt: vi har lært mange ting underveis.
Hvis du likte dette prosjektet, vær så snill å stemme på meg i strømforsyningskonkurransen, jeg vil virkelig sette pris på det! Https: //www.instructables.com/contest/powersupply/
Andre pris i konkurransen om strømforsyning
Anbefalt:
Batteridrevet kontor. Solsystem med autoskifte øst/vest solpaneler og vindturbin: 11 trinn (med bilder)
Batteridrevet kontor. Solsystem med autoskifte øst/vest solpaneler og vindturbin: Prosjektet: Et kontor på 200 kvadratmeter må være batteridrevet. Kontoret må også inneholde alle kontrollere, batterier og komponenter som trengs for dette systemet. Sol- og vindkraft vil lade batteriene. Det er et lite problem med bare
Skjult ATX strømforsyning til benk strømforsyning: 7 trinn (med bilder)
Skjult ATX -strømforsyning til benkestrømforsyning: En benkestrømforsyning er nødvendig når du arbeider med elektronikk, men en kommersiell lab -strømforsyning kan være veldig dyr for alle nybegynnere som ønsker å utforske og lære elektronikk. Men det er et billig og pålitelig alternativ. Av konve
220V til 24V 15A strømforsyning - Bytte strømforsyning - IR2153: 8 trinn
220V til 24V 15A strømforsyning | Bytte strømforsyning | IR2153: Hei fyr i dag Vi lager 220V til 24V 15A strømforsyning | Bytte strømforsyning | IR2153 fra ATX strømforsyning
Konverter en datamaskinens strømforsyning til en variabel benk Top Lab strømforsyning: 3 trinn
Konverter en datamaskinens strømforsyning til en variabel benk Top Lab -strømforsyning: Prisen i dag for en laboratorieforsyning overstiger godt $ 180. Men det viser seg at en foreldet datastrømforsyning er perfekt for jobben i stedet. Med disse koster deg bare $ 25 og har kortslutningsbeskyttelse, termisk beskyttelse, overbelastningsbeskyttelse og
En annen strømforsyning på bordet fra PC -strømforsyning: 7 trinn
En annen strømforsyning fra en bordplate fra PC -strømforsyningen: Denne instruksjonen viser hvordan jeg bygde strømforsyningen fra bordet fra strømforsyningsenheten i en gammel datamaskin. Dette er et veldig godt prosjekt å gjøre av en rekke årsaker:- Denne tingen er veldig nyttig for alle som jobber med elektronikk. Det supp