Talaan ng mga Nilalaman:

Digital USB C Powered Bluetooth Powersupply: 8 Hakbang (na may Mga Larawan)
Digital USB C Powered Bluetooth Powersupply: 8 Hakbang (na may Mga Larawan)

Video: Digital USB C Powered Bluetooth Powersupply: 8 Hakbang (na may Mga Larawan)

Video: Digital USB C Powered Bluetooth Powersupply: 8 Hakbang (na may Mga Larawan)
Video: How to Make a USB Tester ? 2024, Nobyembre
Anonim
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply
Ang Digital USB C Powered Bluetooth Powersupply

Nais mo ba ang isang powerupply na maaari mong gamitin on the go, kahit na walang malapit na outlet ng pader? At hindi ba ito magiging cool kung ito ay napaka tumpak din, digital, at makokontrol sa pamamagitan ng PC at iyong telepono?

Sa itinuturo na ito ay ipapakita ko sa iyo kung paano bumuo nang eksakto na: isang digital powerupply, na pinalakas sa USB C. Ito ay tugma sa arduino at maaaring makontrol sa pamamagitan ng PC sa USB o sa pamamagitan ng iyong telepono sa pamamagitan ng Bluetooth.

Ang proyektong ito ay isang ebolusyon ng aking nakaraang powerupply, na pinapatakbo ng baterya at may isang display at knobs. Suriin ito dito! Gayunpaman, nais kong pumunta mas maliit, kaya't bakit ko ito nagawa!

Ang Powerupply ay maaaring pinalakas mula sa isang USB C baterya bank o charger ng telepono. Pinapayagan nito ang hanggang sa 15W ng lakas, na kung saan ay sapat upang mapagana ang pinaka-mababang electronics na kapangyarihan! Upang magkaroon ng isang mahusay na UI sa isang maliit na aparato, isinama ko ang Bluetooth at isang Android app para sa mga kontrol. Ginagawa nitong ang powerupply na ultra portable!

Ipapakita ko ang buong proseso ng disenyo, at ang lahat ng mga file ng proyekto ay matatagpuan sa aking pahina sa GitHub:

Magsimula na tayo!

Hakbang 1: Mga Tampok at Gastos

Mga Tampok at Gastos
Mga Tampok at Gastos

Mga Tampok

  • Pinapagana ng USB C
  • Kinokontrol sa pamamagitan ng Android app sa pamamagitan ng Bluetooth
  • Kinokontrol sa pamamagitan ng Java sa USB C
  • Patuloy na boltahe at pare-pareho ang kasalukuyang mga mode
  • Gumagamit ng isang mababang linear linear regulator, na nauna sa pamamagitan ng isang pagsubaybay sa preregulator upang i-minimize ang pagwawaldas ng kuryente
  • Pinapagana ng ATMEGA32U4, na-program sa Arduino IDE
  • Maaaring mapagana ng isang USB C na bangko ng baterya upang gawin itong portable
  • Ang pagtuklas ng USB C at Apple charger
  • 18 mm spaced banana plugs para sa pagiging tugma sa mga adaptor ng BNC

Mga pagtutukoy

  • 0 - 1A, mga hakbang ng 1 mA (10 bit DAC)
  • 0 - 25V, mga hakbang ng 25 mV (10 bit DAC) (totoong operasyon ng 0V)
  • Pagsukat ng boltahe: resolusyon ng 25 mV (10 bit ADC)
  • Kasalukuyang pagsukat: <40mA: 10uA resolusyon (ina219) <80mA: 20uA resolusyon (ina219) <160mA: 40uA resolusyon (ina219) <320mA: 80uA resolusyon (ina219)> 320mA: 1mA resolusyon (10 bit ADC)

Gastos

Ang kumpletong powerupply ay nagkakahalaga sa akin ng halos $ 100, kasama ang lahat ng mga sangkap na one-off. Bagaman mukhang mahal ito, ang mga powerupplies na may mas kaunting pagganap at mga tampok ay madalas na nagkakahalaga kaysa dito. Kung hindi mo alintana ang pag-order ng iyong mga bahagi mula sa ebay o aliexpress, ang presyo ay mahuhulog sa humigit-kumulang na $ 70. Mas matagal ito para sa mga bahagi na pumasok, ngunit ito ay isang praktikal na pagpipilian.

Hakbang 2: Skematika at Teorya ng Pagpapatakbo

Skema at Teorya ng Pagpapatakbo
Skema at Teorya ng Pagpapatakbo

Upang maunawaan ang pagpapatakbo ng circuit, titingnan natin ang eskematiko. Hinati ko ito sa mga bloke ng pag-andar, tulad ng mas madaling maunawaan ito; Ipapaliwanag ko rin ang hakbang-hakbang sa operasyon. Ang bahaging ito ay lubos na malalim at nangangailangan ng isang mahusay na kaalaman sa electronics. Kung nais mo lamang malaman kung paano bumuo ng circuit, maaari kang lumaktaw sa susunod na hakbang.

Pangunahing bloke

Ang operasyon ay batay sa paligid ng LT3080 chip: ito ay isang linear voltage regulator, na maaaring bumaba ng mga voltages, batay sa isang control signal. Ang signal ng kontrol na ito ay bubuo ng isang microcontroller; kung paano ito tapos, ipapaliwanag nang detalyado sa paglaon.

Setting ng boltahe

Ang circuitry sa paligid ng LT3080 ay bumubuo ng naaangkop na mga signal ng kontrol. Una, titingnan namin kung paano itinakda ang boltahe. Ang setting ng boltahe mula sa microcontroller ay isang PWM signal (PWM_Vset), na na-filter ng isang lowpass filter (C23 & R32). Gumagawa ito ng isang analog boltahe - sa pagitan ng 0 at 5 V - proporsyonal sa nais na boltahe ng output. Dahil ang aming saklaw ng output ay 0 - 25 V, kailangan naming palakasin ang signal na ito na may salik na 5. Ginagawa ito ng hindi pag-invert ng opamp na pagsasaayos ng U7C. Ang nakuha sa itinakdang pin ay natutukoy ng R31 at R36. Ang mga resistors na ito ay 0.1% mapagparaya, upang i-minimize ang mga error. Hindi mahalaga ang R39 at R41 dito, dahil bahagi sila ng loop ng feedback.

Kasalukuyang setting

Ang set na pin na ito ay maaari ding gamitin para sa pangalawang setting: kasalukuyang mode. Nais naming sukatin ang kasalukuyang gumuhit, at patayin ang output kapag lumampas ito sa nais na kasalukuyang. Samakatuwid, nagsisimula kaming muli sa pamamagitan ng isang signal ng PWM (PWM_Iset), na nabuo ng microcontroller, na ngayon ay lowpass na na-filter at na-atenuated upang pumunta mula sa isang saklaw na 0 - 5 V sa isang saklaw na 0 - 2.5 V. Ang boltahe na ito ay inihambing na ngayon sa pagbaba ng boltahe sa kasalukuyang sense resistor (ADC_Iout, tingnan sa ibaba) ng kumpare ng pagsasaayos ng opamp U1B. Kung ang kasalukuyang masyadong mataas, ito ay magpapasara sa isang humantong, at hilahin din ang itinakdang linya ng LT3080 sa lupa (sa pamamagitan ng Q1), sa gayon ay patayin ang output. Ang pagsukat ng kasalukuyang, at ang pagbuo ng signal ADC_Iout ay tapos na tulad ng sumusunod. Ang kasalukuyang output ay dumadaloy sa pamamagitan ng risistor R22. Kapag ang kasalukuyang dumadaloy sa pamamagitan ng risistor na ito, lumilikha ito ng isang drop ng boltahe, na maaari naming masukat, at inilalagay ito bago ang LT3080, dahil ang pagbagsak ng boltahe sa kabuuan nito ay hindi dapat maka-impluwensya sa output boltahe. Ang boltahe na drop ay sinusukat sa isang kaugalian na amplifier (U7B) na may nakuha na 5. Nagreresulta ito sa isang saklaw ng boltahe na 0 - 2.5 V (higit pa sa paglaon), samakatuwid ang boltahe na divider sa PWM signal ng kasalukuyang. Ang buffer (U7A) ay nariyan upang matiyak na ang kasalukuyang dumadaloy sa resistors na R27, R34 at R35 ay hindi dumadaan sa kasalukuyang resistor ng pakiramdam, na makakaimpluwensya sa pagbabasa. Tandaan din na ito ay dapat na isang rail-to-rail opamp, dahil ang input boltahe sa positibong input ay katumbas ng boltahe ng suplay. Ang non inverting amplifier ay para lamang sa pagsukat ng kurso kahit na, para sa napaka tumpak na mga sukat, mayroon kaming INA219 chip sa board. Pinapayagan kami ng chip na ito na sukatin ang napakaliit na mga alon, at ito ay napupunta sa pamamagitan ng I2C.

Karagdagang mga bagay

Sa output ng LT3080, mayroon kaming maraming mga bagay-bagay. Una sa lahat, mayroong isang kasalukuyang lababo (LM334). Gumuhit ito ng isang pare-pareho na kasalukuyang 677 uA (itinakda ng risistor R46), upang patatagin ang LT3080. Gayunpaman hindi ito konektado sa lupa, ngunit sa VEE, isang negatibong boltahe. Kinakailangan ito upang payagan ang LT3080 na gumana pababa sa 0 V. Kapag nakakonekta sa lupa, ang pinakamababang boltahe ay tungkol sa 0.7 V. Ito ay tila sapat na mababa, ngunit tandaan na pinipigilan tayo mula sa pag-on nang ganap ng mga powerupply. Sa kasamaang palad, ang circuit na ito ay nasa output ng LT3080, na nangangahulugang ang kasalukuyang nito ay mag-aambag sa kasalukuyang output na nais naming sukatin. Sa kasamaang palad, ito ay pare-pareho upang makakapag-calibrate kami para sa kasalukuyang ito. Ang zener diode D7 ay ginagamit upang i-clamp ang output boltahe kung umakyat ito sa itaas ng 25 V, at ang resistor divider ay bumaba sa hanay ng boltahe ng output mula 0 - 25 V hanggang 0 - 2.5 V (ADC_Vout). Tinitiyak ng buffer (U7D) na ang resistors ay hindi gumuhit ng kasalukuyang mula sa output.

Charge pump

Ang negatibong boltahe na nabanggit namin dati ay nabuo ng isang mausisa na maliit na circuit: ang singil na bomba. Pinakain ito ng isang 50% PWM ng microcontroller (PWM).

Palakasin ang Converter

Tingnan natin ngayon ang input boltahe ng aming pangunahing bloke: VCC. Nakita namin na ito ay 5 - 27V, ngunit maghintay, ang USB ay nagbibigay ng isang maximum na 5 V? Sa katunayan, at iyon ang dahilan kung bakit kailangan nating mapalakas ang boltahe, na may tinatawag na boost converter. Palagi naming mapapalakas ang boltahe sa 27 V, hindi mahalaga kung anong output ang gusto natin; gayunpaman, mag-aaksaya ito ng maraming kapangyarihan sa LT3080 at ang mga bagay ay magiging masarap! Kaya sa halip na gawin iyon, papalakasin natin ang boltahe sa medyo higit pa sa output boltahe. Halos 2.5 V mas mataas ang naaangkop, upang maibenta ang boltahe na bumaba sa kasalukuyang risistor ng kahulugan at ang boltahe ng dropout ng LT3080. Ang boltahe ay itinakda ng mga resistors sa output signal ng boost converter. Upang baguhin ang boltahe na ito sa mabilisang, gumagamit kami ng isang digital potentiometer, ang MCP41010, na kinokontrol sa pamamagitan ng SPI.

USB C

Humahantong ito sa amin sa tunay na boltahe ng pag-input: ang USB port! Ang dahilan para sa paggamit ng USB C (uri ng USB 3.1 upang maging tumpak, ang USB C ay ang uri lamang ng konektor) ay dahil pinapayagan nito ang isang kasalukuyang 3A sa 5V, medyo may lakas na iyon. Ngunit may isang catch, kailangang sumunod ang aparato upang iguhit ang kasalukuyang ito at 'makipag-ayos' sa host device. Sa pagsasagawa, ginagawa ito sa pamamagitan ng pagkonekta ng dalawang 5.1k pulldown resistors (R12 at R13) sa linya ng CC1 at CC2. Para sa pagkakatugma sa USB 2, ang dokumentasyon ay hindi gaanong malinaw. Sa madaling sabi: gumuhit ka ng anumang kasalukuyang nais mo, basta maibigay ito ng host. Maaari itong suriin sa pamamagitan ng pagsubaybay sa boltahe ng USB bus: isa ang boltahe ay bumaba sa ilalim ng 4.25V, ang aparato ay nakakakuha ng sobrang kasalukuyang. Nakita ito ng kumpare na U1A at hindi pagaganahin ang output. Nagpapadala din ito ng isang senyas sa microcontroller upang maitakda ang maximum na kasalukuyang. Bilang isang bonus, idinagdag ang mga resistor upang suportahan ang pagtuklas ng charger ID ng mga charger ng mansanas at samsung.

5V regulator

Ang boltahe ng 5 V supply ng arduino ay karaniwang nagmumula nang direkta mula sa USB. Ngunit dahil ang boltahe ng USB ay maaaring mag-iba sa pagitan ng 4.5 at 5.5 V ayon sa USB spec, hindi ito sapat na tumpak. Samakatuwid, ginagamit ang isang 5V regulator, na maaaring makabuo ng 5V mula sa mas mababa at mas mataas na mga boltahe. Gayunpaman, ang boltahe na ito ay hindi katakut-takot na tumpak, ngunit nalulutas ito ng isang hakbang sa pagkakalibrate kung saan ang siklo ng tungkulin ng PWM signal ay nababagay nang naaayon. Ang boltahe na ito ay sinusukat ng voltage divider na nabuo ng R42 at R43. Ngunit dahil wala na akong mga libreng input, kailangan kong gumawa ng isang pin na pull pull na tungkulin. Kapag ang boots ng powerupply, ang pin na ito ay unang itinakda bilang isang input: sinusukat nito ang supply rail at ini-calibrate mismo. Susunod, itinakda ito bilang isang output at maaari nitong himukin ang pipiliin na linya ng potensyomiter.

2.56 V boltahe sanggunian

Ang maliit na maliit na tilad na ito ay nagbibigay ng isang tumpak na sanggunian ng 2.56 V boltahe. Ginagamit ito bilang isang sanggunian para sa mga analog signal na ADC_Vout, ADC_Iout, ADC_Vbatt. Iyon ang dahilan kung bakit kailangan namin ng mga divider ng boltahe upang maibaba ang mga signal na ito sa 2.5 V.

FTDI

Ang huling bahagi ng powerupply na ito ay ang koneksyon sa malupit, sa labas ng mundo. Para sa mga ito, kailangan naming i-convert ang mga serial signal sa mga USB signal. Sa kasamaang palad, ginagawa ito ng ATMEGA32U4, ito ang parehong chip na ginamit sa Arduino Micro.

Bluetooth

Ang bahagi ng Bluetooth ay napaka-simple: isang off-the-shelf na module ng Bluetooth ay idinagdag at inaalagaan ang lahat para sa amin. Dahil ang antas ng lohika ay 3.3V (VS 5V para sa microcontroller) ginagamit ang isang divider ng boltahe upang i-level ang signal.

At iyon lang ang mayroon dito!

Hakbang 3: PCB & Electronics

PCB at Elektronikon
PCB at Elektronikon
PCB at Elektronikon
PCB at Elektronikon
PCB at Electronics
PCB at Electronics

Ngayon na naiintindihan namin kung paano gumagana ang circuit, maaari na nating simulan ang pagbuo nito! Maaari mo lamang orderin ang PCB online mula sa iyong paboritong tagagawa (ang gastos sa akin ay humigit-kumulang na $ 10), ang mga gerber file ay matatagpuan sa aking GitHub, kasama ang singil ng mga materyales. Ang pagtitipon ng PCB ay karaniwang isang bagay ng paghihinang ng mga sangkap sa lugar ayon sa silkscreen at bayarin ng mga materyales.

Habang ang aking nakaraang kapangyarihan ay mayroon lamang mga bahagi ng butas, ang pagpipigil sa laki para sa aking bago ay naging imposible ito. Karamihan sa mga bahagi ay medyo madali pa ring maghinang, kaya huwag matakot. Bilang isang paglalarawan: isang kaibigan ko na hindi pa naghinang bago pinamamahalaang i-populate ang aparatong ito!

Ito ay pinakamadaling gawin muna ang mga bahagi sa harap na bahagi, pagkatapos ay ang likod at tapusin na may mga bahagi ng butas. Kapag ginagawa ito, ang PCB ay hindi gumagalaw kapag hinihinang ang pinakamahirap na mga bahagi. Ang huling sangkap na dapat na solder ay ang Bluetooth module.

Ang lahat ng mga bahagi ay maaaring solder, maliban sa 2 banana jacks, na mai-mount namin sa susunod na hakbang!

Hakbang 4: Kaso at Assembly

Kaso at Assembly
Kaso at Assembly
Kaso at Assembly
Kaso at Assembly
Kaso at Assembly
Kaso at Assembly

Sa paggawa ng pcb, maaari tayong magpatuloy sa kaso. Partikular kong dinisenyo ang PCB sa paligid ng isang kaso ng aluminyo 20x50x80mm (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), kaya't hindi inirerekumenda ang paggamit ng ibang kaso. Gayunpaman, maaari mong palaging 3D na mai-print ang isang kaso na may parehong sukat.

Ang unang hakbang ay upang ihanda ang end-panel. Kakailanganin nating mag-drill ng ilang mga butas para sa mga banana jacks. Ginawa ko ito sa pamamagitan ng kamay, ngunit kung may access ka sa isang CNC na magiging isang mas tumpak na pagpipilian. Ipasok ang mga banana jack sa mga butas na ito at ihihinang ito sa PCB.

Mahusay na ideya na magdagdag ng ilang mga pad ng sutla ngayon, at hawakan ang mga ito sa lugar na may isang maliit na patak ng sobrang pandikit. Papayagan nito ang paglipat ng init sa pagitan ng LT3080 at LT1370 at ng kaso. Huwag kalimutan ang mga ito!

Maaari na tayong magtuon sa harap ng panel, na mga tornilyo lamang sa lugar. Sa parehong mga panel sa lugar maaari na nating ipasok ang pagpupulong sa kaso at isara ang lahat. Sa puntong ito ang hardware ay tapos na, ngayon ang natitira lamang ay ang pumutok dito ng software kasama ang software!

Hakbang 5: Arduino Code

Code ng Arduino
Code ng Arduino

Ang utak ng proyektong ito ay ang ATMEGA32U4, na aming ipoprogram sa Arduino IDE. Sa seksyong ito, dadaan ako sa pangunahing pagpapatakbo ng code, ang mga detalye ay matatagpuan bilang mga komento sa loob ng code.

Karaniwang naglo-loop ang code sa pamamagitan ng mga hakbang na ito:

  1. Magpadala ng data sa app
  2. Basahin ang data mula sa app
  3. Sukatin ang boltahe
  4. Sukatin ang kasalukuyang
  5. Poll button

Ang overcurrent ng USB ay pinangangasiwaan ng isang nakakagambala na gawain sa serbisyo upang magkaroon ito bilang tumutugon hangga't maaari.

Bago maprograma ang maliit na tilad sa USB, dapat na sunugin ang bootloader. Ginagawa ito sa pamamagitan ng port ng ISP / ICSP (ang 3x2 male header) sa pamamagitan ng isang ISP programmer. Ang mga pagpipilian ay ang AVRISPMK2, USBTINY ISP o isang arduino bilang ISP. Tiyaking makakatanggap ang lupon ng lakas at pindutin ang pindutang 'burn bootloader'.

Maaari nang mai-upload ang code sa board sa pamamagitan ng USB C port (dahil ang chip ay may bootloader). Lupon: Arduino Micro Programmer: AVR ISP / AVRISP MKII Ngayon ay maaari nating tingnan ang pakikipag-ugnayan sa pagitan ng Arduino at ng PC.

Hakbang 6: Android App

Android App
Android App

Mayroon na kaming isang ganap na functional powerupply, ngunit wala pang paraan upang makontrol ito. Sobrang nakakainis. Gumagawa kami ng isang Android app upang makontrol ang powerupply sa pamamagitan ng Bluetooth.

Ang app ay ginawa sa programa ng imbentor ng MIT app. Ang lahat ng mga file ay maaaring isama upang i-clone at baguhin ang proyekto. Una, i-download ang kasamang app ng MIT AI2 sa iyong telepono. Susunod, i-import ang.aia file sa AI website. Pinapayagan ka ring i-download ang app sa iyong sariling telepono sa pamamagitan ng pagpili ng "Build> App (magbigay ng QR code para sa.apk)"

Upang magamit ang app, pumili ng isang aparatong Bluetooth mula sa listahan: lalabas ito bilang module na HC-05. Kapag nakakonekta, ang lahat ng mga setting ay maaaring mabago at ang output ng powerupply ay maaaring mabasa.

Hakbang 7: Java Code

Java Code
Java Code

Para sa pag-log ng data at pagkontrol sa powerupply sa pamamagitan ng PC, gumawa ako ng isang java application. Pinapayagan kaming madali naming makontrol ang board sa pamamagitan ng isang GUI. Tulad ng sa Arduino code, hindi ko ididagdag ang lahat ng mga detalye, ngunit magbigay ng isang pangkalahatang ideya.

Nagsisimula kami sa pamamagitan ng paggawa ng isang window na may mga pindutan, textfield atbp; pangunahing bagay sa GUI.

Dumarating ang kasiya-siyang bahagi: pagdaragdag ng mga USB port, kung saan ginamit ko ang jSerialComm library. Kapag napili ang isang port, makikinig ang java para sa anumang papasok na data. Maaari rin kaming magpadala ng data sa aparato.

Bukod dito, ang lahat ng papasok na data ay nai-save sa isang csv file, para sa paggamot sa data sa paglaon.

Kapag pinapatakbo ang.jar file, dapat muna nating piliin ang tamang port mula sa dropdown menu. Pagkatapos ng pagkonekta ng data ay magsisimulang pumasok, at maaari naming ipadala ang aming mga setting sa powerupply.

Habang ang programa ay medyo batayan, maaari itong maging napaka kapaki-pakinabang upang makontrol ito sa pamamagitan ng isang PC at i-log ang data nito.

Hakbang 8:

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Matapos ang lahat ng gawaing ito, mayroon na kaming isang ganap na nagagamit na powerupply!

Masisiyahan na kami sa aming sariling homeuppuply na ginawa, na darating sa madaling gamiting habang nagtatrabaho sa iba pang mga kahanga-hangang proyekto! At pinakamahalaga: natutunan namin ang maraming mga bagay sa daan.

Kung nagustuhan mo ang proyektong ito, mangyaring bumoto para sa akin sa paligsahan ng bulsa at microcontroller, talagang pahalagahan ko ito!

Inirerekumendang: