Inhoudsopgave:
- Stap 1: Wijzigen van basisproject
- Stap 2: V0.2 van het bord
- Stap 3: Breadboard: I2c Character Display Controller uitgebreid
- Stap 4: Breadboard: karakterweergave met I2c geïntegreerd
- Stap 5: Realisatie
- Stap 6: Uitbreidbaarheid
- Stap 7: Lijst met onderdelen
- Stap 8: Board: Reset, Gnd E-knop om batterij te selecteren
- Stap 9: Bord: I2c en voedingspinnen
- Stap 10: Board: Thermistor en meetspanning
- Stap 11: Board: Weerstand tegen het meten van spanning
- Stap 12: Soldeerstap: alle pinnen
- Stap 13: Soldeerstappen: Pulldown-weerstand en thermistor
- Stap 14: Soldeerstappen: MOSFET, weerstand tegen spanningscontrole
- Stap 15: Coderen
- Stap 16: Resultaat na montage
- Stap 17: Selecteer eerst het batterijtype
- Stap 18: Begin met ontladen
- Stap 19: Uitzonderingen: batterij verwijderd
- Stap 20: Uitzonderingen: Temperatuurwaarschuwing
- Stap 21: Teststroomsterkte
- Stap 22: Pakket
Video: Batterijcontrole met temperatuur- en batterijselectie 23 stappen (met afbeeldingen) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Batterij capaciteit tester.
Met dit apparaat kun je de capaciteit van 18650-batterij, zuur en andere controleren (de grootste batterij die ik heb getest, het is 6v Acid-batterij 4, 2A). Het resultaat van de test is in milliampère/uur.
Ik maak dit apparaat omdat ik het nodig heb om de capaciteit van de nep-china-batterij te controleren.
Voor de veiligheid heb ik, met behulp van een thermistor, de temperatuur van de stroomweerstand en de batterij toegevoegd om te voorkomen dat deze te heet wordt, met deze truc kan ik de 6v-zuurbatterij controleren zonder het bord te ontsteken (ga in de cyclus van ontladen enige tijd naar de hete vermogensweerstand en het apparaat wacht 20 seconden om de temperatuur te verlagen).
Ik selecteer kleine microcontroller atmega328 compatibele nano (eBay).
Alle code staat hier.
Stap 1: Wijzigen van basisproject
Ik heb het idee van het project van OpenGreenEnergy gestolen en ik heb het bord opnieuw gemaakt om functies toe te voegen, dus word nu algemener.
v0.1
- VCC van Arduino wordt nu automatisch berekend;
- Variabele toegevoegd om de instelling op een comfortabelere manier te wijzigen.
- Toegevoegd ontlaadpercentage
- Toegevoegde temperatuur van batterij en vermogensweerstand
v0.2
- Mogelijkheid tot batterijselectie toegevoegd
- Prototype bord gemaakt (zie het schema), met het scherm, de knop en de luidspreker buiten het bord omdat ik in de toekomst graag een pakket zou willen maken.
- Beheer van de temperatuurlimiet aan de vermogensweerstand toegevoegd, zodat ik het proces kan blokkeren wanneer de temperatuur boven 70° stijgt (boven deze temperatuur vermogensweerstand derating).
v0.3
Binnenkort een bord van deze dienst
Stap 2: V0.2 van het bord
In v0.2 om verschillende soorten batterijen te ondersteunen, heb ik een structuur gemaakt die moet worden gevuld met de naam van de batterij, de minimale spanning en de maximale spanning (ik heb hulp nodig om het te vullen: P).
// Structuur van batterijtypestruct BatteryType { char name [10]; vlotter maxVolt; vlotter minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Nu gebruik ik een set van 10k-weerstanden voor de spanningsdeler om de dubbele temperatuur van de analoge ingang te lezen. Als u de spanningsondersteuning wilt wijzigen, moet u deze waarde wijzigen (verklaar hierna beter):
// Weerstand batterijspanning
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Spanningsweerstand vermogensweerstand #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0
Als u geen thermistor gebruikt, stelt u dit in op false:
#define USING_BATTERY_TERMISTOR true
#define USING_RESISTO_TERMISTOR true
Als u een ander i2c-scherm gebruikt, moet u deze methode herschrijven:
nietig tekenen (nietig)
In het project vindt u verrukkelijke schema's, foto's en meer.
Stap 3: Breadboard: I2c Character Display Controller uitgebreid
Ik gebruikte een generieke karakterweergave en ik bouwde de i2c-controller en gebruikte deze met mijn aangepaste bibliotheek.
Maar als je wilt, kun je een normale i2c-controller (minder dan 1€) nemen met een standaardbibliotheek, de code blijft hetzelfde. Alle weergavecodes zijn in de tekenfunctie, dus je kunt dat veranderen zonder andere dingen te veranderen.
Hier beter uitgelegd.
Stap 4: Breadboard: karakterweergave met I2c geïntegreerd
Hetzelfde schema zonder i2c gecontroleerd uitgebreid.
Stap 5: Realisatie
Voor het meten van spanning gebruiken we het principe van een spanningsdeler (meer informatie op Wikipedia).
In eenvoudige bewoordingen is deze code de vermenigvuldigingsfactor voor het meten van de batterijspanning.
batResValueGnd / (batResValueVolt + batResValueGnd)
Ik heb de 2 weerstanden van batResValueVolt en batResValueGnd-waarde ingevoegd na en voor de analoge leesdraad.
batVolt = (voorbeeld1 / (1023,0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023,0))) * vcc;
sample1 is de gemiddelde analoge meetwaarde;
vcc referentie Arduino spanning;
1023.0 is de maximale referentiewaarde van analoog lezen (Arduino analoog lezen gaat van 0 tot 1023).
Om stroomsterkte te krijgen, heb je spanning nodig voor en na de vermogensweerstand.
Als je de spanning na en voor de vermogensweerstand hebt gemeten, kun je milliampère berekenen die de batterij verbruikt.
De MOSFET wordt gebruikt om het leeglopen van de batterij van de vermogensweerstand te starten en te stoppen.
Voor de veiligheid heb ik 2 thermistoren geplaatst om de temperatuur van de batterij en de vermogensweerstand te bewaken.
Stap 6: Uitbreidbaarheid
Ik probeer een prototype bord te maken dat uitbreidbaar is, maar voor nu gebruik ik slechts een minimale set pinnen (in de toekomst zal ik leds en andere knoppen toevoegen).
Als u een ondersteuningsspanning van meer dan 10v wilt, moet u de weerstandswaarde van de batterij en weerstand wijzigen volgens de formule:
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
in het schema Weerstand voedingsspanning
Weerstand voedingsspanning GND 1/2 / (Weerstand voedingsspanning 2/2 + Weerstand voedingsspanning GND 1/2)
Roze is aan het solderen
Stap 7: Lijst met onderdelen
Bedrag Onderdeeltype Eigenschappen
- 2 5mm schroefklem PCB-montage schroefklemmenblok 8A 250V LW SZUS (eBay)
- 1 Arduino Pro Mini-kloon (compatibel Nano) (eBay)
- 1 basis FET P-kanaal IRF744N of IRLZ44N (eBay)
- 11 10kΩ Weerstandsweerstand 10kΩ (eBay)
- 2 Temperatuursensor (Thermistor) 10kΩ; (eBay)
- * Generieke mannelijke kopvorm ♂ (mannelijk); (eBay)
- * Generieke vrouwelijke kopvorm ♀ (vrouwelijk); (eBay)
- 1 PerfBoard bord Prototype bord 24x18 (eBay)
-
10R, 10W
vermogensweerstand (eBay) Ik vind de mijne in een oude crt-tv.
Stap 8: Board: Reset, Gnd E-knop om batterij te selecteren
In het linkerdeel van de pinnen vind je de knop en zoemer.
Ik gebruik 3 knoppen:
- een om het batterijtype te wijzigen;
- een om de geselecteerde batterij te ontladen;
- dan gebruik ik de reset-pin om alles opnieuw op te starten en een nieuwe bewerking te activeren.
Alle pin is al naar beneden getrokken, dus je moet activeren met VCC
Reset wordt geactiveerd met GND
Roze is aan het solderen
Stap 9: Bord: I2c en voedingspinnen
Op de basis zie je de VCC, GND en SDA, SCL voor weergave (en andere in de toekomst).
Roze is aan het solderen
Stap 10: Board: Thermistor en meetspanning
Aan de rechterkant zijn er pinnen om de thermistorwaarde te lezen, een voor de stroomweerstandsthermistor en de andere voor (mannelijke / vrouwelijke pinnen om te bevestigen) batterijthermistor.
Dan zijn er analoge pinnen die de differentiële spanning na en voor de vermogensweerstand meten.
Roze is aan het solderen
Stap 11: Board: Weerstand tegen het meten van spanning
Hier kun je de weerstand zien die het mogelijk maakt om de spanning dubbel te ondersteunen dan de arduino-pin (10v), je moet dit veranderen om meer spanning te ondersteunen.
Roze is aan het solderen
Stap 12: Soldeerstap: alle pinnen
Eerst voeg ik alle pinnen toe en soldeer ik het.
Stap 13: Soldeerstappen: Pulldown-weerstand en thermistor
Dan voeg ik alle pulldown-resitor (voor knoppen) en i2c-connector (display) toe.
Dan de vermogensweerstand thermistor. Het is erg belangrijk, omdat de zuurbatterij te heet wordt.
Stap 14: Soldeerstappen: MOSFET, weerstand tegen spanningscontrole
Nu moeten we mosfet invoegen om ontlading en weerstand te activeren om de spanning te controleren.
2 weerstand voor spanning voor vermogensweerstand 2 weerstand voor spanning na vermogensweerstand, als je deze spanning hebt, kun je milliampère verbruiken.
Stap 15: Coderen
De microcontroller is compatibel met nano, dus je moet je IDE instellen om een Arduino Nano te uploaden.
Om te werken moet je code downloaden van mijn github-repository.
Dan moet u 3 bibliotheken toevoegen:
- Draad: standaard arduino-bibliotheek voor i2c-protocol;
- Termistor Library vanaf hier niet de bibliotheek die je kunt vinden in arduino IDE, maar mijn versie;
- LiquidCrystal_i2c: als je een uitgebreide/aangepaste versie van de i2c-adapter (mijn versie) gebruikt, moet je de bibliotheek hier downloaden, als je de standaardcomponent gebruikt, kun je de bibliotheek van arduino IDE halen, maar alles wordt hier beter uitgelegd.
Ik test LCD niet met standaardbibliotheek, het lijkt mij dat ze uitwisselbaar zijn, maar als er een probleem is, neem dan gerust contact met mij op.
Stap 16: Resultaat na montage
Het basisbord staat op de foto, dan kunnen we het gaan testen.
Stap 17: Selecteer eerst het batterijtype
Zoals beschreven hebben we een waardekaart met configuratie van de batterij.
// Structuur van batterijtypestruct BatteryType { char name [10]; vlotter maxVolt; vlotter minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Stap 18: Begin met ontladen
Klik op de tweede knop om te beginnen met ontladen.
In het display ziet u de huidige milliampère, milliampère/uur, ontlaadpercentage, accuspanning en temperatuur van vermogensweerstand en accu.
Stap 19: Uitzonderingen: batterij verwijderd
Als u het ontlaadproces van de batterij verwijdert, gaat het pauzeren, wanneer u het opnieuw plaatst, start het opnieuw op de laatste waarde.
Stap 20: Uitzonderingen: Temperatuurwaarschuwing
Als de temperatuur (batterij of vermogensweerstand) te hoog wordt, wordt het ontlaadproces onderbroken.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70° op datasheet (Derating weerstanden) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20
De standaardwaarde voor maximale temperatuur is 50° voor batterij en 69 voor vermogensweerstand.
Zoals u kunt zien in de opmerking, wordt de vermogensweerstand beïnvloed door derating wanneer deze meer dan 70 ° gaat.
Als de waarschuwing is geactiveerd, start TEMP_TO_REMOVE_ON_MAX_TEMP seconden pauze om lage temperatuur te zetten.
Stap 21: Teststroomsterkte
Het resultaat van de stroomsterktetest is goed.
Stap 22: Pakket
Met gescheiden component is het pakketresultaat eenvoudig te realiseren.
In een doos moet een rechthoek voor het LCD-scherm, de gaten voor drukknoppen en een externe vrouwelijke loop om spanning van de voeding te leveren.
Drukknop heeft geen pull-down-weerstand nodig omdat ik het al aan boord heb toegevoegd.
Als ik wat tijd heb maak ik het en plaats ik het.
Aanbevolen:
Alles in één digitale chronometer (klok, timer, alarm, temperatuur): 10 stappen (met afbeeldingen)
All in One Digitale Chronometer (Klok, Timer, Alarm, Temperatuur): We waren van plan om voor een andere wedstrijd een Timer te maken, maar later hebben we ook een klok (zonder RTC) geïmplementeerd. Toen we begonnen met programmeren, raakten we geïnteresseerd in het toepassen van meer functionaliteiten op het apparaat en uiteindelijk voegden we DS3231 RTC toe, als
Temperatuur- en vochtigheidsindicator door Arduino 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Temperatuur- en vochtigheidsindicator door Arduino: deze instructie laat zien hoe je een doos kunt maken die de temperatuur en vochtigheid kan aangeven met Arduino. Je kunt deze doos op tafel zetten voor het meten van temperatuur en vochtigheid in je kamer. gecomprimeerd v
Temperatuur bewaken en opnemen met Bluetooth LE en RaspberryPi 9 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Monitor en registreer temperatuur met Bluetooth LE en RaspberryPi: deze instructie gaat over het samenstellen van een multi-node temperatuurbewakingssysteem met Bluetooth LE-sensorbug van Blue Radios (BLEHome) en RaspberryPi 3B Dankzij de ontwikkeling van de Bluetooth LE-standaard is er nu direct beschikbaar
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Temperatuur meten vanaf PT100 met Arduino: 6 stappen (met afbeeldingen)
Temperatuur meten van PT100 met behulp van Arduino: De PT100 is een weerstandstemperatuurdetector (RTD) die zijn weerstand verandert afhankelijk van de omgevingstemperatuur, hij wordt veel gebruikt voor industriële processen met een langzame dynamiek en relatief brede temperatuurbereiken. Het wordt gebruikt voor langzame dynam