Inhoudsopgave:

DIY Arduino batterijcapaciteitstester - V1.0 - Ajarnpa
DIY Arduino batterijcapaciteitstester - V1.0 - Ajarnpa

Video: DIY Arduino batterijcapaciteitstester - V1.0 - Ajarnpa

Video: DIY Arduino batterijcapaciteitstester - V1.0 - Ajarnpa
Video: DIY Battery Capacity Testing Robot | Part One (Arduino) 2024, November
Anonim
Image
Image
DIY Arduino batterijcapaciteitstester - V1.0
DIY Arduino batterijcapaciteitstester - V1.0

[Video afspelen] Ik heb zoveel oude laptopbatterijen (18650) geborgen om ze opnieuw te gebruiken in mijn zonne-energieprojecten. Het is erg moeilijk om de goede cellen in het batterijpakket te identificeren. Eerder in een van mijn Power Bank Instructables heb ik verteld hoe je goede cellen kunt identificeren door hun spanningen te meten, maar deze methode is helemaal niet betrouwbaar. Dus ik wilde echt een manier om de exacte capaciteit van elke cel te meten in plaats van hun spanningen.

Update op 30.10.2019

Je kunt mijn nieuwe versie zien

Een paar weken geleden ben ik het project vanaf de basis begonnen. Deze versie is heel eenvoudig, gebaseerd op de wet van Ohm. De nauwkeurigheid van de tester zal niet 100% perfect zijn, maar het geeft redelijke resultaten die kunnen worden gebruikt en vergeleken met andere batterijen, zodat je gemakkelijk goede cellen kunt herkennen in een oud batterijpakket. Tijdens mijn werk realiseerde ik me dat er veel dingen zijn die verbeterd kunnen worden. In de toekomst zal ik proberen die dingen te implementeren. Maar voorlopig ben ik er blij mee. Ik hoop dat deze kleine tester nuttig zal zijn, dus ik deel hem met jullie allemaal. Opmerking: gooi de slechte batterijen op de juiste manier weg. Disclaimer: Houd er rekening mee dat u met Li werkt. -Ionenbatterij die zeer explosief en gevaarlijk is. Ik kan niet verantwoordelijk worden gehouden voor enig verlies van eigendom, schade of verlies van mensenlevens als het erop aankomt. Deze tutorial is geschreven voor diegenen die kennis hebben van oplaadbare lithium-iontechnologie. Probeer dit niet als je een beginner bent. Blijf Veilig.

Stap 1: Benodigde onderdelen en gereedschappen:

Benodigde onderdelen: 1. Arduino Nano (Gear Best / Banggood)2. 0,96 OLED-scherm (Amazon / Banggood)3. MOSFET - IRLZ44 (Amazon)4. Weerstanden (4 x 10K, 1/4W) (Amazon / Banggood)5. Stroomweerstand (10R, 10W) (Amazon)6. Schroefklemmen (3 nrs) (Amazon / Banggood) 7. Zoemer (Amazon / Banggood) 8. Prototypebord (Amazon / Banggood) 9. 18650 batterijhouder (Amazon)

10. 18650-batterij (GearBest / Banggood)11. Afstandhouders (Amazon / Banggood) Benodigd gereedschap: 1. Draadknipper / Stripper (Gear Best) 2. Soldeerbout (Amazon / Banggood) Gebruikt instrument: IMAX Balance Charger (Gearbest / Banggood)

Infrarood thermometerpistool (Amazon / Gearbest)

Stap 2: Schematisch en werkend

Schematisch en werkend
Schematisch en werkend
Schematisch en werkend
Schematisch en werkend

Schematisch:

Om het schema gemakkelijk te begrijpen, heb ik het ook op een geperforeerd bord getekend. De posities van de componenten en bedrading zijn vergelijkbaar met mijn eigenlijke bord. De enige uitzonderingen zijn de zoemer en het OLED-display. In het eigenlijke bord zijn ze binnen, maar in het schema liggen ze buiten.

Het ontwerp is heel eenvoudig en is gebaseerd op Arduino Nano. Een OLED-display wordt gebruikt om de batterijparameters weer te geven. 3 schroefklemmen worden gebruikt voor het aansluiten van de batterij en de belastingsweerstand. Een zoemer wordt gebruikt voor het geven van verschillende waarschuwingen. Er wordt een circuit met twee spanningsdeler gebruikt om de spanningen over de belastingsweerstand te bewaken. De functie van de MOSFET is om de belastingsweerstand met de batterij te verbinden of los te koppelen.

Werkend:

Arduino controleert de staat van de batterij, als de batterij goed is, geeft u het commando om de MOSFET AAN te zetten. Het laat stroom door van de positieve pool van de batterij, door de weerstand, en de MOSFET voltooit vervolgens het pad terug naar de negatieve pool. Hierdoor wordt de batterij na verloop van tijd ontladen. Arduino meet de spanning over de belastingsweerstand en deelt deze vervolgens door de weerstand om de ontlaadstroom te bepalen. Vermenigvuldigd met de tijd om de milliampère-uur (capaciteit) waarde te verkrijgen.

Stap 3: Spannings-, stroom- en capaciteitsmeting

Spanningsmeting:

We moeten de spanning over de belastingsweerstand vinden. De spanningen worden gemeten met behulp van twee spanningsdelercircuits. Het bestaat uit twee weerstanden met elk een waarde van 10k. De uitgang van de verdeler is verbonden met Arduino analoge pin A0 en A1.

Arduino analoge pin kan spanning meten tot 5V, in ons geval is de maximale spanning 4,2V (volledig opgeladen). Dan vraag je je misschien af waarom ik onnodig twee verdelers gebruik. De reden is dat mijn toekomstplan is om dezelfde tester te gebruiken voor de multi-chemiebatterij. Dit ontwerp kan dus gemakkelijk worden aangepast om mijn doel te bereiken.

Huidige Meting:

Stroom (I) = Spanning (V) - Spanningsval over de MOSFET / Weerstand (R)

Opmerking: ik ga ervan uit dat de spanningsval over de MOSFET verwaarloosbaar is.

Hier, V = Spanning over de belastingsweerstand en R = 10 Ohm

Het verkregen resultaat is in ampère. Vermenigvuldig 1000 om het om te zetten in milliampère.

Dus maximale ontlaadstroom = 4,2 / 10 = 0,42A = 420mA

Capaciteitsmeting:

Opgeslagen lading (Q) = stroom (I) x tijd (T).

We hebben de stroom al berekend, de enige onbekende in de bovenstaande vergelijking is tijd. De millis()-functie in Arduino kan worden gebruikt om de verstreken tijd te meten.

Stap 4: Belastingsweerstand selecteren

Belastingsweerstand selecteren
Belastingsweerstand selecteren

De selectie van de belastingsweerstand hangt af van de hoeveelheid ontlaadstroom die we nodig hebben. Stel dat je de accu wilt ontladen @ 500mA, dan is de weerstandswaarde

Weerstand (R) = Max. Accuspanning / Ontlaadstroom = 4,2 /0,5 = 8,4 Ohm

De weerstand moet een beetje vermogen afvoeren, dus de grootte doet er in dit geval toe.

Warmteafvoer = I ^ 2 x R = 0,5 ^ 2 x 8,4 = 2,1 Watt

Door wat marge aan te houden kun je voor 5W kiezen. Als je meer veiligheid wilt, gebruik dan 10W.

Ik gebruikte 10 Ohm, 10W weerstand in plaats van 8,4 Ohm omdat het op dat moment in mijn voorraad was.

Stap 5: De MOSFET selecteren

De MOSFET. selecteren
De MOSFET. selecteren

Hier werkt MOSFET als een schakelaar. De digitale uitgang van de Arduino-pin D2 bestuurt de schakelaar. Wanneer een 5V (HOOG) signaal naar de poort van de MOSFET wordt gevoerd, kan er stroom van de positieve pool van de batterij door de weerstand gaan, en de MOSFET voltooit vervolgens het pad terug naar de negatieve pool. Hierdoor wordt de batterij na verloop van tijd ontladen. De MOSFET moet dus zo worden gekozen dat deze de maximale ontlaadstroom aankan zonder oververhitting.

Ik gebruikte een n-kanaals logisch niveau power MOSFET-IRLZ44. De L laat zien dat het een MOSFET op logisch niveau is. Een MOSFET op logisch niveau betekent dat deze is ontworpen om volledig in te schakelen vanaf het logische niveau van een microcontroller. De standaard MOSFET (IRF-serie enz.) is ontworpen om vanaf 10V te werken.

Als u een MOSFET uit de IRF-serie gebruikt, wordt deze niet volledig ingeschakeld door 5V van Arduino toe te passen. Ik bedoel, de MOSFET zal niet de nominale stroom dragen. Om op deze MOSFET's af te stemmen, heb je een extra circuit nodig om de poortspanning te verhogen.

Dus ik zal het gebruik van een MOSFET op logisch niveau aanbevelen, niet noodzakelijkerwijs IRLZ44. U kunt ook elke andere MOSFET gebruiken.

Stap 6: OLED-scherm

OLED-scherm
OLED-scherm

Om de batterijspanning, ontlaadstroom en capaciteit weer te geven, heb ik een 0,96 OLED-display gebruikt. Het heeft een resolutie van 128x64 en gebruikt de I2C-bus om met de Arduino te communiceren. Twee pinnen SCL (A5), SDA (A4) in Arduino Uno worden gebruikt voor communicatie.

Ik gebruik de U8glib-bibliotheek om de parameters weer te geven. Eerst moet u de U8glib-bibliotheek downloaden en vervolgens installeren.

Als u aan de slag wilt met OLED-display en Arduino, klik dan hier

De aansluitingen moeten als volgt zijn:

Arduino OLED

5V -Vcc

GND GND

A4-- SDA

A5-- SCL

Stap 7: Zoemer voor waarschuwing

Zoemer voor waarschuwing
Zoemer voor waarschuwing
Zoemer voor waarschuwing
Zoemer voor waarschuwing

Om verschillende waarschuwingen of waarschuwingen te geven, wordt een piëzo-zoemer gebruikt. De verschillende waarschuwingen zijn:

1. Lage batterijspanning

2. Batterij hoogspanning

3. Geen batterij

De zoemer heeft twee aansluitingen, de langere is positief en het kortere been is negatief. De sticker op de nieuwe zoemer heeft ook "+" gemarkeerd om de positieve pool aan te geven.

De aansluitingen moeten als volgt zijn:

Arduino-zoemer

D9 Positieve terminal

GND Negatieve terminal

In de Arduino Sketch heb ik een aparte functie piep() gebruikt die het PWM-signaal naar de zoemer stuurt, wacht op een kleine vertraging, vervolgens uitschakelt en dan nog een kleine vertraging heeft. Hij piept dus één keer.

Stap 8: Het circuit maken

Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken

In de vorige stappen heb ik de functie van elk van de componenten in het circuit uitgelegd. Voordat je springt om het laatste bord te maken, test je het circuit eerst op een breadboard. Als het circuit perfect werkt op het breadboard, ga dan om de componenten op het prototypebord te solderen.

Ik heb een prototypebord van 7 cm x 5 cm gebruikt.

De Nano monteren: knip eerst twee rijen vrouwelijke header-pins met elk 15 pinnen. Ik heb een diagonale tang gebruikt om de headers door te snijden. Soldeer vervolgens de header-pinnen. Zorg ervoor dat de afstand tussen de twee rails op de Arduino nano past.

OLED-display monteren: snijd een vrouwelijke kop met 4 pinnen. Soldeer het vervolgens zoals op de afbeelding.

Montage van de terminals en componenten: Soldeer de overige componenten zoals getoond in foto's

Bedrading: maak de bedrading volgens het schema. Ik heb gekleurde draden gebruikt om de bedrading te maken, zodat ik ze gemakkelijk kan identificeren.

Stap 9: De afstandhouders monteren

De afstandhouders monteren
De afstandhouders monteren
De afstandhouders monteren
De afstandhouders monteren
De afstandhouders monteren
De afstandhouders monteren

Monteer na het solderen en bedraden de afstandhouders op 4 hoeken. Het zorgt voor voldoende afstand tot de soldeerverbindingen en draden vanaf de grond.

Stap 10: Software

Software
Software
Software
Software

De software die de volgende taken uitvoert:

1. Meet spanningen

100 ADC-samples nemen, deze toevoegen en het resultaat berekenen. Dit wordt gedaan om de ruis te verminderen.

2. Controleer de staat van de batterij om een waarschuwing te geven of de ontlaadcyclus te starten

Waarschuwingen

i) Lage V!: Als de accuspanning lager is dan het laagste ontladingsniveau (2,9 V voor Li Ion)

ii) Hoge V!: Als de batterijspanning hoger is dan de volledig opgeladen toestand

iii) Geen batterij!: Als de batterijhouder leeg is

Ontladingscyclus:

Als de accuspanning binnen de lage spanning (2,9 V) en hoge spanning (4,3 V) ligt, start de ontlaadcyclus. Bereken de stroom en capaciteit zoals eerder uitgelegd.

3. Geef de parameters weer op de OLED

4. Datalogging op seriële monitor

Download de onderstaande Arduino-code.

Stap 11: Seriële gegevens exporteren en plotten op Excel-blad

Seriële gegevens exporteren en plotten op Excel-blad
Seriële gegevens exporteren en plotten op Excel-blad
Seriële gegevens exporteren en plotten op Excel-blad
Seriële gegevens exporteren en plotten op Excel-blad

Om het circuit te testen, heb ik eerst een goede Samsung 18650-batterij opgeladen met mijn IMAX-oplader. Plaats vervolgens de batterij in mijn nieuwe tester. Om het hele ontladingsproces te analyseren, exporteer ik de seriële gegevens naar een spreadsheet. Daarna heb ik de ontlaadcurve uitgezet. Het resultaat is echt geweldig. Ik gebruikte een software genaamd PLX-DAQ om het te doen. Je kunt het hier downloaden.

U kunt deze tutorial doornemen om te leren hoe u PLX-DAQ gebruikt. Het is erg makkelijk.

Opmerking: het werkt alleen in Windows.

Stap 12: Conclusie

Conclusie
Conclusie
Conclusie
Conclusie

Na een paar tests kom ik tot de conclusie dat het testerresultaat redelijk is. Het resultaat is 50 tot 70 mAh verwijderd van het resultaat van een batterijcapaciteitstester van een merk. Door een IR-temperatuurpistool te gebruiken, heb ik ook de temperatuurstijging in de belastingsweerstand gemeten, de maximale waarde is 51 graden C.

In dit ontwerp is de ontlaadstroom niet constant, deze hangt af van de batterijspanning. Dus de uitgezette ontlaadcurve is niet vergelijkbaar met de ontlaadcurve die wordt gegeven in het gegevensblad van de batterijfabricage. Het ondersteunt slechts een enkele Li-ionbatterij.

Dus in mijn toekomstige versie zal ik proberen de bovenstaande tekortkomingen in de V1.0 op te lossen.

Krediet: Ik wil Adam Welch bedanken, wiens project op YouTube me inspireerde om dit project te starten. Je kunt zijn YouTube-video bekijken.

Stel eventuele verbeteringen voor. Geef een opmerking als er fouten of fouten zijn.

Ik hoop dat mijn tutorial nuttig is. Als je het leuk vindt, vergeet dan niet te delen:)

Schrijf je in voor meer doe-het-zelf projecten. Bedankt.

Aanbevolen: