Inhoudsopgave:

DIY Arduino batterijcapaciteitstester - V2.0 - Ajarnpa
DIY Arduino batterijcapaciteitstester - V2.0 - Ajarnpa

Video: DIY Arduino batterijcapaciteitstester - V2.0 - Ajarnpa

Video: DIY Arduino batterijcapaciteitstester - V2.0 - Ajarnpa
Video: DIY Capacitor tester 2024, Juli-
Anonim
Image
Image

Tegenwoordig zijn er overal nep-Lithium- en NiMH-batterijen die via advertenties worden verkocht met een hogere capaciteit dan hun werkelijke capaciteit. Het is dus echt moeilijk om onderscheid te maken tussen een echte en een nepbatterij. Evenzo is het moeilijk om de capaciteit te kennen die wordt behouden in de geborgen 18650-laptopbatterijen. Er is dus een apparaat nodig om de werkelijke capaciteit van de batterijen te meten.

In het jaar 2016 heb ik een Instructable geschreven over "Arduino Capacity Tester - V1.0", wat een zeer ongecompliceerd en eenvoudig apparaat was. De eerdere versie was gebaseerd op de wet van Ohm. De te testen batterij wordt ontladen via een vaste weerstand, stroom- en tijdsduur wordt gemeten door Arduino en de capaciteit wordt berekend door beide meetwaarden (Ontlaadstroom en tijd) te vermenigvuldigen.

Het nadeel van de eerdere versie was dat tijdens het testen, naarmate de batterijspanning afneemt, ook de stroom afneemt, wat de berekeningen complex en onnauwkeurig maakt. Om dit te verhelpen heb ik de V2.0 zo gemaakt dat de stroom tijdens het ontlaadproces constant blijft. Ik heb dit apparaat gemaakt door het originele ontwerp van MyVanitar te inspireren

De belangrijkste kenmerken van Capaciteitstester V2.0 zijn:

1. Geschikt voor het meten van de capaciteit van AA / AAA NiMh / NiCd, 18650 Li-ion, Li-Polymer en Li FePO4-batterij. Het is geschikt voor bijna elk type batterij met een vermogen van minder dan 5V.

2. Gebruikers kunnen de ontlaadstroom instellen met behulp van de drukknoppen.

3. OLED-gebruikersinterface

4. Het apparaat kan worden gebruikt als elektronische belasting

Update op 02.12.2019

Nu kunt u de PCB en componenten samen in een kit bestellen bij PCBWay

Disclaimer: Houd er rekening mee dat u werkt met een Li-Ion-batterij 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 degenen die kennis hebben van oplaadbare lithium-iontechnologie. Probeer dit alsjeblieft niet als je een beginner bent. Blijf Veilig.

Benodigdheden

Gebruikte componenten

Bestel nu PCB en alle componenten om dit project te bouwen in een kit van PCBWay

1. PCB: PCBWay

2. Arduino Nano: Amazon / Banggood

3. Opamp LM358: Amazon / Banggood

4. 0,96-inch OLED-scherm: Amazon / Banggood

5. Keramische weerstand: Amazon / Banggood

6. Condensator 100nF: Amazon / Banggood

7. Condensator 220uF: Amazon / Banggood

8. Weerstanden 4.7K & 1M: Amazon / Banggood

9. Drukknop: Amazon / Banggood

10. Dop met drukknoppen: Aliexpress

11. Schroefaansluiting: Amazon / Banggood

12. Prototypebord: Amazon / Banggood

13. PCB-afstand: Amazon / Banggood

14. Krimpkous: Amazon / Banggood

15. Koellichaam: Aliexpress

Gebruikte gereedschappen

1. Soldeerbout: Amazon / Banggood

2. Stroomtang: Amazon / Banggood

3. Multimeter: Amazon / Banggood

4. Heteluchtblazer: Amazon / Banggood

5. Draadknipper: Amazon / Banggood

6. Draadstripper: Amazon / Banggood

Stap 1: Schematisch diagram

Schematisch diagram
Schematisch diagram

Het hele schema is onderverdeeld in de volgende secties:

1. Voedingscircuit

2. Constant stroombelastingscircuit

3. Accuspanningsmeetcircuit

4. Gebruikersinterfacecircuit

5. Zoemercircuit

1. Voedingscircuit

