Taula de continguts:

Alimentació Bluetooth digital alimentada per USB C: 8 passos (amb imatges)
Alimentació Bluetooth digital alimentada per USB C: 8 passos (amb imatges)

Vídeo: Alimentació Bluetooth digital alimentada per USB C: 8 passos (amb imatges)

Vídeo: Alimentació Bluetooth digital alimentada per USB C: 8 passos (amb imatges)
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Desembre
Anonim
Alimentació Bluetooth digital alimentada per USB C
Alimentació Bluetooth digital alimentada per USB C
Alimentació digital Bluetooth amb alimentació USB C
Alimentació digital Bluetooth amb alimentació USB C
Alimentació Bluetooth digital alimentada per USB C
Alimentació Bluetooth digital alimentada per USB C
Alimentació Bluetooth digital alimentada per USB C
Alimentació Bluetooth digital alimentada per USB C

Alguna vegada heu desitjat un subministrament energètic que pugueu utilitzar en moviment, fins i tot sense una presa de corrent a prop? I no seria genial si també fos molt precís, digital i controlable mitjançant PC i telèfon?

En aquest instructiu us mostraré com construir exactament això: un subministrament de potència digital, alimentat per USB C. És compatible amb arduino i es pot controlar a través del PC mitjançant USB o mitjançant el vostre telèfon mitjançant Bluetooth.

Aquest projecte és una evolució del meu anterior subministrament de potència, que funcionava amb bateria i que tenia una pantalla i uns botons. Mireu-ho aquí! Tot i això, volia anar més petit, per això he fet això.

La font d'alimentació es pot alimentar des d'un banc de bateries USB C o un carregador de telèfon. Això permet fins a 15 W de potència, que és suficient per alimentar la majoria d’electrònics de baixa potència. Per tenir una bona interfície d’usuari en un dispositiu tan petit, he inclòs Bluetooth i una aplicació per a Android, cosa que fa que aquest subministrament de potència sigui molt portàtil.

Mostraré tot el procés de disseny i tots els fitxers del projecte es poden trobar a la meva pàgina de GitHub:

Comencem!

Pas 1: funcions i cost

Funcions i cost
Funcions i cost

Característiques

  • Alimentat per USB C.
  • Controlat mitjançant aplicació per Android mitjançant Bluetooth
  • Controlat mitjançant Java mitjançant USB C.
  • Modes de tensió constant i corrent constant
  • Utilitza un regulador lineal de baix soroll, precedit d’un preregulador de seguiment per minimitzar la dissipació d’energia
  • Desenvolupat per ATMEGA32U4, programat amb Arduino IDE
  • Es pot alimentar mitjançant un banc de bateries USB C perquè sigui portàtil
  • Detecció de carregador USB C i Apple
  • Endolls banana espaiats de 18 mm per compatibilitat amb adaptadors BNC

Especificacions

  • 0 - 1A, passos d'1 mA (DAC de 10 bits)
  • 0 - 25V, passos de 25 mV (10 bits DAC) (operació real de 0V)
  • Mesura de tensió: resolució de 25 mV (ADC de 10 bits)
  • Mesura actual: <40mA: resolució 10uA (ina219) <80mA: resolució 20uA (ina219) <160mA: resolució 40uA (ina219) <320mA: resolució 80uA (ina219)> 320mA: resolució 1mA (ADC de 10 bits)

Cost

El subministrament complet d’energia em va costar uns 100 dòlars, amb tots els components puntuals. Tot i que això pot semblar car, els subministraments d’alimentació amb un rendiment i funcions molt inferiors solen costar més que això. Si no us importa demanar els components a ebay o aliexpress, el preu baixaria a uns 70 dòlars. Les peces triguen a entrar, però és una opció viable.

Pas 2: Esquema i teoria de l'operació

Esquema i teoria de l'operació
Esquema i teoria de l'operació

Per entendre el funcionament del circuit, haurem de mirar l’esquema. El vaig dividir en blocs funcionals, de manera que sigui més fàcil d’entendre; D’aquesta manera, també explicaré el funcionament pas a pas: aquesta part és molt profunda i requereix un bon coneixement de l’electrònica. Si només voleu saber com construir el circuit, podeu passar al següent pas.

Bloc principal

L'operació es basa al voltant del xip LT3080: és un regulador de tensió lineal que pot reduir tensions basant-se en un senyal de control. Aquest senyal de control serà generat per un microcontrolador; més endavant s’explicarà detalladament com es fa això.

Configuració del voltatge

