- Per què necessitem un comprovador de capacitat de la bateria?
- Components necessaris
- Esquema de circuits del provador de capacitat de la bateria Arduino
- Programa Arduino per mesurar la capacitat de la bateria
- Millores de precisió
- Construcció i prova del circuit
Amb l’aparició de la tecnologia, els nostres aparells i aparells electrònics són cada vegada més petits amb aplicacions més funcionals i complexes. Amb aquest augment de la complexitat, la potència necessària del circuit també ha augmentat i, en la nostra intenció de fer el dispositiu el més petit i portàtil possible, necessitem una bateria que pugui proporcionar un alt corrent durant un llarg període de temps i al mateix temps. temps, pesa molt menys perquè el dispositiu quedi portàtil. Si voleu obtenir més informació sobre les bateries, també podeu llegir aquest article sobre les terminologies bàsiques de la bateria.
D’entre molts tipus de bateries disponibles, les bateries de plom àcid, les bateries Ni-Cd i les bateries Ni-MH no són adequades, ja que pesen més o no poden proporcionar el corrent requerit per a la nostra aplicació, això ens deixa amb les bateries d’ió-liti que pot proporcionar un alt corrent mantenint el pes baix i compacte. Anteriorment, també hem construït un mòdul de reforç i carregador de bateria 18650 i un sistema de monitorització de bateria basat en IoT. Podeu consultar-los si us interessa.
Per què necessitem un comprovador de capacitat de la bateria?
Hi ha molts proveïdors de bateries al mercat que venen les versions econòmiques de bateries de ions de Li que reclamen especificacions estranyes amb un preu molt baix, que és massa bo per ser cert. Quan compreu aquestes cel·les, no funcionen gens o si ho fan, la capacitat de càrrega o el flux actual són tan baixes que no poden treballar amb l’aplicació. Llavors, com provar una bateria de liti si la cèl·lula no és un d’aquests knockoffs barats? Un dels mètodes consisteix a mesurar la tensió del circuit obert sense càrrega i càrrega, però això no és gens fiable.

Per tant, construirem un provador de capacitat de bateria 18650 per a una cèl·lula Li-Ion 18650 que descarregarà una cèl·lula 18650 completament carregada a través d’una resistència mentre es mesura el corrent que circula per la resistència per calcular-ne la capacitat. Si no obteniu la capacitat reclamada de la bateria mentre el voltatge de la cel·la es troba dins dels límits especificats, aquesta cel·la és defectuosa i no l’heu d’utilitzar, ja que l’estat de càrrega de la cel·la s’esgotarà a un ritme molt ràpid de càrrega, creant un bucle de corrent local si s’utilitza en una bateria que provoca escalfament i possiblement foc. Així que saltem-hi directament.
Components necessaris
- Arduino Nano
- LCD de 16 × 2 caràcters
- LM741 OPAMP IC
- Resistència de 2,2 Ω, 5 watts
- CI del regulador de tensió positiva 7805
- Font d'alimentació de 12V
- Potenciòmetre Trimmer 10kΩ
- Condensador de 0,47 uF
- Resistència de 33 kΩ
- Connector de presa de barril de corrent continu
- Terminals de cargol PCB
- IC Mosfet IRF540N de canal N
- Perfboard
- Kit de soldadura
- Dissipadors de calor

Esquema de circuits del provador de capacitat de la bateria Arduino
A continuació es mostra el diagrama complet del circuit per al comprovador de capacitat de la bateria 18650. L’explicació del circuit és la següent:

Unitat computacional i de visualització:
Aquest circuit es divideix en dues parts, la primera és una alimentació baixa de 5V per a la pantalla LCD alfanumèrica Arduino Nano i 16 × 2 i les seves connexions per mostrar els resultats de les mesures de corrent i tensió en temps real. El circuit s’alimenta de la font d’alimentació de 12V mitjançant SMPS o podeu utilitzar una bateria de 12V, a més de que el corrent màxim serà d’uns 60-70mA per alimentar la pantalla LCD i Arduino.

Per reduir el voltatge fins a 5 V, utilitzarem un regulador de tensió lineal que pot ocupar fins a 35 V i que necessiti almenys 7,5 V d’alimentació d’entrada per proporcionar un subministrament regulat de 5 V i l’excés de tensió es dissipa com a calor, per tant, si la vostra entrada El voltatge LM7805 del regulador de voltatge IC és superior a 12V; a continuació, considereu afegir un dissipador de calor perquè no es faci malbé. La pantalla LCD s’alimenta amb un subministrament de 5 V del 7805 i està connectada a Arduino i funciona en mode de 4 bits. També hem afegit un potenciòmetre d’eixugaparabrises de 10k Ω per controlar el contrast de la pantalla LCD.
Circuit de corrent de càrrega constant:
El segon és el circuit de càrrega de corrent constant basat en PWM per fer que el corrent de càrrega que flueix a través de la resistència sigui controlable per nosaltres i sigui constant, de manera que no hi hagi cap error a causa de la variació del corrent amb el temps a mesura que baixa la tensió de la cel·la. Consisteix en LM741 OPAMP IC i MOSFET de canal N IRF540N, que controla el corrent que circula pel MOSFET en activar i desactivar el MOSFET segons el nivell de tensió establert per nosaltres.

L’amplificador operatiu funciona en mode comparador,així en aquest mode. la sortida de l'amplificador operacional serà elevada sempre que el voltatge del pin no inversor de l'ampli operatiu sigui superior al pin inversor. De la mateixa manera, si el voltatge del pin d'inversió de l'ampli operatiu és superior al pin no inversor, la sortida de l'ampli operatiu es reduirà. En el circuit donat, el nivell de voltatge del pin que no s’inverteix està controlat pel pin D9 PWM de l’Arduino NANO, que commuta a una freqüència de 500Hz, que després es fa passar pel filtre de circuit RC de pas baix amb un valor de resistència de 33 kΩ i un condensador de 0,47. uF, per proporcionar un senyal de CC gairebé constant al pin que no inverteix. El pin d'inversió està connectat a la resistència de càrrega, que llegeix el voltatge a través de la resistència i el GND comú. El pin de sortida de l'OPAMP està connectat al terminal de la porta del MOSFET per activar-lo o apagar-lo.L'OPAMP intentarà que les tensions dels seus terminals siguin iguals canviant el MOSFET connectat de manera que el corrent que flueix a través de la resistència serà proporcional al valor PWM que heu establert al pin D9 del NANO. En aquest projecte, el corrent màxim, he limitat el meu circuit a és de 1,3A, cosa raonable, ja que la cel·la que tinc és de 10A com a valor nominal de corrent màxim
Mesura de la tensió:
El voltatge màxim d’una cèl·lula de Li-Ion totalment carregada és de 4,1 V a 4,3 V, que és inferior al límit de voltatge de 5 V dels pins d’entrada analògics de l’Arduino Nano, que té més de 10 kΩ de resistència interna perquè puguem connectar directament el Cel·leu a qualsevol dels pins d'entrada analògics sense preocupar-vos del corrent que els travessa. Per tant, en aquest projecte, hem de mesurar el voltatge de la cel·la per poder determinar si la cel·la es troba en el rang de funcionament correcte de la tensió i si està completament descarregada o no.
Hem de mesurar el corrent que flueix a través de la resistència, de manera que no podem utilitzar la derivació de corrent, ja que augmentarà la complexitat del circuit i augmentar la resistència en el recorregut de càrrega disminuirà la velocitat de descàrrega de la cèl·lula. L’ús de resistències de derivació més petites requerirà un circuit d’amplificació addicional per fer que la lectura de voltatge que en provingui sigui llegible per l’Arduino.
Així, llegim directament la tensió a través de la resistència de càrrega i, després, mitjançant la llei d’Ohm es divideix la tensió obtinguda pel valor de la resistència de càrrega per obtenir el corrent que hi circula. El terminal negatiu de la resistència està connectat directament al GND, de manera que podem suposar amb seguretat que la tensió que estem llegint a la resistència és la caiguda de tensió de la resistència.

Programa Arduino per mesurar la capacitat de la bateria
Després de finalitzar el circuit de maquinari, passem a la programació Arduino. Ara bé, si no teniu Arduino IDE instal·lat al vostre PC, què esteu fent aquí? Aneu al lloc web oficial d'Arduino i descarregueu i instal·leu l'IDE d'Arduino o també podeu codificar en qualsevol altre editor, però aquest és un tema per a un altre dia, de moment ens adherim a Arduino IDE. Ara estem fent servir Arduino Nano, així que assegureu-vos que heu seleccionat la placa Arduino Nano anant a TOOLS> BOARDS i seleccionant ARDUINO NANO allà, ara seleccioneu el processador correcte que tingueu el vostre nano anant a TOOLS> PROCESSORi mentre hi sigueu, també seleccioneu el port al qual està connectat Arduino al vostre PC. Estem utilitzant Arduino per conduir el LCD alfanumèric 16 × 2 connectat a ell i per mesurar el voltatge de la cel·la i el corrent que flueix a través de la resistència de càrrega, tal com s’explica a la secció anterior, iniciem el nostre codi declarant que els fitxers de capçalera condueixen 16 × 2 Pantalla LCD alfanumèrica. Podeu ometre aquesta secció per obtenir el codi completament cuinat i servit al final de la pàgina, però tingueu en compte mentre dividim el codi en petites seccions i intentem explicar-ho.
Ara que el fitxer de capçalera està definit, passem a la declaració de les variables, que utilitzarem al codi per calcular el voltatge i el corrent. A més, hem de definir els pins que estem utilitzant per accionar el LCD i els pins que farem servir per donar sortida PWM i llegir també les tensions analògiques provinents de la cel·la i la resistència en aquesta secció.
#incloure
Ara arribareu a la part de configuració: si voleu mantenir el vostre Arduino connectat al vostre PC tot el temps i supervisar el progrés mitjançant Serial Monitor i inicialitzar la pantalla LCD aquí. També mostrarà un missatge de benvinguda "Circuit de comprovació de la capacitat de la bateria" a la pantalla durant 3 segons.
configuració nul·la () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // Estableix el cursor a la primera columna i a la primera fila. lcd.print ("Capacitat de la bateria"); lcd.setCursor (0,1); lcd.print ("Circuit de prova"); retard (3000); lcd.clear (); }
Ara no cal que declarem el pin Arduino PWM com a sortida, ja que la funció AnalogWrite que farem servir al nostre bucle principal s’encarrega d’aquesta part. Cal definir el valor PWM que cal escriure en aquest pin del codi. Seleccioneu el valor PWM acuradament segons el corrent de descàrrega requerit a la vostra aplicació. Un excés de valor PWM donarà lloc a un alt corrent amb una caiguda de voltatge elevada a la cel·la Li-Ion i un valor PWM massa baix provocarà un temps de descàrrega elevat de la cel·la. A la funció de bucle principal, estarem llegint les tensions dels pins A0 i A1, ja que l’Arduino té un ADC de 10 bits a la placa, de manera que hauríem d’obtenir valors de sortida digital que oscil·len entre 0-1023, que haurem de redimensionar 0-5V multiplicant-lo per 5,0 / 1023,0. Assegureu-vos de mesurar correctament el voltatge entre els pins de 5V i GND de l’Arduino Nano mitjançant un voltímetre o un multímetre calibrats, ja que la majoria de les vegades la tensió regulada no és exactament de 5,0V i fins i tot una petita diferència en aquest voltatge de referència provocaria errors a les lectures de tensió, mesureu la tensió correcta i substituïu el valor 5.0 del multiplicador indicat anteriorment.
Ara, per explicar la lògica del codi, mesurem contínuament el voltatge de la cel·la i si la tensió de la cel·la supera el límit superior que especifiquem al codi, es mostrarà el missatge d'error a la pantalla LCD per fer-vos saber si la cel·la és sobrecarregat o hi ha alguna cosa malament a la connexió i l’alimentació del pin de la porta MOSFET s’atura de manera que no pugui circular cap corrent a través de la resistència de càrrega. És fonamental que carregueu completament la vostra cel·la abans de connectar-la a la placa de verificació de capacitat per poder calcular la seva capacitat de càrrega total.
analogWrite (MOSFET_Pin, PWM_VALUE); // llegiu l'entrada al pin analògic 0: int sensorValue_voltage_Cell = analogRead (A0); // Converteix la lectura analògica (que va de 0 - 1023) a una tensió (0 - 5V): tensió flotant = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("TENSIÓ:"); Serial.println (voltatge); // Aquí s’està imprimint el voltatge al monitor sèrie lcd.setCursor (0, 0); // Estableix el cursor a la primera columna i a la primera fila. lcd.print ("Voltatge:"); // Imprimiu la lectura del voltatge a la pantalla lcd.print (voltatge); retard (100); int sensorValue_Shunt_Resistor = analogRead (A1); tensió flotant1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); corrent flotant = voltatge1 / resistència; Serial.print ("Actual:"); Serial.println (actual); lcd.setCursor (0, 1);// Poseu el cursor a la primera columna i a la segona fila (el recompte comença a 0). lcd.print ("Actual:"); lcd.print (actual);
Ara, si la tensió de la cel·la es troba dins dels límits de tensió superior i inferior especificats per nosaltres, el Nano llegirà el valor actual pel mètode especificat anteriorment i el multiplicarà amb el temps transcorregut durant les mesures i l’emmagatzemarà a la variable de capacitat que hem definit anteriorment. en unitats mAh. Durant tot aquest temps, els valors de corrent i tensions en temps real es mostren a la pantalla LCD adjunta i, si voleu, també els podeu veure al monitor sèrie. El procés de descàrrega de la cel·la continuarà fins que el voltatge de la cel·la arribi per sota del límit inferior especificat per nosaltres al programa i, a continuació, es mostri la capacitat total de la cel·la a la pantalla LCD i es detingui el flux de corrent a través de la resistència tirant de la porta MOSFET pin baix.
else if (voltatge> BAT_LOW && volta <BAT_HIGH) {// Comproveu si la tensió de la bateria es troba dins del límit segur millisPassed = millis () - anteriorMillis; mA = actual * 1000,0; Capacity = Capacity + (mA * (millisPassed / 3600000.0)); // 1 hora = 3600000ms per convertir-lo en unitats mAh previousMillis = millis (); retard (1000); lcd.clear (); }
Millores de precisió
És, per descomptat, una manera prou bona de llegir el voltatge i el corrent, però no és perfecte. La relació entre la tensió real i la tensió ADC mesurada no és lineal i això comportarà algun error en les mesures de tensions i corrents.
Si voleu augmentar la precisió del resultat, haureu de traçar els valors ADC que obtingueu aplicant diverses fonts de tensió conegudes en un gràfic i, a continuació, determinar l’equació multiplicadora a partir d’aquest mitjançant el mètode que vulgueu. D’aquesta manera, es millorarà la precisió i s’acostarà molt als resultats reals.
A més, el MOSFET que hem utilitzat no és un MOSFET de nivell lògic, de manera que necessita més de 7V per activar completament el canal actual i, si hi apliquem 5V directament, les lectures actuals serien inexactes. Però podeu utilitzar un MOSFET de canal N IRL520N de nivell lògic per eliminar l’ús d’un subministrament de 12V i treballar directament amb els nivells lògics de 5V que teniu amb el vostre Arduino.
Construcció i prova del circuit

Ara, ja que vam dissenyar i provar diferents seccions del nostre circuit en una taula de treball i després d’assegurar-nos que totes funcionen tal i com s’utilitza, fem servir un Perfboard per soldar tots els components junts, ja que és un mètode molt més professional i fiable per provar el circuit.. Si voleu, podeu dissenyar el vostre propi PCB a AutoCAD Eagle, EasyEDA o Proteus ARES o qualsevol altre programari que vulgueu. L'Arduino Nano, la pantalla LCD alfanumèrica de 16 × 2 i el LM741 OPAMP estan muntats a Female Bergstik perquè puguin ser reutilitzats més tard.

He subministrat un subministrament de 12V mitjançant un connector DC Barrel Jack per al circuit de corrent de càrrega constant i, amb l'ajut de LM7805, es proporciona el 5V per a la pantalla Nano i LCD. Ara enceneu el circuit i ajusteu el pot de retallador per configurar el nivell de contrast de la pantalla LCD, ja hauríeu de veure el missatge de benvinguda a la pantalla LCD i, si el nivell de voltatge de la cel·la es troba dins del rang de treball, el corrent actual -La tensió i el corrent de la bateria s’hi mostraran.

Es tracta d’una prova molt bàsica per calcular la capacitat de la cel·la que utilitzeu i es pot millorar agafant les dades i emmagatzemant-les en un fitxer Excel per fer el processament i visualització de dades mitjançant mètodes gràfics. En el món actual basat en dades, aquesta corba de descàrrega de cèl·lules es pot utilitzar per construir models predictius precisos de la bateria per simular i veure la resposta de la bateria en condicions de càrrega sense proves reals mitjançant programari com NI LabVIEW, MATLAB Simulink, etc. i us esperen moltes més aplicacions. Podeu trobar el funcionament complet d’aquest projecte al vídeo següent. Si teniu cap pregunta sobre aquest projecte, escriviu-los a la secció de comentaris de sota o utilitzeu els nostres fòrums. Aneu a divertir-vos-hi i, si voleu, us podem guiar a la secció de comentaris a continuació sobre com seguir més endavant. Fins llavors Adios !!!
