Taula de continguts:
- Pas 1: funcions i cost
- Pas 2: Esquema i teoria de l'operació
- Pas 3: PCB i electrònica
- Pas 4: estoig i muntatge
- Pas 5: Codi Arduino
- Pas 6: codi Java
- Pas 7: èxit
Vídeo: Alimentació digital amb bateria: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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?
En aquest instructiu us mostraré com construir exactament això: un subministrament de potència digital que funciona amb bateria, que és compatible amb arduino i que es pot controlar a través del PC mitjançant USB.
Fa un temps vaig construir un subministrament de potència a partir d’una antiga alimentació ATX i, tot i que funciona molt bé, volia ampliar el meu joc amb un subministrament de potència digital. Com ja s’ha dit, s’alimenta amb bateries (amb precisió 2 cèl·lules de liti) i pot proporcionar un màxim de 20 V a 1 A; que és suficient per a la majoria dels meus projectes que requereixen un subministrament de potència precís.
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
Característiques
- 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
- Ús de components que es poden vendre a mà per mantenir el projecte accessible
- Desenvolupat per ATMEGA328P, programat amb Arduino IDE
- Comunicació per PC mitjançant aplicació Java mitjançant micro USB
- Alimentat per 2 cèl·lules de ions de liti protegides 18650
- Endolls banana espaiats de 18 mm per compatibilitat amb adaptadors BNC
Especificacions
- 0 - 1A, passos d'1 mA (DAC de 10 bits)
- 0 - 20V, passos de 20 mV (10 bits DAC) (operació real de 0V)
- Mesura de tensió: resolució de 20 mV (ADC de 10 bits)
-
Mesura actual:
- <40mA: resolució 10uA (ina219)
- Resolució <80mA: 20uA (ina219)
- <160mA: resolució 40uA (ina219)
- <320mA: resolució 80uA (ina219)
- > 320 mA: resolució 1 mA (ADC de 10 bits)
Cost
El subministrament complet d’energia em va costar uns 135 dòlars, amb tots els components puntuals. Les bateries són la part més cara (30 dòlars per a 2 cel·les), ja que són cèl·lules de liti protegides 18650. És possible reduir significativament el cost si no es necessita cap funcionament de la bateria. En ometre les bateries i els circuits de càrrega, el preu baixa a uns 100 dòlars. 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 de les bateries baixaria a 100 $ i 70 $ sense. Les peces triguen a entrar, però és una opció viable.
Pas 2: 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 (C9 i R26). 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 20 V, haurem d'amplificar aquest senyal amb un factor de 4. Això es fa mitjançant la configuració opamp no inversora d'U3C. El guany al pin fixat està determinat per R23 // R24 // R25 i R34. Aquestes resistències són tolerants al 0,1%, per minimitzar els errors. R39 i R36 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 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ó comparativa de l’opamp U3D. Si el corrent és massa alt, això engegarà un led i també estirarà la línia configurada del LT3080 a terra (mitjançant Q2), 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 les resistències R7 - R16. Aquests sumen 1 ohm; la raó per la qual no s’utilitza 1R en primer lloc és doble: 1 resistència hauria de tenir una potència nominal més elevada (ha de dissipar com a mínim 1 W) i, mitjançant l’ús d’un 10% de resistències en paral·lel, obtenim una precisió superior a amb una sola resistència de l’1%. Un bon vídeo sobre per què funciona això es pot trobar aquí: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Quan el corrent circula per aquestes resistències, crea una caiguda de voltatge que podem mesurar i és col·locat abans de la LT3080, ja que la caiguda de tensió a través no hauria d’influir en la tensió de sortida. La caiguda de tensió es mesura amb un amplificador diferencial (U3B) amb un guany de 2. Això dóna lloc a un rang de tensió de 0 a 2 V (més sobre això més endavant), d’aquí el divisor de tensió al senyal PWM del corrent. El buffer (U3A) hi és per assegurar-se que el corrent que flueix cap a les resistències R21, R32 i R33 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 R41), 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ó. El díode zener D3 s’utilitza per fixar la tensió de sortida si supera els 22 V i el divisor de resistències baixa el rang de tensió de sortida de 0 - 20 V a 0 - 2 V (ADC_Vout). Malauradament, aquests circuits es troben a la sortida del LT3080, la qual cosa significa que el seu corrent contribuirà al corrent de sortida que volem mesurar. Afortunadament, aquests corrents són constants si el voltatge es manté constant; de manera que podem calibrar el corrent quan la càrrega es desconnecta primer.
Bomba de càrrega
El voltatge negatiu que hem esmentat anteriorment és generat per un petit circuit curiós: la bomba de càrrega. Per al seu funcionament, em referiria a aquí: https://www.youtube.com/embed/1WAhTdWErrU&t=1s S'alimenta amb un 50% de PWM del microcontrolador (PWM)
Boost Converter
Vegem ara la tensió d’entrada del nostre bloc principal: Vboost. Veiem que és de 8 a 24 V, però esperem, 2 cèl·lules de liti en sèrie donen un màxim de 8,4 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 24 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.
Càrrega de la bateria
Això ens condueix al voltatge d’entrada real: les bateries. Com que fem servir cel·les protegides, simplement hem de posar-les en sèrie i ja hem acabat. Aquí és important utilitzar cèl·lules protegides, per evitar sobrecàrregues o sobrecàrregues i, per tant, danyar-les. De nou, fem servir un divisor de tensió per mesurar la tensió de la bateria i baixar-la fins a un rang útil. Passem ara a la part interessant: els circuits de càrrega. Utilitzem el xip BQ2057WSN per a aquest propòsit: en combinació amb el TIP32CG, constitueix bàsicament un subministrament lineal de potència. Aquest xip carrega les cel·les mitjançant una trajectòria CV CC adequada. Com que les meves bateries no tenen cap sonda de temperatura, aquesta entrada hauria d’estar lligada a la meitat del voltatge de la bateria. D’aquesta manera es conclou la part de regulació del voltatge de l’alimentació.
Regulador de 5V
La tensió d’alimentació de 5 V de l’arduino es fa amb aquest senzill regulador de tensió. No és la sortida de 5 V més precisa, però això es resoldrà a continuació.
Referència de tensió 2.048 V
Aquest petit xip proporciona una referència de voltatge de 2.048 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 V. Microcontrolador. El cervell d’aquest projecte és l’ATMEGA328P, aquest és el mateix xip que s’utilitza a l’Arduino Uno. Ja hem analitzat la majoria de senyals de control, però hi ha algunes addicions interessants. Els codificadors rotatius estan connectats als 2 únics pins d'interrupció externs de l'arduino: PD2 i PD3. Això és necessari per a una implementació de programari fiable. Els commutadors que hi ha a sota utilitzen una resistència de tracció interna. Després hi ha aquest estrany divisor de tensió a la línia de selecció de xip del potenciòmetre (Pot). Un divisor de tensió en una sortida, per a què serveix? es podria dir. Com s'ha esmentat anteriorment, el subministrament de 5 V no és terriblement precís. Per tant, seria bo mesurar-ho amb precisió i ajustar el cicle de treball del senyal PWM en conseqüència. 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 defineix com a sortida i pot conduir la línia de selecció de xips.
Controlador de pantalla
Per a la pantalla, volia una pantalla lcd hitachi d’ús general i econòmica. Estan impulsats per 6 pins, però com que no em quedaven pins, necessitava una altra solució. Un registre de torns al rescat. El 74HC595 em permet utilitzar la línia SPI per controlar la pantalla, per la qual cosa només necessito 1 línia de selecció de xip addicional.
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. Això es fa mitjançant un xip FTDI, que es connecta a un port micro USB per facilitar la connexió.
I això és tot el que hi ha!
Pas 3: 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.
El primer pas és soldar els components SMD. La majoria són fàcils de fer a mà, tret del xip FTDI i el connector micro USB. Per tant, podeu evitar soldar aquests 2 components vosaltres mateixos i utilitzar una placa de ruptura FTDI. He proporcionat pins de capçalera on es pot soldar.
Quan el treball SMD estigui acabat, podeu passar a tots els components dels forats. Són molt senzills. Per als xips, és possible que vulgueu utilitzar sòcols en lloc de soldar-los directament a la placa. És preferible utilitzar un ATMEGA328P amb el carregador d’arrencada Arduino; en cas contrari, haureu de carregar-lo mitjançant la capçalera ICSP (que es mostra aquí).
L'única part que necessita una mica més d'atenció és la pantalla LCD, ja que s'ha de muntar en un angle. Soldeu-hi unes capçaleres angulades masculines, amb la peça de plàstic cap a la part inferior de la pantalla. Això permetrà una bona col·locació de la pantalla al pcb. Després, es pot soldar al lloc igual que qualsevol altre component de forat.
L’únic que queda per fer és afegir 2 cables que es connectaran als terminals de plàtan de la placa frontal.
Pas 4: estoig i muntatge
Amb el PCB fabricat, podem passar a la funda. Vaig dissenyar específicament el PCB al voltant d’aquest estoig Hammond, de manera que no es recomana utilitzar un altre estoig. 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 a cargols, interruptors, etc. Ho vaig fer a mà, però si teniu accés a un CNC, seria una opció més precisa. He fet els forats d'acord amb l'esquema i he tapat els forats del cargol.
És una bona idea afegir ara uns coixinets de seda i mantenir-los al seu lloc amb una petita gota de súper cola. Aquests aïllaran el LT3080 i el TIP32 de la placa posterior, alhora que permetran la transferència de calor. No els oblideu! Quan cargoleu les estelles al panell posterior, utilitzeu una rentadora de mica per garantir l’aïllament.
Ara ens podem centrar en el tauler frontal, que només llisca al seu lloc. Ara podem afegir les preses de plàtan i els comandaments per als codificadors rotatius.
Amb els dos panells al seu lloc, ara podem inserir el conjunt a la caixa, afegir les bateries i tancar-ho tot. Assegureu-vos que utilitzeu bateries protegides, que no voleu que les cèl·lules exploten.
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
El cervell d’aquest projecte és l’ATMEGA328P, 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:
- Llegiu dades de sèrie de Java
- Botons d'enquesta
- Mesureu la tensió
- Mesura el corrent
- Mesureu el corrent amb INA219
- Envia dades de sèrie a Java
- Configureu boostconvertor
- Obteniu la càrrega de la bateria
- Pantalla d'actualització
Els codificadors rotatius són gestionats per una rutina de servei d’interrupcions per tenir-los el més sensibles possible.
Ara es pot penjar el codi a la placa a través del port micro USB (si el xip té un carregador d’arrencada). Tauler: Arduino pro o pro mini Programador: AVR ISP / AVRISP MKII
Ara podem fer un cop d'ull a la interacció entre l'Arduino i el PC.
Pas 6: 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 7: èxit
Després de tot aquest treball, ara tenim un subministrament de potència totalment funcional.
També he de donar les gràcies a algunes persones pel seu suport:
- El projecte es basava en el projecte uSupply d'EEVBLOG i el seu esquema Rev C. Un agraïment especial a David L. Jones per alliberar els seus esquemes amb una llicència de codi obert i compartir tot el seu coneixement.
- Un enorme agraïment a Johan Pattyn per la producció dels prototips d’aquest projecte.
- Cedric Busschots i Hans Ingelberts també mereixen crèdit per l’ajuda amb la resolució de problemes.
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, voteu-me al concurs de subministrament de potència, ho agrairia molt! Https: //www.instructables.com/contest/powersupply/
Accèssit al concurs de subministrament elèctric
Recomanat:
Una font d'alimentació de banc sleak de l'alimentació del PC: 8 passos (amb imatges)
Una font d’alimentació de banc sleak de l’alimentació de PC: actualització: el motiu pel qual no he hagut d’utilitzar una resistència per aturar l’apagament automàtic de la PSU és que (crec …) el led del commutador que he fet servir prou corrent per evitar Vaig necessitar una font d'alimentació de sobretaula i vaig decidir fer un
Font d'alimentació ATX encoberta a la font d'alimentació del banc: 7 passos (amb imatges)
Subministrament d’alimentació ATX encobert a la font d’alimentació de banc: és necessària una font d’alimentació de banc quan es treballa amb electrònica, però una font d’alimentació de laboratori disponible al mercat pot ser molt cara per a qualsevol principiant que vulgui explorar i aprendre electrònica. Però hi ha una alternativa barata i fiable. Per conve
De la barra d'alimentació al banc d'alimentació: 7 passos (amb imatges)
De Power Bar a Power Bank: aquest instructiu us mostra com transformar la meva barra d’alimentació preferida (Toblerone) en un banc d’alimentació. El meu consum de xocolata és enorme, per tant, sempre tinc paquets de barres de xocolata que m’inspiren a fer alguna cosa creatiu. Per tant, vaig acabar amb
Convertiu l’emissor FM Belkin d’alimentació de la bateria en alimentació del cotxe: 8 passos
Convertiu el transmissor FM Belkin de la bateria a la potència del cotxe: tinc un dels transmissors FM Belkin Tunecast originals per al meu iPod. Després d’alimentar-lo amb un parell de piles AA, vaig decidir que necessitava una manera millor. Així doncs, així és com he convertit un carregador de telèfon mòbil d’encenedor de cotxes en un mètode d’alimentació del meu tra
Elimineu l'alimentació en espera amb un interruptor d'alimentació d'escriptori: 7 passos (amb imatges)
Elimineu l'alimentació en espera amb un commutador d'alimentació d'escriptori: tots sabem que està passant. Fins i tot quan els vostres electrodomèstics (TV, ordinador, altaveus, discs durs externs, monitors, etc.) estan apagats " APAGAT " encara estan activats, en mode d'espera, perden energia. Alguns televisors de plasma utilitzen més energia a