Els circuits al voltant del LT3080 generen els senyals de control adequats. En primer lloc, veurem com s'estableix el voltatge. La configuració de la tensió del microcontrolador és un senyal PWM (PWM_Vset), que es filtra mitjançant un filtre de pas baix (C23 i R32). Això produeix una tensió analògica - entre 0 i 5 V - proporcional a la tensió de sortida desitjada. Com que el nostre rang de sortida és de 0 a 25 V, haurem d'amplificar aquest senyal amb un factor de 5. Això es fa mitjançant la configuració opamp no inversora de U7C. El guany al pin fixat està determinat per R31 i R36. Aquestes resistències són tolerants al 0,1%, per minimitzar els errors. R39 i R41 no tenen importància aquí, ja que formen part del bucle de retroalimentació.

Configuració actual

Aquest pin fixat també es pot utilitzar per al segon paràmetre: mode actual. Volem mesurar la captació de corrent i desactivar la sortida quan aquesta supera el corrent desitjat. Per tant, tornem a començar per un senyal PWM (PWM_Iset), generat pel microcontrolador, que ara està filtrat i atenuat per passar de 0 a 5 V a 0 - 2,5 V. Ara es compara aquest voltatge amb la caiguda de tensió a través de la resistència de detecció de corrent (ADC_Iout, vegeu més avall) mitjançant la configuració del comparador d’opamp U1B. Si el corrent és massa alt, això engegarà un led i també estirarà la línia configurada del LT3080 a terra (mitjançant Q1), apagant així la sortida. La mesura del corrent i la generació del senyal ADC_Iout es fa de la següent manera. El corrent de sortida flueix a través de la resistència R22. Quan el corrent circula per aquesta resistència, crea una caiguda de tensió, que podem mesurar, i es col·loca abans de la LT3080, ja que la caiguda de tensió que hi ha a través no hauria d’influir en la tensió de sortida. La caiguda de tensió es mesura amb un amplificador diferencial (U7B) amb un guany de 5. Això dóna lloc a un rang de tensió de 0 a 2,5 V (més sobre això més endavant), d’aquí el divisor de tensió al senyal PWM del corrent. El buffer (U7A) hi és per assegurar-se que el corrent que flueix cap a les resistències R27, R34 i R35 no passa per la resistència de sentit actual, cosa que influiria en la lectura. Tingueu en compte també que hauria de ser una opamp de rail a rail, perquè la tensió d'entrada a l'entrada positiva és igual a la tensió d'alimentació. L’amplificador sense inversió és només per a la mesura del recorregut, tot i que, per a mesures molt precises, tenim el xip INA219 a bord. Aquest xip ens permet mesurar corrents molt petits i s’adreça mitjançant I2C.

Coses addicionals

A la sortida del LT3080, tenim algunes coses més. En primer lloc, hi ha una pica actual (LM334). Això treu un corrent constant de 677 uA (ajustat per la resistència R46), per estabilitzar el LT3080. No obstant això, no està connectat a terra, sinó a VEE, un voltatge negatiu. Això és necessari per permetre que el LT3080 funcioni fins a 0 V. Quan es connecta a terra, el voltatge més baix seria d’aproximadament 0,7 V. Això sembla prou baix, però tingueu en compte que això ens impedeix apagar completament l’alimentació. Malauradament, aquest circuit es troba a la sortida del LT3080, cosa que significa que el seu corrent contribuirà al corrent de sortida que volem mesurar. Afortunadament, és constant perquè puguem calibrar aquest corrent. El díode zener D7 s’utilitza per fixar la tensió de sortida si supera els 25 V i el divisor de resistències baixa el rang de tensió de sortida de 0 - 25 V a 0 - 2,5 V (ADC_Vout). El buffer (U7D) garanteix que les resistències no prenen corrent de la sortida.

Bomba de càrrega

El voltatge negatiu que hem esmentat anteriorment és generat per un petit circuit curiós: la bomba de càrrega. L’alimenta un 50% de PWM del microcontrolador (PWM).

Boost Converter

Vegem ara la tensió d’entrada del nostre bloc principal: VCC. Veiem que és de 5 a 27 V, però esperem, USB dóna un màxim de 5 V? De fet, i és per això que hem d’augmentar la tensió, amb l’anomenat convertidor d’augment. Sempre podríem augmentar la tensió a 27 V, independentment de la sortida que vulguem; no obstant això, això malgastaria molta energia a l'LT3080 i les coses es tornarien torrades. Per tant, en lloc de fer-ho, augmentarem el voltatge fins a una mica més que el voltatge de sortida. És adequat aproximadament 2,5 V més, per tenir en compte la caiguda de tensió de la resistència de sentit actual i la tensió de caiguda de la LT3080. El voltatge el defineixen les resistències del senyal de sortida del convertidor d’impulsió. Per canviar aquesta tensió sobre la marxa, fem servir un potenciòmetre digital, l’MCP41010, que es controla mitjançant SPI.

USB C

Això ens condueix al voltatge d’entrada real: el port USB. La raó per utilitzar USB C (USB tipus 3.1 per ser exactes, USB C és només el tipus de connector) és perquè permet un corrent de 3A a 5V, que ja té força potència. Però hi ha un problema, el dispositiu ha de complir per dibuixar aquest corrent i "negociar" amb el dispositiu amfitrió. A la pràctica, això es fa connectant dos resistors de desplaçament de 5,1 k (R12 i R13) a la línia CC1 i CC2. Per a la compatibilitat USB 2, la documentació és menys clara. En resum: dibuixeu el corrent que vulgueu, sempre que l’amfitrió el pugui proporcionar. Això es pot comprovar monitoritzant la tensió del bus USB: quan la tensió cau per sota de 4,25 V, el dispositiu consumeix massa corrent. Això és detectat pel comparador U1A i desactivarà la sortida. També envia un senyal al microcontrolador per establir la intensitat màxima. Com a bonificació, s’han afegit resistències per donar suport a la detecció de la identificació del carregador dels carregadors Apple i Samsung.

Regulador de 5V

La tensió d'alimentació de 5 V de l'arduino normalment prové directament de l'USB. Però com que el voltatge USB pot variar entre 4,5 i 5,5 V segons les especificacions USB, això no és prou precís. Per tant, s’utilitza un regulador de 5V, que pot generar 5V a partir de tensions cada vegada més altes. Tot i això, aquest voltatge no és molt precís, però això es resol mitjançant un pas de calibratge on el cicle de treball del senyal PWM s’ajusta en conseqüència. Aquesta tensió e es mesura mitjançant el divisor de tensió format per R42 i R43. Però com que no tenia més entrades gratuïtes, vaig haver de fer un pin de doble servei. Quan s’alimenta el subministrament de potència, aquest pin es configura per primera vegada com a entrada: mesura el carril d’alimentació i es calibra a si mateix. A continuació, es configura com a sortida i pot conduir la línia de selecció de xip del potenciòmetre.

Referència de tensió de 2,56 V

Aquest petit xip proporciona una referència de voltatge de 2,56 V molt precisa. S'utilitza com a referència per als senyals analògics ADC_Vout, ADC_Iout, ADC_Vbatt. Per això, necessitàvem divisors de tensió per reduir aquests senyals a 2,5 V.

FTDI

L’última part d’aquest poder és la connexió amb el món exterior i cruel. Per a això, hem de convertir els senyals de sèrie en senyals USB. Afortunadament, això ho fa l'ATMEGA32U4, aquest és el mateix xip que s'utilitza a l'Arduino Micro.

Bluetooth

La part Bluetooth és molt senzilla: s’afegeix un mòdul Bluetooth a la venda que s’encarrega de tot. Com que el seu nivell lògic és de 3,3 V (VS 5 V per al microcontrolador), s’utilitza un divisor de voltatge per canviar el senyal.

I això és tot el que hi ha!

Pas 3: PCB i electrònica

PCB i electrònica
PCB i electrònica
PCB i electrònica
PCB i electrònica
PCB i electrònica
PCB i electrònica

Ara que ja entenem com funciona el circuit, podem començar a construir-lo. Simplement podeu demanar el PCB en línia al vostre fabricant preferit (el meu cost al voltant de 10 dòlars), els fitxers gerber es poden trobar al meu GitHub, juntament amb la llista de materials. El muntatge del PCB és bàsicament qüestió de soldar els components al seu lloc segons la serigrafia i la quantitat de materials.

Tot i que el meu subministrament de potència anterior només tenia components de forat passant, la restricció de mida del meu nou ho va fer impossible. La majoria dels components encara són relativament fàcils de soldar, així que no tingueu por. Com a il·lustració: un amic meu que mai havia soldat abans va aconseguir omplir aquest dispositiu.

El més fàcil és fer els components a la part davantera primer, després a la part posterior i acabar amb els components del forat. En fer-ho, el PCB no oscil·larà en soldar els components més difícils. L’últim component que es soldarà és el mòdul Bluetooth.

Es poden soldar tots els components, excepte els 2 gats de plàtan, que muntarem al següent pas.

Pas 4: estoig i muntatge

Estoig i muntatge
Estoig i muntatge
Estoig i muntatge
Estoig i muntatge
Estoig i muntatge
Estoig i muntatge

Amb el PCB fabricat, podem passar a la funda. Vaig dissenyar específicament el PCB al voltant d’una funda d’alumini de 20x50x80mm (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), de manera que no es recomana utilitzar una altra funda. Tot i això, sempre podeu imprimir en 3D una funda amb les mateixes dimensions.

El primer pas és preparar el tauler final. Haurem de perforar alguns forats per als plàtans. Ho vaig fer a mà, però si teniu accés a un CNC, seria una opció més precisa. Introduïu els gats de plàtan en aquests forats i soldeu-los al PCB.

És una bona idea afegir ara uns coixinets de seda i mantenir-los al seu lloc amb una petita gota de súper cola. Permetran la transferència de calor entre el LT3080 i el LT1370 i la caixa. No els oblideu!

Ara ens podem centrar en el tauler frontal, que només es cargola al seu lloc. Amb els dos panells al seu lloc, ara podem inserir el conjunt a la caixa i tancar-lo tot. En aquest moment el maquinari ja està acabat, ara només queda bufar-hi una mica de vida amb el programari.

Pas 5: Codi Arduino

Codi Arduino
Codi Arduino

El cervell d’aquest projecte és l’ATMEGA32U4, que programarem amb l’IDE Arduino. En aquesta secció, examinaré el funcionament bàsic del codi, els detalls es poden trobar com a comentaris dins del codi.

El codi passa bàsicament per aquests passos:

  1. Envia dades a l'aplicació
  2. Llegiu les dades de l'aplicació
  3. Mesureu la tensió
  4. Mesura el corrent
  5. Botó d'enquesta

La sobrecorrent USB és gestionada per una rutina de servei d’interrupcions per tenir-la el màxim de sensible possible.

Abans que el xip es pugui programar per USB, s'hauria de gravar el carregador d'arrencada. Això es fa a través del port ISP / ICSP (les capçaleres masculines 3x2) mitjançant un programador ISP. Les opcions són AVRISPMK2, USBTINY ISP o un arduino com a ISP. Assegureu-vos que la placa rep alimentació i premeu el botó "gravar el carregador d'arrencada".

Ara es pot carregar el codi a la placa a través del port USB C (ja que el xip té un carregador d’arrencada). Tauler: micro programador Arduino: AVR ISP / AVRISP MKII Ara podem fer un cop d'ull a la interacció entre l'Arduino i el PC.

Pas 6: aplicació per a Android

Aplicació per a Android
Aplicació per a Android

Ara tenim un subministrament de potència totalment funcional, però encara no hi ha manera de controlar-lo. Molt molest. Per tant, crearem una aplicació per a Android per controlar l’alimentació mitjançant Bluetooth.

L'aplicació s'ha creat amb el programa d'inventors d'aplicacions MIT. S'inclouen tots els fitxers per clonar i modificar el projecte. Primer, descarregueu l’aplicació complementària MIT AI2 al vostre telèfon. A continuació, importeu el fitxer.aia al lloc web d'AI. Això també us permet descarregar l'aplicació al vostre propi telèfon triant "Crea> Aplicació (proporcioneu el codi QR per.apk)"

Per utilitzar l'aplicació, seleccioneu un dispositiu Bluetooth de la llista: es mostrarà com a mòdul HC-05. Quan estigueu connectat, es poden canviar tots els paràmetres i es pot llegir la sortida del subministrament de potència.

Pas 7: codi Java

Codi Java
Codi Java

Per registrar dades i controlar el subministrament de potència a través del PC, vaig fer una aplicació Java. Això ens permet controlar fàcilment la placa mitjançant una interfície gràfica d’usuari. Igual que amb el codi Arduino, no entraré en tots els detalls, però en faré una visió general.

Comencem fent una finestra amb botons, camps de text, etc. coses bàsiques de la GUI.

Ara ve la part divertida: afegir els ports USB, per al qual he utilitzat la biblioteca jSerialComm. Un cop seleccionat un port, Java escoltarà les dades entrants. També podem enviar dades al dispositiu.

A més, totes les dades entrants es guarden en un fitxer CSV, per a un tractament posterior de les dades.

En executar el fitxer.jar, primer hauríem de triar el port correcte del menú desplegable. Després de connectar-nos, les dades començaran a entrar i podrem enviar la nostra configuració al subministrament de potència.

Tot i que el programa és bastant bàsic, pot ser molt útil controlar-lo mitjançant un PC i registrar-ne les dades.

Pas 8:

Imatge
Imatge
Imatge
Imatge
Imatge
Imatge

Després de tot aquest treball, ara tenim un subministrament de potència totalment funcional.

Ara podem gaudir del nostre propi subministrament d’alimentació casolà, que ens serà útil mentre treballem en altres projectes fantàstics. I el més important: hem après moltes coses al llarg del camí.

Si us ha agradat aquest projecte, si us plau voteu-me al concurs de butxaca i microcontroladors, ho agrairia molt!

Recomanat: