Innholdsfortegnelse:

Digital USB C drevet Bluetooth strømforsyning: 8 trinn (med bilder)
Digital USB C drevet Bluetooth strømforsyning: 8 trinn (med bilder)

Video: Digital USB C drevet Bluetooth strømforsyning: 8 trinn (med bilder)

Video: Digital USB C drevet Bluetooth strømforsyning: 8 trinn (med bilder)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning
Digital USB C drevet Bluetooth strømforsyning

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 og telefonen?

I denne instruksen vil jeg vise deg hvordan du bygger akkurat det: en digital strømforsyning, som er drevet over USB C. Den er arduino -kompatibel og kan styres via PC -en via USB eller via telefonen via Bluetooth.

Dette prosjektet er en utvikling av min tidligere strømforsyning, som var batteridrevet og har display og knapper. Sjekk det ut her! Imidlertid ønsket jeg å bli mindre, så derfor lagde jeg dette!

Strømforsyningen kan drives fra en USB C batteribank eller telefonlader. Dette gir opptil 15W effekt, som er nok til å drive mest laveffektelektronikk! For å ha et godt brukergrensesnitt på en så liten enhet, inkluderte jeg Bluetooth og en Android -app for kontrollene. Dette gjør denne strømforsyningen ultraportabel!

Jeg vil vise hele designprosessen, og alle prosjektfilene finnes på min GitHub -side:

La oss komme i gang!

Trinn 1: Funksjoner og kostnader

Funksjoner og kostnad
Funksjoner og kostnad

Funksjoner

  • Drevet av USB C
  • Kontrollert via Android -app via Bluetooth
  • Kontrollert via Java via USB C
  • Konstant spenning og konstant strømmodus
  • Bruker en lineær regulator med lav støy, foran en sporingsregulator for å minimere effekttap
  • Drevet av ATMEGA32U4, programmert med Arduino IDE
  • Kan drives av en USB C batteribank for å gjøre den bærbar
  • USB C og Apple lader deteksjon
  • Bananplugger med 18 mm mellomrom for kompatibilitet med BNC -adaptere

Spesifikasjoner

  • 0 - 1A, trinn på 1 mA (10 bit DAC)
  • 0 - 25V, trinn på 25 mV (10 bit DAC) (ekte 0V drift)
  • Spenningsmåling: 25 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 $ 100, med alle engangskomponenter. 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 dine fra ebay eller aliexpress, vil prisen falle til rundt $ 70. Det tar lengre tid før delene kommer inn, men det er et levedyktig alternativ.

Trinn 2: Skjematisk og teori om driften

Skjematisk og teori om driften
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 (C23 & R32). Dette gir en analog spenning - mellom 0 og 5 V - proporsjonal med ønsket utgangsspenning. Siden utgangsområdet vårt er 0 - 25 V, må vi forsterke dette signalet med en faktor 5. Dette gjøres av den ikke inverterende opamp -konfigurasjonen til U7C. Gevinsten til settpinnen bestemmes av R31 og R36. Disse motstandene er 0,1% tolerante for å minimere feil. R39 og R41 spiller ingen rolle her, ettersom de er en del av tilbakemeldingslø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,5 V -område. Denne spenningen blir nå sammenlignet med spenningsfallet over gjeldende sansemotstand (ADC_Iout, se nedenfor) av komparatorkonfigurasjonen til opamp U1B. Hvis strømmen er for høy, vil denne slå på en LED, og også trekke den innstilte linjen til LT3080 til bakken (via Q1), 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 motstand R22. Når strøm strømmer gjennom denne motstanden, skaper det et spenningsfall som vi kan måle, og det plasseres foran LT3080, siden spenningsfallet over det ikke skal påvirke utgangsspenningen. Spenningsfallet måles med en differensialforsterker (U7B) med en forsterkning på 5. Dette resulterer i et spenningsområde på 0 - 2,5 V (mer om det senere), derav spenningsdeleren ved PWM -signalet til strømmen. Bufferen (U7A) er der for å sikre at strømmen som strømmer inn i motstandene R27, R34 og R35 ikke går gjennom den nåværende følelsesmotstanden, 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 R46), 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. Dessverre er denne kretsen ved utgangen fra LT3080, noe som betyr at strømmen vil bidra til utgangsstrømmen vi ønsker å måle. Heldigvis er den konstant, slik at vi kan kalibrere for denne strømmen. Zenerdioden D7 brukes til å feste utgangsspenningen hvis den går over 25 V, og motstandsdeleren senker utgangsspenningsområdet fra 0 - 25 V til 0 - 2,5 V (ADC_Vout). Bufferen (U7D) sikrer at motstandene ikke trekker strøm fra utgangen.

Ladepumpe

Den negative spenningen som vi nevnte før, genereres av en merkelig liten krets: ladepumpen. Den mates av en 50% PWM av mikrokontrolleren (PWM).

Boost -omformer

La oss nå se på inngangsspenningen til hovedblokken vår: VCC. Vi ser at den er 5 - 27V, men vent, USB gir maks 5 V? Faktisk, og det er derfor vi må øke spenningen, med en såkalt boost -omformer. Vi kan alltid øke spenningen til 27 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.

USB C

Dette leder oss til den virkelige inngangsspenningen: USB -porten! Grunnen til at du bruker USB C (USB type 3.1 for å være nøyaktig, USB C er bare kontakten) er fordi den tillater en strøm på 3A ved 5V, det er allerede ganske mye strøm. Men det er en hake, enheten må være kompatibel for å tegne denne strømmen og 'forhandle' med vertsenheten. I praksis gjøres dette ved å koble to 5.1k nedtrekksmotstander (R12 og R13) til CC1 og CC2 linjen. For USB 2 -kompatibilitet er dokumentasjonen mindre klar. Kort sagt: du tegner hvilken strøm du vil, så lenge verten kan levere den. Dette kan kontrolleres ved å overvåke USB -busspenningen: Når spenningen faller under 4,25V, trekker enheten for mye strøm. Dette oppdages av komparatoren U1A og deaktiverer utgangen. Den sender også et signal til mikrokontrolleren for å stille maksimal strøm. Som en bonus har det blitt lagt til motstander for å støtte påvisning av lader -IDen til eple- og samsung -ladere.

5V regulator

5 V forsyningsspenningen til arduinoen kommer normalt direkte fra USB. Men siden USB -spenningen kan variere mellom 4,5 og 5,5 V i henhold til USB -spesifikasjonen, er dette ikke presist nok. Derfor brukes en 5V regulator, som kan generere 5V fra lavere og høyere spenninger. Likevel er denne spenningen ikke veldig presis, men dette løses ved et kalibreringstrinn der driftssyklusen til PWM -signalet justeres deretter. Denne e spenningen måles av spenningsdeleren dannet av R42 og R43. 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 til potensiometeret.

2,56 V spenningsreferanse

Denne lille brikken gir en veldig nøyaktig 2,56 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,5 V.

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. Heldigvis er dette gjort av ATMEGA32U4, dette er den samme brikken som brukes i Arduino Micro.

blåtann

Bluetooth-delen er veldig enkel: en Bluetooth-modul på hyllen er lagt til og tar seg av alt for oss. Siden det logiske nivået er 3,3V (VS 5V for mikrokontrolleren) brukes en spenningsdeler for å nivåskifte signalet.

Og det er alt det er!

Trinn 3: PCB og elektronikk

PCB og elektronikk
PCB og elektronikk
PCB og elektronikk
PCB og elektronikk
PCB og elektronikk
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.

Selv om min forrige strømforsyning bare hadde gjennomgående hullkomponenter, gjorde størrelsesbegrensningen for min nye dette umulig. De fleste komponentene er fremdeles relativt enkle å lodde, så ikke vær redd. Som en illustrasjon: en venn av meg som aldri hadde loddet før klarte å fylle denne enheten!

Det er lettest å gjøre komponentene på forsiden først, deretter baksiden og avslutte med hullene. Når du gjør dette, vil ikke kretskortet vingle ved lodding av de vanskeligste komponentene. Den siste komponenten som skal loddes er Bluetooth -modulen.

Alle komponenter kan loddes, bortsett fra de 2 banankontaktene, som vi monterer i neste trinn!

Trinn 4: Etui og montering

Etui og montering
Etui og montering
Etui og montering
Etui og montering
Etui og montering
Etui og montering

Med PCB laget, kan vi gå videre til saken. Jeg designet PCB-en spesielt rundt et 20x50x80mm aluminium-etui (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), 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 banankontaktene. Jeg gjorde dette for hånd, men hvis du har tilgang til en CNC ville det være et mer nøyaktig alternativ. Sett banankontaktene inn i disse hullene og lodd dem på kretskortet.

Det er en god idé å legge til noen silkeputer nå, og holde dem på plass med en liten dråpe superlim. Disse vil tillate varmeoverføring mellom LT3080 og LT1370 og saken. Ikke glem dem!

Vi kan nå fokusere på frontpanelet, som bare skruer på plass. Med begge panelene på plass kan vi nå sette inn enheten i etuiet og lukke det hele. På dette tidspunktet er maskinvaren ferdig, nå gjenstår det bare å blåse litt liv i den med programvaren!

Trinn 5: Arduino -kode

Arduino -koden
Arduino -koden

Hjernen til dette prosjektet er ATMEGA32U4, 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:

  1. Send data til app
  2. Les data fra app
  3. Mål spenning
  4. Mål strøm
  5. Avstemningsknapp

USB -overstrømmen håndteres av en avbruddsrutine for å få den så responsiv som mulig.

Før brikken kan programmeres over USB, bør bootloaderen brennes. Dette gjøres via ISP/ICSP -porten (3x2 hannhodene) gjennom en ISP -programmerer. Alternativene er AVRISPMK2, USBTINY ISP eller en arduino som ISP. Sørg for at kortet får strøm, og trykk på knappen 'brenn oppstartslaster'.

Koden kan nå lastes opp til kortet via USB C -porten (siden brikken har en bootloader). Styret: Arduino Micro Programmer: AVR ISP / AVRISP MKII Nå kan vi se på samspillet mellom Arduino og PC.

Trinn 6: Android -app

Android App
Android App

Vi har nå en fullt funksjonell strømforsyning, men ingen måte å kontrollere den på ennå. Veldig irriterende. Så vi lager en Android -app for å kontrollere strømforsyningen via Bluetooth.

Appen er laget med MIT app -oppfinnerprogrammet. Alle filer kan inkluderes for å klone og endre prosjektet. Last ned først MIT AI2 -ledsagerappen til telefonen. Deretter importerer du.aia -filen til AI -nettstedet. Dette lar deg også laste ned appen på din egen telefon ved å velge "Bygg> App (oppgi QR -kode for.apk)"

For å bruke appen, velg en Bluetooth-enhet fra listen: den vises som HC-05-modul. Når den er tilkoblet, kan alle innstillinger endres og strømforsyningen kan leses ut.

Trinn 7: Java -kode

Java -kode
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 8:

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

Etter alt dette arbeidet har vi nå en fullt funksjonell strømforsyning!

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, kan du stemme på meg i lommestørrelsen og mikrokontroller -konkurransen, jeg ville virkelig sette pris på det!

Anbefalt: