Innholdsfortegnelse:
- Trinn 1: Endre fra grunnprosjekt
- Trinn 2: V0.2 i styret
- Trinn 3: Brødbrett: I2c Character Display Controller utvidet
- Trinn 4: Brødbrett: Tegnvisning med I2c integrert
- Trinn 5: Realisering
- Trinn 6: Utvidbarhet
- Trinn 7: Liste over deler
- Trinn 8: Styret: Tilbakestill, Gnd E -knappen for å velge batteri
- Trinn 9: Brett: I2c og strømforsyningspinner
- Trinn 10: Brett: termistor og målespenning
- Trinn 11: Brett: Motstand mot måling av spenning
- Trinn 12: Loddetrinn: Alle pinner
- Trinn 13: Loddetrinn: Nedtrekksmotstand og termistor
- Trinn 14: Loddetrinn: MOSFET, motstand mot spenningskontroll
- Trinn 15: Kode
- Trinn 16: Resultat etter montering
- Trinn 17: Velg først batteritype
- Trinn 18: Start utladning
- Trinn 19: Unntak: Batteri fjernet
- Trinn 20: Unntak: Temperaturvarsling
- Trinn 21: Test Amperage
- Trinn 22: Pakke
Video: Batterikontroll med temperatur og valg av batteri: 23 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Batterikapasitetstester.
Med denne enheten kan du kontrollere kapasiteten på 18650 batteri, syre og annet (det største batteriet jeg testet Det er 6v Acid batteri 4, 2A). Resultatet av testen er i milliampere/timer.
Jeg lager denne enheten fordi jeg trenger den for å sjekke det falske Kina -batteriet.
For sikkerhets skyld la jeg til, ved hjelp av en termistor, temperaturen på strømmotstanden og batteriet for å forhindre at det blir for varmt, med dette trikset kan jeg sjekke 6v syrebatteri uten brann på brettet (i utladningssyklusen går jeg til varmstrømsmotstand) og enheten venter 20 sekunder for å redusere temperaturen).
Jeg velger en liten mikrokontroller atmega328 -kompatibel nano (eBay).
All koden er her.
Trinn 1: Endre fra grunnprosjekt
Jeg stjal ideen fra prosjektet til OpenGreenEnergy, og jeg gjorde styret om for å legge til funksjoner, så nå blir jeg mer generell.
v0.1
- VCC av Arduino blir nå automatisk beregnet;
- Lagt til variabel for å endre innstilling på en mer behagelig måte.
- Lagt til prosentandel av utslipp
- Lagt temperatur på batteri og effektmotstand
v0.2
- Lagt til mulighet for valg av batteri
- Opprettet prototypekort (se skjematisk), med skjermen, knappen og høyttaleren utenfor brettet fordi jeg i fremtiden vil lage en pakke.
- Lagt til styring av temperaturgrensen til effektmotstanden, slik at jeg kan blokkere prosessen når temperaturen stiger utover 70 ° (over denne temperatureffektmotstanden reduseres).
v0.3
Kommer snart et styre fra denne tjenesten
Trinn 2: V0.2 i styret
I v0.2 for å støtte forskjellige typer batterier, opprettet jeg en struktur som må fylles med batterinavn, min spenning og maks spenning (jeg trenger hjelp til å fylle den: P).
// Struktur av batteriets typebruk Batteritype {tegnnavn [10]; float maxVolt; float 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 }};
Nå bruker jeg et sett med 10k motstander for spenningsdeleren for å lese dobbel temperatur på analog inngang. Hvis du vil ha støtte for endringsspenning, må du endre denne verdien (forklar bedre neste):
// Batterispenningsmotstand
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Spenningsmotstand mot effektmotstand #definer RES_RES_VALUE_GND 10.0 #definer RES_RES_VALUE_VCC 10.0
Hvis du ikke bruker termistor, setter du denne til false:
#define USING_BATTERY_TERMISTOR true
#define USING_RESISTO_TERMISTOR true
Hvis du bruker en annen i2c -skjerm, må du skrive om denne metoden:
void draw (ugyldig)
I prosjektet kan du finne frittskjemaer, bilder og mer.
Trinn 3: Brødbrett: I2c Character Display Controller utvidet
Jeg brukte en generisk tegnvisning, og jeg bygde i2c -kontrolleren og brukte den med mitt tilpassede bibliotek.
Men hvis du vil, kan du ta en vanlig i2c -kontroller (mindre enn 1 €) med et standardbibliotek, koden forblir den samme. All visningskode er i tegnefunksjon, slik at du kan endre det uten å endre andre ting.
Bedre forklart her.
Trinn 4: Brødbrett: Tegnvisning med I2c integrert
Det samme skjemaet uten i2c -kontrollert utvidet.
Trinn 5: Realisering
For å måle spenning bruker vi prinsippet om en spenningsdeler (mer informasjon på Wikipedia).
I enkle ord er denne koden multiplikatorfaktoren for måling av batterispenning.
batResValueGnd / (batResValueVolt + batResValueGnd)
Jeg satte inn de 2 motstandene til batResValueVolt og batResValueGnd -verdien etter og før den analoge lesetråden.
batVolt = (sample1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;
sample1 er den gjennomsnittlige analoge avlesningen;
vcc referanse Arduino spenning;
1023.0 er referanse maksimal verdi for analog lesing (Arduino analog les går fra 0 til 1023).
For å få strøm trenger du spenning etter og før motstand.
Når du har måle spenningen etter og før effektmotstanden, kan du beregne milliampere som bruker batteriet.
MOSFET brukes til å starte og stoppe batteridrift fra strømmotstanden.
For sikkerhets skyld satte jeg inn 2 termistorer for å overvåke batteriets og motstandstemperaturen.
Trinn 6: Utvidbarhet
Jeg prøver å lage et prototypebrett som kan utvides, men foreløpig bruker jeg bare et minimalt sett med pinner (i fremtiden legger jeg til lysdioder og andre knapper).
Hvis du vil ha støttespenning større enn 10v, må du endre motstandsverdien til batteri og motstand i henhold til formelen
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
i skjemaet Motstandsspenning
Motstandsspenning GND 1/2/(Motstandsspenning 2/2 + Motstandsspenning GND 1/2)
Rosa er nedlodding
Trinn 7: Liste over deler
Mengde Deltype Egenskaper
- 2 5 mm skrue Terminal PCB -festeskrue Terminalblokk 8A 250V LW SZUS (eBay)
- 1 Arduino Pro Mini -klon (kompatibel Nano) (eBay)
- 1 grunnleggende FET P-kanal IRF744N eller IRLZ44N (eBay)
- 11 10kΩ Motstandsmotstand 10kΩ (eBay)
- 2 temperatursensor (termistor) 10kΩ; (eBay)
- * Generisk mannlig topptekstform ♂ (hann); (eBay)
- * Generisk kvinnelig topptekstform ♀ (hunn); (eBay)
- 1 PerfBoard board Prototype board 24x18 (eBay)
-
10R, 10W
strømmotstand (eBay) Jeg finner min i en gammel crt -TV.
Trinn 8: Styret: Tilbakestill, Gnd E -knappen for å velge batteri
I venstre del av pinnene finner du knappen og summeren.
Jeg bruker 3 knapper:
- en for å bytte batteritype;
- en for å starte utladning av valgt batteri;
- så bruker jeg reset pin til å starte alt på nytt og aktivere ny operasjon.
All pinne er allerede trukket ned, så du må aktivere med VCC
Tilbakestill aktiveres med GND
Rosa er nedlodding
Trinn 9: Brett: I2c og strømforsyningspinner
Til basen kan du se VCC, GND og SDA, SCL for visning (og annet i fremtiden).
Rosa er nedlodding
Trinn 10: Brett: termistor og målespenning
Til høyre er det pinner for å lese termistorverdien, en for effektresistor eller termistor og den andre for (mannlige/kvinnelige pinner for å feste) batteritermistor.
Så er det analoge pinner som måler differensialspenning etter og før effektmotstand.
Rosa er nedlodding
Trinn 11: Brett: Motstand mot måling av spenning
Her kan du se motstanden som tillater å støtte spenning dobbelt enn arduino pin (10v), du må endre denne for å støtte mer spenning.
Rosa er nedlodding
Trinn 12: Loddetrinn: Alle pinner
For det første legger jeg til alle pinner og lodder det.
Trinn 13: Loddetrinn: Nedtrekksmotstand og termistor
Deretter legger jeg til all nedtrekksresitor (for knapper) og i2c -kontakt (display).
Deretter er termistoren til motstandsmotstanden Det er veldig viktig, med surt batteri som blir for varmt.
Trinn 14: Loddetrinn: MOSFET, motstand mot spenningskontroll
Nå må vi sette inn mosfet for å aktivere utladning og motstand for å kontrollere spenning.
2 motstand for spenning før effektmotstand 2 motstand for spenning etter effektmotstand, når du har denne spenningen kan du beregne milliampere forbruk.
Trinn 15: Kode
Mikrokontrolleren er kompatibel nano, så du må angi IDE for å laste opp en Arduino Nano.
For å jobbe må du laste ned kode fra github -depotet mitt.
Enn du må legge til 3 bibliotek:
- Wire: standard arduino -bibliotek for i2c -protokoll;
- Termistor Library herfra ikke biblioteket du finner i arduino IDE, men min versjon;
- LiquidCrystal_i2c: hvis du bruker utvidet/tilpasset versjon av i2c -adapter (min versjon) må du laste ned biblioteket herfra, hvis du bruker standardkomponenten kan du ta biblioteket fra arduino IDE, men alt er bedre forklart her.
Jeg tester ikke LCD med standardbibliotek, det virker som om de kan byttes ut, men hvis det er et problem, kan du kontakte meg.
Trinn 16: Resultat etter montering
Grunnplaten er på bildet, så kan vi teste den.
Trinn 17: Velg først batteritype
Som beskrevet har vi et verdikart med konfigurasjon av batteri.
// Struktur av batteriets typebruk Batteritype {tegnnavn [10]; float maxVolt; float 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 }};
Trinn 18: Start utladning
Klikk på den andre knappen for å starte utladningen.
I displayet kan du se nåværende milliampere, milliampere/timer, prosentandel utladning, batterispenning og temperatur på effektmotstand og batteri.
Trinn 19: Unntak: Batteri fjernet
Hvis du fjerner utladingsprosessen for batteriet, stopper den når du setter den inn på nytt med den siste verdien.
Trinn 20: Unntak: Temperaturvarsling
Hvis temperaturen (batteri eller motstand) blir varm, går utladningsprosessen på pause.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70 ° på datablad (Derating motstander) #definer TEMP_TO_REMOVE_ON_MAX_TEMP 20
Standardverdien for maks temperatur er 50 ° for batteri og 69 for effektmotstand.
Som du kan se på kommentaren påvirkes kraftmotstanden av derating når den går over 70 °.
Hvis varsel øker, start TEMP_TO_REMOVE_ON_MAX_TEMP sekunder med pause for å sette lav temperatur.
Trinn 21: Test Amperage
Resultatet av strømstyrketesten er bra.
Trinn 22: Pakke
Med separert komponent er pakkeresultatet enkelt å realisere.
I en eske må det utføres et rektangel for LCD, hullene for trykknapper og en ekstern kvinnelig fat for å levere spenning fra strømforsyningen.
Trykknapp trenger ikke nedtrekksmotstand fordi jeg legger den allerede om bord.
Når jeg har litt tid lager jeg og legger den ut.
Anbefalt:
Endre enkelt Android Tab -batteri med 18650 LiPo -batteri: 5 trinn
Enkelt å endre Android Tab -batteri med 18650 LiPo -batteri: I denne instruksen vil vi se hvordan du endrer en gammel Android -fane hvis batteri var dødt med 18650 LiPo -batteri. Ansvarsfraskrivelse: LiPo (litiumpolymer) batteriene er beryktet for brenning/eksplosjoner hvis det ikke tas riktig forsiktighet. Jobber med litium
Utskifting av batteri på iPhone 6 Plus: Veiledning for bytte av internt batteri: 12 trinn (med bilder)
Utskifting av batteri på iPhone 6 Plus: Veiledning for utskifting av det interne batteriet: Hei folkens, jeg lagde en iPhone 6 batteribytteguide for en tid siden, og det så ut til å ha hjulpet mange mennesker, så her er en guide for iPhone 6+. IPhone 6 og 6+ har i hovedsak den samme bygningen bortsett fra den åpenbare størrelsesforskjellen. Det er
Bærbart etui med batteri for Raspberry Pi Zero W (EN/FR): 5 trinn (med bilder)
Bærbart etui med batteri for Raspberry Pi Zero W (EN/FR): EN Denne veiledningen forklarer hvordan du oppretter en "bærbar datamaskin" med en Raspberry Pi zero, et Iphone -batteri og noen elektronikkmoduler FRCe guide explique comment fabriquer un " Ordinateur Portable " avec en Raspberry Pi zero, une ba
GJENBRUK DITT GAMLE BATTERI FOR BATTERI FOR Å LAGE EN STRØMBANK: 9 trinn (med bilder)
GJENBRUK DITT GAMLE BATTOPPATRIE FOR Å LAGE EN STRØMBANK: [Spill av video] [Solar Power Bank] For noen måneder siden fungerte ikke mitt bærbare Dell -batteri. Når jeg koblet det fra hovedstrømforsyningen, ble den bærbare datamaskinen slått av umiddelbart. frustrasjon, byttet jeg ut batteriet og beholdt det døde (i henhold til min
Multimeteroppgradering på Li-ion-batteri med lading fra USB: 4 trinn (med bilder)
Multimeteroppgradering på Li-ion-batteri med lading fra USB: Hvordan oppgraderer jeg et multimeter