Het voedingscircuit bestaat uit een DC Jack (7-9V) en twee filtercondensatoren C1 en C2. Het uitgangsvermogen (Vin) is verbonden met de Arduino-pin Vin. Hier gebruik ik de Arduino-boordspanningsregelaar om de spanning naar 5V te verlagen.

2. Constant stroombelastingscircuit

De kerncomponent van het circuit is Op-amp LM358 die twee operationele versterkers bevat. Het PWM-signaal van de Arduino-pin D10 wordt gefilterd door een laagdoorlaatfilter (R2 en C6) en toegevoerd aan de tweede operationele versterker. De uitgang van de tweede op-amp is verbonden met de eerste op-amp in een spanningsvolgerconfiguratie. De voeding naar LM358 wordt gefilterd door een ontkoppelcondensator C5.

De eerste op-amp, R1 en Q1 bouwen een circuit met constante stroombelasting. Dus nu kunnen we de stroom door de belastingsweerstand (R1) regelen door de PWM-signaalpulsbreedte te wijzigen.

3. Accuspanningsmeetcircuit

De batterijspanning wordt gemeten door de Arduino analoge ingang pin A0. Twee condensatoren C3 en C4 worden gebruikt om de ruis weg te filteren die afkomstig is van het constante stroombelastingscircuit dat de ADC-conversieprestaties kan verslechteren.

4. Gebruikersinterfacecircuit

Het gebruikersinterfacecircuit bestaat uit twee drukknoppen en een 0,96 I2C OLED-display. De omhoog- en omlaag-drukknop is om de PWM-pulsbreedte te vergroten of te verkleinen. R3 en R4 zijn pull-up-weerstanden voor de omhoog- en omlaagdruk -knoppen C7 en C8 worden gebruikt om de drukknoppen te debouncen. De derde drukknop (RST) wordt gebruikt voor het resetten van de Arduino.

5. Zoemercircuit

Het zoemercircuit wordt gebruikt om het begin en het einde van de test te waarschuwen. Een 5V zoemer is aangesloten op Arduino digitale pin D9.

Stap 2: Hoe werkt het?

Hoe werkt het?
Hoe werkt het?
Hoe werkt het?
Hoe werkt het?
Hoe werkt het?
Hoe werkt het?

De theorie is gebaseerd op de spanningsvergelijking van de inverterende (pin-2) en de niet-inverterende (pin-3) ingangen van de OpAmp, geconfigureerd als een eenheidsversterker. Wanneer u de spanning instelt die wordt toegepast op de niet-inverterende ingang door het PWM-signaal aan te passen, opent de uitgang van de opamp de poort van MOSFET. Als de MOSFET wordt ingeschakeld, loopt de stroom door R1, waardoor een spanningsval ontstaat, die negatieve feedback geeft aan OpAmp. Het bestuurt de MOSFET zodanig dat de spanningen op de inverterende en niet-inverterende ingangen gelijk zijn. De stroom door de belastingsweerstand is dus evenredig met de spanning op de niet-inverterende ingang van de OpAmp.

Het PWM-signaal van de Arduino wordt gefilterd met behulp van een laagdoorlaatfiltercircuit (R2 en C1). Om het PWM-signaal en de prestaties van het filtercircuit te testen, heb ik mijn DSO ch-1 aangesloten op de ingang en ch-2 op de uitgang van het filtercircuit. De uitgangsgolfvorm is hierboven weergegeven.

Stap 3: Capaciteitsmeting

Capaciteitsmeting
Capaciteitsmeting

Hier wordt de batterij ontladen tot zijn lage drempelspanning (3,2 V).

Batterijcapaciteit (mAh) = stroom (I) in mA x tijd (T) in uren

Uit de bovenstaande vergelijking is het duidelijk dat om de batterijcapaciteit (mAh) te berekenen, we de stroom in mA en de tijd in uur moeten weten. Het ontworpen circuit is een constant stroombelastingscircuit, dus de ontlaadstroom blijft constant gedurende de testperiode.

De ontlaadstroom kan worden aangepast door op de knop Omhoog en Omlaag te drukken. De tijdsduur wordt gemeten met behulp van een timer in de Arduino-code.

Stap 4: 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 verder om de componenten op het prototypebord te solderen.

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

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

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

