Sisällysluettelo:
- Vaihe 1: Ominaisuudet ja hinta
- Vaihe 2: Kaavio ja toimintateoria
- Vaihe 3: Piirilevy ja elektroniikka
- Vaihe 4: Kotelo ja kokoonpano
- Vaihe 5: Arduino -koodi
- Vaihe 6: Java -koodi
- Vaihe 7: Menestys
Video: Digitaalinen paristokäyttöinen virtalähde: 7 vaihetta (kuvien kanssa)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Oletko koskaan halunnut virtalähdettä, jota voit käyttää liikkeellä, vaikka pistorasia ei olisi lähellä? Eikö olisi hienoa, jos se olisi myös erittäin tarkka, digitaalinen ja hallittavissa PC: n kautta?
Tässä ohjeessa näytän sinulle, kuinka rakentaa juuri se: digitaalinen paristokäyttöinen virtalähde, joka on arduino -yhteensopiva ja jota voidaan ohjata tietokoneen kautta USB: n kautta.
Jonkin aikaa sitten rakensin virtalähteen vanhasta ATX -virtalähteestä, ja vaikka se toimii hyvin, halusin tehostaa peliäni digitaalisella virtalähteellä. Kuten jo sanottu, se saa virtaa paristoista (tarkasti 2 litiumkennoa), ja se voi tuottaa enintään 20 V 1 A: n jännitteellä; mikä riittää useimpiin projekteihini, jotka vaativat tarkan virtalähteen.
Näytän koko suunnitteluprosessin, ja kaikki projektitiedostot löytyvät GitHub -sivultani:
Aloitetaan!
Vaihe 1: Ominaisuudet ja hinta
ominaisuudet
- Jatkuva jännite ja vakiovirta
- Käyttää hiljaista lineaarista säädintä, jota edeltää seurannan esisäädin tehonhukan minimoimiseksi
- Käytä käsiohjattavia komponentteja, jotta projekti on helposti saatavilla
- Powered by ATMEGA328P, ohjelmoitu Arduino IDE: llä
- Tietokoneyhteys Java -sovelluksen kautta mikro -USB: n kautta
- Toimii kahdella suojatulla 18650 litiumionikennolla
- 18 mm: n välein olevat banaanitulpat BNC -sovittimien kanssa
Tekniset tiedot
- 0-1A, 1 mA (10 bitin DAC)
- 0 - 20 V, 20 mV: n portaat (10 -bittinen DAC) (todellinen 0 V: n toiminta)
- Jännitteen mittaus: 20 mV resoluutio (10 bittiä ADC)
-
Nykyinen mittaus:
- <40mA: 10uA resoluutio (ina219)
- <80mA: 20uA resoluutio (ina219)
- <160mA: 40uA resoluutio (ina219)
- <320mA: 80uA resoluutio (ina219)
- > 320mA: 1mA resoluutio (10 -bittinen ADC)
Kustannus
Täydellinen virtalähde maksoi minulle noin 135 dollaria, kaikki kertaluonteiset komponentit. Akut ovat kallein osa (30 dollaria kahdelle kennolle), koska ne ovat suojattuja 18650 litium -kennoa. Akkuja ja latauspiirejä jättämättä hinta putoaa noin 100 dollariin. Vaikka tämä saattaa tuntua kalliilta, virtalähteet, joilla on paljon vähemmän suorituskykyä ja ominaisuuksia, maksavat usein enemmän kuin tämä.
Jos et halua tilata komponentteja ebaystä tai aliexpressistä, hinta paristoilla laskee 100 dollariin ja 70 dollariin ilman. Osien saapuminen kestää kauemmin, mutta se on toimiva vaihtoehto.
Vaihe 2: Kaavio ja toimintateoria
Jotta ymmärrämme piirin toiminnan, meidän on tarkasteltava kaaviota. Jaoin sen toiminnallisiin lohkoihin, jotta se olisi helpompi ymmärtää; Selitän siis myös toiminnan vaihe vaiheelta. Tämä osa on varsin syvällinen ja vaatii hyvää elektroniikkatietoa. Jos haluat vain tietää, miten piiri rakennetaan, voit siirtyä seuraavaan vaiheeseen.
Päälohko
Toiminta perustuu LT3080 -siruun: se on lineaarinen jännitesäädin, joka voi laskea jännitteitä ohjaussignaalin perusteella. Tämän ohjaussignaalin muodostaa mikro -ohjain; miten tämä tehdään, selitetään yksityiskohtaisesti myöhemmin.
Jännitteen asetus
LT3080: n ympärillä oleva piiri tuottaa sopivat ohjaussignaalit. Ensin katsomme, miten jännite asetetaan. Mikro -ohjaimen jänniteasetus on PWM -signaali (PWM_Vset), joka suodatetaan alipäästösuodattimella (C9 & R26). Tämä tuottaa analogisen jännitteen - 0 - 5 V - verrannollinen haluttuun lähtöjännitteeseen. Koska lähtöalue on 0 - 20 V, meidän on vahvistettava tämä signaali kertoimella 4. Tämä tapahtuu U3C: n ei -invertoivalla opamp -kokoonpanolla. Asetetun nastan vahvistuksen määrittävät R23 // R24 // R25 ja R34. Nämä vastukset kestävät 0,1% virheiden minimoimiseksi. R39: llä ja R36: lla ei ole väliä, koska ne ovat osa palautesilmukkaa.
Nykyinen asetus
Tätä nastatappia voidaan käyttää myös toiseen asetukseen: nykyinen tila. Haluamme mitata virrankulutuksen ja sammuttaa lähdön, kun se ylittää halutun virran. Siksi aloitamme uudelleen mikrokontrollerin generoimalla PWM -signaalilla (PWM_Iset), joka on nyt alipäästösuodatettu ja vaimennettu siirtymään 0 - 5 V: n alueelta 0 - 2 V: n alueelle. Tätä jännitettä verrataan nykyään opamp U3D: n vertailukonfiguraatioon nykyisen tunnistusvastuksen jännitehäviöön (ADC_Iout, katso alla). Jos virta on liian korkea, tämä sytyttää ledin ja vetää myös LT3080: n asetuslinjan maahan (Q2: n kautta), jolloin lähtö kytketään pois päältä. Virran mittaus ja signaalin ADC_Iout luominen tehdään seuraavasti. Lähtövirta kulkee vastuksen R7 - R16 läpi. Nämä yhteensä 1 ohmia; syy 1R: n käyttämättä jättämiseen on kaksinkertainen: yhdellä vastuksella olisi oltava suurempi teholuokka (sen on haihduttava vähintään 1 W), ja käyttämällä 10 1%: n vastuksia rinnakkain, saamme suuremman tarkkuuden kuin yhdellä 1 % vastuksella. Hyvä video siitä, miksi tämä toimii, löytyy täältä: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Kun virta kulkee näiden vastuksien läpi, se aiheuttaa jännitehäviön, jonka voimme mitata, ja se on sijoitettu LT3080: n eteen, koska sen yli tuleva jännitehäviö ei saisi vaikuttaa lähtöjännitteeseen. Jännitehäviö mitataan differentiaalivahvistimella (U3B), jonka vahvistus on 2. Tämä johtaa jännitealueeseen 0 - 2 V (lisää myöhemmin), joten jännitteenjakaja virran PWM -signaalissa. Puskuri (U3A) on olemassa varmistaakseen, että vastuksiin R21, R32 ja R33 virtaava virta ei mene nykyisen aistivastuksen läpi, mikä vaikuttaisi sen lukemiseen. Huomaa myös, että tämän pitäisi olla kisko-kisko-opamp, koska positiivisen tulon tulojännite on sama kuin syöttöjännite. Ei -invertoiva vahvistin on tarkoitettu vain kurssin mittaamiseen, mutta erittäin tarkkoja mittauksia varten meillä on INA219 -siru. Tämän sirun avulla voimme mitata hyvin pieniä virtauksia, ja sitä käsitellään I2C: n kautta.
Muita asioita
LT3080: n ulostulossa meillä on lisää tavaraa. Ensinnäkin on olemassa nykyinen pesuallas (LM334). Tämä ottaa vakion 677 uA: n virran (asettama vastuksella R41) LT3080: n vakauttamiseksi. Sitä ei kuitenkaan ole kytketty maahan, vaan VEE: hen, negatiivinen jännite. Tämä on tarpeen, jotta LT3080 voi toimia 0 V. Zener -diodia D3 käytetään puristamaan lähtöjännite, jos se ylittää 22 V, ja vastuksenjakaja laskee lähtöjännitealueen 0 - 20 V - 0 - 2 V (ADC_Vout). Valitettavasti nämä piirit ovat LT3080: n ulostulossa, mikä tarkoittaa, että niiden virta vaikuttaa ulostulovirtaan, jonka haluamme mitata. Onneksi nämä virrat ovat vakioita, jos jännite pysyy vakiona; jotta voimme kalibroida virran, kun kuorma irrotetaan ensin.
Lataa pumppu
Aiemmin mainitsemamme negatiivinen jännite syntyy uteliaasta pienestä piiristä: latauspumppu. Käytän sitä tässä: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Sitä syöttää 50% mikrokontrollerin (PWM) PWM
Boost -muunnin
Katsotaanpa nyt päälohkon tulojännitettä: Vboost. Näemme, että se on 8 - 24 V, mutta odota, kaksi litiumkennoa sarjassa antaa enintään 8,4 V? Todellakin, ja siksi meidän on lisättävä jännitettä niin kutsutulla tehomuuntimella. Voisimme aina nostaa jännitteen 24 V: iin riippumatta siitä, mitä lähtöä haluamme; tämä kuitenkin hukkaa paljon virtaa LT3080: ssa ja asiat kuumenevat paahteisesti! Joten sen sijaan, että teemme niin, nostamme jännitettä hieman enemmän kuin lähtöjännite. Noin 2,5 V korkeampi on sopiva, jotta voidaan ottaa huomioon jännitehäviö nykyisessä tunnistusvastuksessa ja LT3080: n katkaisujännite. Jännite asetetaan tehonmuuntimen lähtösignaalin vastuksilla. Tämän jännitteen muuttamiseksi lennossa käytämme digitaalista potentiometriä, MCP41010, jota ohjataan SPI: n kautta.
Akun lataus
Tämä johtaa meidät todelliseen tulojännitteeseen: paristoihin! Koska käytämme suojattuja soluja, meidän on yksinkertaisesti laitettava ne sarjaan ja olemme valmiita! On tärkeää käyttää suojattuja kennoja, jotta vältetään ylivirta tai ylivirtaus ja siten vaurioituminen. Käytämme jälleen jännitteenjakajaa akun jännitteen mittaamiseen ja pudottamiseen käyttöalueelle. Nyt mielenkiintoiseen osaan: latauspiiriin. Käytämme tähän tarkoitukseen BQ2057WSN -sirua: yhdessä TIP32CG: n kanssa se muodostaa itse asiassa lineaarisen teholähteen. Tämä siru lataa solut sopivan CV CC -radan kautta. Koska akuissani ei ole lämpötila -anturia, tämä tulo on sidottava puoleen akun jännitteestä. Tämä päättää tehonsyötön jännitteen säätöosan.
5V säädin
Arduino 5 V: n syöttöjännite on tehty tällä yksinkertaisella jännitesäätimellä. Se ei kuitenkaan ole tarkin 5 V: n lähtö, mutta tämä ratkaistaan alla.
2,048 V jänniteohje
Tämä pieni siru tarjoaa erittäin tarkan 2,048 V jänniteohjeen. Tätä käytetään viitteenä analogisille signaaleille ADC_Vout, ADC_Iout, ADC_Vbatt. Siksi tarvitsimme jännitteenjakajia saadaksemme nämä signaalit 2 V: een. Mikro -ohjain Tämän projektin aivot ovat ATMEGA328P, tämä on sama siru, jota käytetään Arduino Unossa. Kävimme jo useimmat ohjaussignaalit läpi, mutta mielenkiintoisia lisäyksiä on kuitenkin. Pyörivät anturit on liitetty arduinon kahteen ulkoiseen keskeytystappiin: PD2 ja PD3. Tätä tarvitaan luotettavan ohjelmistototeutuksen kannalta. Alla olevat kytkimet käyttävät sisäistä vetovoimaa. Sitten on tämä outo jännitteenjakaja potentiometrin (Pot) sirunvalintalinjalla. Jännitteenjakaja ulostulossa, mikä on hyväksi; saatat sanoa. Kuten aiemmin mainittiin, 5 V: n syöttö ei ole hirvittävän tarkka. Olisi siis hyvä mitata tämä tarkasti ja säätää PWM -signaalin toimintajaksoa vastaavasti. Mutta koska minulla ei ollut enää ilmaisia tuloja, minun piti tehdä kaksinkertainen tappi. Kun virtalähde käynnistyy, tämä nasta asetetaan ensin tuloksi: se mittaa syöttökiskon ja kalibroi itsensä. Seuraavaksi se asetetaan lähtöön ja se voi ajaa sirunvalintalinjaa.
Näytönohjain
Näytölle halusin yleisesti saatavilla olevan ja halvan hitachi -lcd -näytön. Niitä ohjaa 6 nastaa, mutta koska minulla ei ollut tappeja jäljellä, tarvitsin toisen ratkaisun. Vuororekisteri pelastukseen! 74HC595 sallii minun käyttää SPI -linjaa näytön ohjaamiseen, joten tarvitsen vain yhden ylimääräisen sirunvalintalinjan.
FTDI
Tämän tehonsyötön viimeinen osa on yhteys julmaan ulkomaailmaan. Tätä varten meidän on muutettava sarjasignaalit USB -signaaleiksi. Tämä tehdään FTDI -sirulla, joka on liitetty mikro -USB -porttiin liittämisen helpottamiseksi.
Ja siinä kaikki!
Vaihe 3: Piirilevy ja elektroniikka
Nyt kun ymmärrämme, miten piiri toimii, voimme aloittaa sen rakentamisen! Voit yksinkertaisesti tilata piirilevyn verkosta suosikkivalmistajalta (omani maksaa noin 10 dollaria), gerber -tiedostot löytyvät GitHubistani yhdessä materiaaliluettelon kanssa. Piirilevyn kokoaminen on silloin pohjimmiltaan kyse komponenttien juottamisesta paikalleen silkkipainon ja materiaaliluettelon mukaan.
Ensimmäinen askel on juottaa SMD -komponentit. Suurin osa niistä on helppo tehdä käsin, paitsi FTDI -sirulla ja mikro -USB -liittimellä. Siksi voit välttää näiden kahden komponentin juottamisen itse ja käyttää sen sijaan FTDI -katkaisukorttia. Annoin otsikkotapit, joihin tämä voidaan juottaa.
Kun SMD -työ on tehty, voit siirtyä kaikkiin reikäosiin. Nämä ovat hyvin yksinkertaisia. Pelimerkkejä varten kannattaa käyttää pistorasioita sen sijaan, että juottaisit ne suoraan levylle. On suositeltavaa käyttää ATMEGA328P: tä Arduino -käynnistyslataimen kanssa, muuten sinun on ladattava se käyttämällä ICSP -otsikkoa (tässä).
Ainoa osa, joka vaatii hieman enemmän huomiota, on lcd -näyttö, koska se on asennettava kulmaan. Juottaa siihen uroskulmaisia otsikoita siten, että muoviosa osoittaa näytön alareunaa kohti. Tämä mahdollistaa näytön hyvän sijoittamisen piirilevylle. Sen jälkeen se voidaan juottaa paikalleen aivan kuten kaikki muutkin reikäkomponentit.
Ainoa asia, joka on tehtävä, on lisätä 2 johtoa, jotka yhdistyvät etulevyn banaaniliittimiin.
Vaihe 4: Kotelo ja kokoonpano
Kun piirilevy on tehty, voimme siirtyä koteloon. Suunnittelin piirilevyn nimenomaan tämän hammondikotelon ympärille, joten toisen kotelon käyttöä ei suositella. Voit kuitenkin aina tulostaa 3D -kotelon, jonka mitat ovat samat.
Ensimmäinen vaihe on valmistella päätypaneeli. Meidän on porattava joitakin reikiä ruuveille, kytkimille jne. Tein tämän käsin, mutta jos sinulla on pääsy CNC: hen, se olisi tarkempi vaihtoehto. Tein reiät kaavion mukaan ja napautin ruuvinreikiä.
On hyvä lisätä silkkityynyjä nyt ja pitää ne paikallaan pienellä tipalla superliimaa. Nämä eristävät LT3080 ja TIP32 takalevystä samalla sallien lämmönsiirron. Älä unohda niitä! Kun ruuvaat siruja takapaneeliin, käytä kiillealuslevyä eristyksen varmistamiseksi!
Voimme nyt keskittyä etupaneeliin, joka vain liukuu paikalleen. Voimme nyt lisätä banaaniliittimet ja pyörivien anturien nupit.
Kun molemmat paneelit ovat paikallaan, voimme nyt asettaa kokoonpanon koteloon, lisätä paristot ja sulkea kaikki. Varmista, että käytät suojattuja paristoja, et halua kennojen räjähtävän!
Tässä vaiheessa laitteisto on valmis, nyt ei ole muuta kuin puhaltaa siihen elämää ohjelmiston avulla!
Vaihe 5: Arduino -koodi
Tämän projektin aivot ovat ATMEGA328P, jonka ohjelmoimme Arduino IDE: n kanssa. Tässä osassa käyn läpi koodin perustoiminnot, tiedot löytyvät kommenteista koodin sisällä.
Koodi perustuu periaatteessa seuraaviin vaiheisiin:
- Lue sarjatiedot javasta
- Äänestyspainikkeet
- Mittaa jännite
- Mittaa virta
- Mittaa virta INA219: llä
- Lähetä sarjatiedot javaan
- Määritä tehostinmuunnin
- Lataa akku
- Päivitä näyttö
Pyörivät kooderit käsitellään keskeytyshuoltorutiinilla, jotta ne olisivat mahdollisimman reagoivia.
Koodi voidaan nyt ladata levylle mikro -USB -portin kautta (jos sirussa on käynnistyslatain). Alusta: Arduino pro tai pro mini Ohjelmoija: AVR ISP / AVRISP MKII
Nyt voimme tarkastella Arduinon ja tietokoneen välistä vuorovaikutusta.
Vaihe 6: Java -koodi
Tietojen kirjaamista ja virtalähteen hallintaa varten PC: n kautta tein java -sovelluksen. Näin voimme hallita levyä helposti graafisen käyttöliittymän kautta. Kuten Arduino -koodin kanssa, en mene kaikkiin yksityiskohtiin, mutta annan yleiskatsauksen.
Aloitamme tekemällä ikkunan painikkeilla, tekstikentillä jne. peruskäyttöliittymä.
Nyt tulee hauska osa: USB -porttien lisääminen, johon käytin jSerialComm -kirjastoa. Kun portti on valittu, java kuuntelee saapuvia tietoja. Voimme myös lähettää tietoja laitteelle.
Lisäksi kaikki saapuvat tiedot tallennetaan csv -tiedostoon myöhempää tietojenkäsittelyä varten.
Kun ajamme.jar -tiedostoa, meidän on ensin valittava oikea portti avattavasta valikosta. Yhteyden muodostamisen jälkeen tietoja alkaa tulla, ja voimme lähettää asetuksemme virtalähteelle.
Vaikka ohjelma on melko yksinkertainen, voi olla erittäin hyödyllistä hallita sitä tietokoneen kautta ja kirjata sen tiedot.
Vaihe 7: Menestys
Kaiken tämän työn jälkeen meillä on nyt täysin toimiva virtalähde!
Minun on myös kiitettävä joitain ihmisiä tuesta:
- Projekti perustui EEVBLOGin uSupply -projektiin ja hänen Rev C: n kaavioon. Joten erityiset kiitokset David L. Jonesille kaavojensa julkaisemisesta avoimen lähdekoodin lisenssillä ja kaiken tiedon jakamisesta.
- Suuri kiitos Johan Pattynille tämän projektin prototyyppien tuottamisesta.
- Myös Cedric Busschots ja Hans Ingelberts ansaitsevat kiitoksen vianetsinnän avusta.
Nyt voimme nauttia omasta kotitekoisesta virtalähteestä, josta on hyötyä muiden mahtavien projektien parissa! Ja mikä tärkeintä: olemme oppineet monia asioita matkan varrella.
Jos pidit tästä projektista, äänestä minua PowerSupply -kilpailussa, olisin todella kiitollinen siitä! Https: //www.instructables.com/contest/powersupply/
Toinen palkinto virtalähdekilpailussa
Suositeltava:
Paristokäyttöinen vedenkerääjän tasoanturi: 7 vaihetta (kuvien kanssa)
Paristokäyttöinen vedenkeräimen pinnankorkeusanturi: Talossamme on vesisäiliö, joka syötetään katolle sateesta ja jota käytetään wc: hen, pesukoneeseen ja puutarhan kastelulaitteisiin. Kolmen viime vuoden aikana kesät olivat hyvin kuivia, joten seurasimme säiliön vedenpintaa. S
Vaihteleva USB -virtalähde: 7 vaihetta (kuvien kanssa)
Vaihtelevan jännitteen USB -virtalähde: Minulla on ollut jo jonkin aikaa idea USB -virtalähteestä. Kun suunnittelin sen, tein siitä hieman monipuolisemman, mikä mahdollistaa paitsi USB -tulon, myös kaiken 3 VDC: stä 8 VDC: hen USB -pistokkeen tai banaaniliittimien kautta. Tulos käyttää t
Paristokäyttöinen katto-ovi- ja lukitusanturi, aurinko, ESP8266, ESP-Now, MQTT: 4 vaihetta (kuvien kanssa)
Paristokäyttöinen suojakatto-ovi- ja lukitusanturi, aurinko, ESP8266, ESP-Now, MQTT: Tässä opastettavassa esittelen sinulle, kuinka tein paristokäyttöisen anturin, joka valvoo pyörävarastoni ovea ja lukituksen tilaa. Minulla on verkkovirta, joten minulla on paristo. Akku ladataan pienellä aurinkopaneelilla
Paristokäyttöinen ESP -malli: 3 vaihetta (kuvien kanssa)
Paristokäyttöinen ESP -muotoilu: Tässä ohjeessa näytetään, kuinka voit vähentää akun virrankulutusta kehittäessäsi langatonta ESP -pohjaista IoT -laitetta
USB -paristokäyttöinen langaton WiFi -laajennin: 7 vaihetta (kuvien kanssa)
USB -paristokäyttöinen langaton WiFi -laajennin: Kuinka ärsyttävää se ei ole, kun oleskelet hotellissa ja WiFi on vain huono. WiFi -laajennuksella voit parantaa olosuhteita, mutta näkemäni vaativat pistorasian, joka ei ole aina käytettävissä. Päätin rakentaa uudelleen edullisen