Montage van de klemmen en componenten: Soldeer de overige componenten zoals op de 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 5: OLED-scherm

OLED-scherm
OLED-scherm
OLED-scherm
OLED-scherm

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

Ik gebruik de Adafruit_SSD1306-bibliotheek om de parameters weer te geven.

Eerst moet je de Adafruit_SSD1306 downloaden. Heb het toen geinstalleerd.

De aansluitingen moeten als volgt zijn:

Arduino OLED

5V -VCC

GND GND

A4-- SDA

A5-- SCL

Stap 6: Zoemer voor waarschuwing

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

Om waarschuwingen te geven tijdens de start en competitie van de test, wordt een piëzozoemer gebruikt. De zoemer heeft twee aansluitingen, de langere is positief en het kortere been is negatief. De sticker op de nieuwe zoemer heeft ook " + " om de positieve pool aan te geven.

Omdat het prototypebord niet genoeg ruimte heeft om de zoemer te plaatsen, heb ik de zoemer met twee draden op de hoofdprintplaat aangesloten. Om de kale verbinding te isoleren, heb ik krimpkous gebruikt.

De aansluitingen moeten als volgt zijn:

Arduino-zoemer

D9 Positieve terminal

GND Negatieve terminal

Stap 7: 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 8: PCB-ontwerp

PCB-ontwerp
PCB-ontwerp

Ik heb het schema getekend met behulp van EasyEDA online software, daarna ben ik overgestapt op de PCB-layout.

Alle componenten die u in het schema hebt toegevoegd, moeten daar zijn, op elkaar gestapeld, klaar om te worden geplaatst en gerouteerd. Sleep de componenten door ze aan de pads vast te pakken. Plaats het vervolgens binnen de rechthoekige grenslijn.

Rangschik alle componenten zo dat het bord een minimum aan ruimte inneemt. Hoe kleiner het bord, hoe goedkoper de fabricagekosten van de PCB. Het is handig als dit bord enkele montagegaten heeft, zodat het in een behuizing kan worden gemonteerd.

Nu moet je routen. Routing is het leukste deel van dit hele proces. Het is als het oplossen van een puzzel! Met behulp van de trackingtool moeten we alle componenten met elkaar verbinden. U kunt zowel de bovenste als de onderste laag gebruiken om overlapping tussen twee verschillende sporen te vermijden en de sporen korter te maken.

U kunt de laag Zijde gebruiken om tekst aan het bord toe te voegen. We kunnen ook een afbeeldingsbestand invoegen, dus ik voeg een afbeelding van het logo van mijn website toe om op het bord te worden afgedrukt. Uiteindelijk moeten we met behulp van het koperen gebiedsgereedschap het grondoppervlak van de PCB creëren.

Je kunt het bestellen bij PCBWay.

Meld u nu aan bij PCBWay om een coupon van US $ 5 te krijgen. Dat betekent dat uw eerste bestelling gratis is, alleen betaalt u de verzendkosten.

Wanneer u een bestelling plaatst, krijg ik 10% donatie van PCBWay voor een bijdrage aan mijn werk. Uw kleine hulp kan me aanmoedigen om in de toekomst meer geweldig werk te doen. Bedankt voor je medewerking.

Stap 9: Monteer de printplaat

Monteer de printplaat
Monteer de printplaat
Monteer de printplaat
Monteer de printplaat

Voor het solderen heb je een degelijke soldeerbout, soldeer, tang en een multimeter nodig. Het is een goede gewoonte om de componenten te solderen op basis van hun hoogte. Soldeer eerst de onderdelen met een lagere hoogte.

U kunt de volgende stappen volgen om de componenten te solderen:

1. Duw de poten van de component door de gaten en draai de printplaat op zijn achterkant.

2. Houd de punt van de soldeerbout tegen de kruising van de pad en de poot van het onderdeel.

3. Voer soldeer in de verbinding zodat het rondom de leiding stroomt en de pad bedekt. Zodra het helemaal rond is gestroomd, verplaatst u de punt weg.

Stap 10: Software en bibliotheken

Software en bibliotheken
Software en bibliotheken
Software en bibliotheken
Software en bibliotheken
Software en bibliotheken
Software en bibliotheken
Software en bibliotheken
Software en bibliotheken

Download eerst de bijgevoegde Arduino-code. Download vervolgens de volgende bibliotheken en installeer ze.

Bibliotheken:

Download en installeer de volgende bibliotheken:

1. JC_Button:

2. Adafruit_SSD1306:

In de code moet je de volgende twee dingen veranderen.

1. Current Arrays-waarden: Dit kan worden gedaan door een multimeter in serie met de batterij aan te sluiten. Druk op de omhoog-knop en meet de stroom, de huidige waarden zijn de elementen van de array.

2. Vcc: je gebruikt een multimeter om de spanning op de Arduino 5V-pin te meten. In mijn geval is dat 4.96V.

Bijgewerkt op 20.11.2019

U kunt de Low_BAT_Level-waarde in de code wijzigen volgens de batterijchemie. Het is beter om een kleine marge te nemen over de hieronder vermelde uitschakelspanning.

Hier zijn de ontlaadsnelheden en afsnijspanningen voor verschillende lithium-ionbatterijen:

1. Lithiumkobaltoxide: afsnijspanning = 2,5V bij 1C ontladingssnelheid

2. Lithium-mangaanoxide: afsnijspanning = 2,5 V bij ontladingssnelheid van 1 ° C

3. Lithium-ijzerfosfaat: afsnijspanning = 2,5 V bij een ontladingssnelheid van 1 ° C

4. Lithiumtitanaat: Uitschakelspanning = 1.8V bij 1C ontladingssnelheid

5. Lithium-nikkel-mangaan-kobaltoxide: afsnijspanning = 2,5 V bij ontladingssnelheid van 1 ° C

6. Lithium-nikkel-kobalt-aluminiumoxide: afsnijspanning = 3,0 V bij ontladingssnelheid van 1 ° C

Bijgewerkt op 01.04.2020

jcgrabo, stelde enkele wijzigingen in het oorspronkelijke ontwerp voor om de precisie te verbeteren. De wijzigingen staan hieronder vermeld:

1. Voeg een precisiereferentie toe (LM385BLP-1.2) en verbind deze met A1. Lees tijdens het instellen de waarde af waarvan bekend is dat deze 1,215 volt is, en bereken vervolgens Vcc, waardoor het niet nodig is om Vcc te meten.

2. Vervang de 1 ohm 5% weerstand door een 1 ohm 1% vermogensweerstand, waardoor fouten worden verminderd die afhankelijk zijn van de waarde van de weerstand.

3. In plaats van een vaste set PWM-waarden voor elke huidige stap (in stappen van 5) te gebruiken, maakt u een reeks gewenste stroomwaarden die werden gebruikt om de benodigde PWM-waarden te berekenen om die huidige waarden zo dicht mogelijk te benaderen. Hij volgde dat door de werkelijke stroomwaarden te berekenen die met de berekende PWM-waarden zullen worden bereikt.

Door rekening te houden met de bovenstaande wijzigingen, heeft hij de code herzien en gedeeld in het commentaargedeelte. De herziene code is hieronder bijgevoegd.

Heel erg bedankt jcgrabo voor je waardevolle bijdrage aan mijn project. Ik hoop dat deze verbetering voor veel meer gebruikers nuttig zal zijn.

Stap 11: Conclusie

Conclusie
Conclusie
Conclusie
Conclusie
Conclusie
Conclusie
Conclusie
Conclusie

Om het circuit te testen, heb ik eerst een goede Samsung 18650-batterij opgeladen met mijn ISDT C4-oplader. Sluit vervolgens de accu aan op de accupool. Stel nu de stroom in volgens uw behoefte en druk lang op de "UP"-knop. Dan hoort u een pieptoon en begint de testprocedure. Tijdens de test bewaak je alle parameters op het OLED-display. De batterij zal ontladen totdat de spanning de lage drempel (3,2 V) bereikt. Het testproces wordt beëindigd door twee lange pieptonen.

Opmerking: het project bevindt zich nog in de ontwikkelingsfase. U kunt bij mij terecht voor eventuele verbeteringen. Maak opmerkingen als er fouten of fouten zijn. Ik ben het ontwerpen van een PCB voor dit project. Blijf op de hoogte voor meer updates van het project.

Ik hoop dat mijn tutorial nuttig is. Als je het leuk vindt, vergeet dan niet te delen:) Schrijf je in voor meer DIY-projecten. Bedankt.

Aanbevolen: