- CC og CV-tilstand til batterioplader:
- Kredsløbsdiagram
- LM317 Nuværende regulator
- LM317 Spændingsregulator
- Relæarrangement for at skifte mellem CC- og CV-tilstand
- Måling af litiumbatterispænding
- Måling af ladestrøm
- Arduino og LCD
- PCB-design og fabrikation ved hjælp af EasyEDA
- Beregning og bestilling af prøver online
- Programmering af Arduino til totrins opladning af lithiumbatteri
- Arbejde med 7.4V totrins lithium batterioplader
Fremskridtet inden for elektriske køretøjer, drone og anden mobil elektronik som IoT-enheder ser ud til at være lovende for fremtiden. En almindelig ting blandt alle disse er, at de alle drives af batterier. I henhold til Moores lov har de elektroniske enheder en tendens til at blive mindre og mere drikkebare, disse bærbare enheder skal have deres egen strømkilde til at fungere. Det mest almindelige batterivalg til bærbar elektronik i dag er lithiumion- eller lithiumpolymerbatterier. Disse batterier har en meget god opladningstæthed, men de er kemisk ustabile under barske forhold, og derfor skal der udvises forsigtighed, mens de oplades og bruges.
I dette projekt bygger vi en to-trins batterioplader (CC og CV), der kan bruges til opladning af lithium-ion- eller lithium-polymerbatterier. Den batterioplader kredsløb er beregnet til 7,4 V lithium batteri (to 18650 i serie), som jeg almindeligt brug i de fleste robotter projekt, men kredsløbet kan let ændres til at passe i lavere eller lidt højere batteripakker gerne build 3.7 lithium batterilader eller 12v lithium-ion batterioplader. Som du måske ved, er der færdige opladere til rådighed for disse batterier, men de, der er billige, er meget langsomme, og de, der er hurtige, er meget dyre. Så i dette kredsløb besluttede jeg at bygge en simpel råoplader med LM317 IC'er med CC- og CV-tilstand. Hvad er også sjovere end at opbygge din egen gadget og lære i sin proces.
Husk, at lithiumbatterier skal håndteres forsigtigt. Overopladning eller kortslutning kan føre til eksplosion og brandfare, så vær sikker omkring det. Hvis du er helt ny med lithiumbatterier, vil jeg kraftigt anbefale dig at læse gennem artikel om lithiumbatteri, inden du fortsætter videre. Når det er sagt, lad os komme ind i projektet.
CC og CV-tilstand til batterioplader:
Opladeren, som vi har til hensigt at bygge her, er en totrinsoplader, hvilket betyder, at den har to opladningstilstande, nemlig konstant opladning (CC) og konstant spænding (CV). Ved at kombinere disse to tilstande kan vi oplade batteriet hurtigere end normalt.
Konstant opladning (CC):
Den første tilstand, der går i drift, er CC-tilstand. Her er den opladningsstrøm, der skal komme ind i batteriet, fast. For at opretholde denne strøm vil spændingen blive varieret i overensstemmelse hermed.
Konstant spænding (CV):
Når CC-tilstanden er afsluttet, starter CV-tilstanden. Her holdes spændingen fast, og strømmen får lov til at variere i henhold til batteriets opladningskrav.
I vores tilfælde har vi en 7,4 V litiumbatteripakke, som kun er 18650 celler på 3,7 V hver tilsluttet i serie (3,7 V + 3,7 V = 7,4 V). Denne batteripakke skal oplades, når spændingen når ned til 6,4 V (3,2 V pr. Celle) og kan oplades op til 8,4 V (4,2 V pr. Celle). Derfor er disse værdier allerede faste for vores batteripakke.
Dernæst har vi besluttet ladestrømmen i CC-tilstand, dette kan normalt findes i batteriets datablad, og værdien afhænger af Ah-klassificeringen af batteriet. I vores tilfælde har jeg besluttet en værdi på 800 mA som konstant ladestrøm. Så oprindeligt når batteriet er tilsluttet til opladning, skal opladeren komme i CC-tilstand og skubbe 800mA ind i batteriet ved at variere opladningsspændingen i henhold til. Dette oplader batteriet, og batterispændingen begynder at stige langsomt.
Da vi skubber en kraftig strøm ind i batteriet med højere spændingsværdier, kan vi ikke lade det være i CC, før batteriet bliver fuldt opladet. Vi er nødt til at skifte opladeren fra CC-tilstand til CV-tilstand, når batterispændingen har nået en betydelig værdi. Vores batteripakke her skal være 8,4 V, når den er fuldt opladet, så vi kan skifte den fra CC-tilstand til CV-tilstand ved 8,2 V.
Når opladeren er skiftet til CV-tilstand, skal vi opretholde en konstant spænding, værdien af konstant spænding er 8,6V i vores tilfælde. Batteriet tømmer væsentligt mindre strøm i CV-tilstand end CC-tilstand, da batteriet næsten er opladet i selve CC-tilstand. Derfor ved en fast 8.6V forbruger batteriet mindre strøm, og denne strøm reduceres, når batteriet oplades. Så vi er nødt til at overvåge strømmen, når den når en meget lav værdi, siger mindre end 50 mA, vi antager, at batteriet er fuldt opladet og frakobler automatisk batteriet fra opladeren ved hjælp af et relæ.
For at opsummere kan vi liste opladningsproceduren til batteriet som følger
- Gå ind i CC-tilstand, og oplad batteriet med en fast 800 mA reguleret strøm.
- Overvåg batterispændingen, og skift til CV-tilstand, når den når 8.2V.
- I CV-tilstand oplades batteriet med en fast 8,6V reguleret spænding.
- Overvåg ladestrømmen, når den bliver reduceret.
- Når strømmen når 50 mA, skal du automatisk afbryde batteriet fra opladeren.
Værdierne 800mA, 8.2V og 8.6V er faste, fordi vi har en 7.4V lithiumbatteripakke. Du kan nemt ændre disse værdier i henhold til kravet til din batteripakke. Bemærk også, at der findes mange sceneladere. En to-trins oplader som denne er den mest anvendte. I en tretrinsoplader vil trinene være CC, CV og float. I en opladning med fire eller seks trin overvejes den interne modstand, temperatur osv. Nu hvor vi har en kort forståelse af, hvordan totrinsopladeren faktisk skal fungere, lad os komme ind i kredsløbsdiagrammet.
Kredsløbsdiagram
Det komplette kredsløbsdiagram for denne lithium-batterioplader kan findes nedenfor. Kredsløbet blev lavet ved hjælp af EasyEDA, og printkortet fremstilles også ved hjælp af det samme.
Som du kan se, er kredsløbet ret simpelt. Vi har brugt to LM317 variabel spændingsregulator IC, den ene til at regulere strøm og den anden til at regulere spændingen. Det første relæ bruges til at skifte mellem CC- og CV-tilstand, og det andet relæ bruges til at tilslutte eller afbryde batteriet til opladeren. Lad os opdele kredsløbet i segmenter og forstå dets design.
LM317 Nuværende regulator
LM317 IC kan fungere som en strømregulator ved hjælp af en enkelt modstand. Kredsløbet for det samme er vist nedenfor
Til vores oplader er vi nødt til at regulere en strøm på 800 mA som beskrevet ovenfor. Formlen til beregning af modstandens værdi for den krævede strøm er angivet i databladet som
Modstand (ohm) = 1,25 / strøm (ampere)
I vores tilfælde er strømens værdi 0,8A, og for det får vi en værdi på 1,56 ohm som modstandsværdi. Men den nærmeste værdi, vi kunne bruge, er 1,5 ohm, som er nævnt i kredsløbsdiagrammet ovenfor.
LM317 Spændingsregulator
Til CV-tilstanden af lithiumbattey-oplader er vi nødt til at regulere spændingen til 8,6V som diskuteret tidligere. Igen kan LM317 gøre dette ved hjælp af kun to modstande. Kredsløbet for det samme er vist nedenfor.
Formlen til beregning af udgangsspændingen for en LM317-regulator er give som
I vores tilfælde skal udgangsspændingen (Vout) være 8,6V, og værdien af R1 (her R2) skal være mindre end 1000 ohm, så jeg har valgt en værdi på 560 ohm. Med dette, hvis vi beregner værdien af R2, får vi den til at være 3,3k ohm. Alternativt kan du bruge en hvilken som helst modstandskombination, forudsat at du får udgangsspændingen til 8,6 V. Du kan bruge denne online LM317-lommeregner til at gøre dit arbejde lettere.
Relæarrangement for at skifte mellem CC- og CV-tilstand
Vi har to 12V-relæ, som hver drives af Arduino gennem BC547 NPN-transistor. Både relæarrangementet er vist nedenfor
Det første relæ bruges til at skifte mellem opladerens CC- og CV-tilstand, dette relæ udløses af Arduino-stiften mærket som “Mode”. Relæet er som standard i CC-tilstand, når det udløses, skifter det fra CC-tilstand til CV-tilstand.
Tilsvarende bruges det andet relæ til at tilslutte eller afbryde opladeren fra batteriet; dette relæ udløses af Arduino-stiften mærket som “Charge”. Som standard afbryder relæet batteriet fra opladeren, når det udløses, forbinder det opladeren med batteriet. Bortset fra dette bruges de to dioder D1 og D2 til at beskytte kredsløbet mod omvendt strøm, og 1K-modstandene R4 og R5 bruges til at begrænse strømmen, der strømmer gennem bunden af transistoren.
Måling af litiumbatterispænding
For at overvåge opladningsprocessen er vi nødt til at måle batterispændingen, kun da kan vi skifte opladeren fra CC-tilstand til CV-tilstand, når batterispændingen når 8.2V som beskrevet. Den mest almindelige teknik, der bruges til at måle spænding med mikrokontroller som Arduino, er ved hjælp af et spændingsdelerkredsløb. Den anvendte her er vist nedenfor.
Som vi ved, er den maksimale spænding, som Arduino Analog pin kan måle, 5V, men vores batteri kan gå så højt som 8,6V i CV-tilstand, så vi er nødt til at træde ned til en lavere spænding. Dette gøres nøjagtigt af spændingsdelerkredsløbet. Du kan beregne værdien af modstand og vide mere om spændingsdeler ved hjælp af denne online spændingsdelerberegner. Her har vi udledt udgangsspændingen med halvdelen af den oprindelige indgangsspænding, denne udgangsspænding sendes derefter til Arduino Analog pin gennem " B_Voltage " -mærket. Vi kan senere hente den oprindelige værdi, mens vi programmerer Arduino.
Måling af ladestrøm
En anden vigtig parameter, der skal måles, er ladestrømmen. Under CV-tilstand frakobles batteriet til opladeren, når opladningsstrømmen går under 50 mA, hvilket indikerer, at opladningen er afsluttet. Der er mange metoder til at måle strøm, den mest almindelige metode er ved hjælp af en shuntmodstand. Kredsløbet for det samme er vist nedenfor
Konceptet bag det er simpel ohm lov. Hele strømmen, der strømmer til batteriet, får strøm gennem shuntmodstanden 2.2R. Så ved Ohms lov (V = IR) ved vi, at spændingsfaldet over denne modstand vil være proportionalt med strømmen, der strømmer gennem den. Da vi kender værdien af modstand og spænding på tværs, kan den måles ved hjælp af Arduino Analog pin, kan strømværdien let beregnes. Værdien af spændingsfald over modstanden sendes til Arduino gennem etiketten “B_Current ”. Vi ved, at den maksimale ladestrøm vil være 800mA, så ved at bruge formlerne V = IR og P = I 2 R kan vi beregne modstandsværdien og effektværdien af modstanden.
Arduino og LCD
Endelig på Arduino-siden er vi nødt til at interface en LCD med Arduino for at vise opladningsprocessen til brugeren og kontrollere opladningen ved at måle spændingen, strømmen og derefter udløse relæerne i overensstemmelse hermed.
Arduino Nano har en indbygget spændingsregulator, hvorfor forsyningsspændingen leveres til Vin, og den regulerede 5V bruges til at køre Arduino og 16x2 LCD-display. Spændingen og strømmen kan måles med henholdsvis de analoge ben A0 og A1 ved hjælp af etiketterne "B_Voltage" og "B_Current". Relæet kan udløses ved at skifte GPIO-pin D8 og D9, som er forbundet via etiketterne "Mode" og "Charge". Når skemaerne er klar, kan vi fortsætte med fremstilling af printkort.
PCB-design og fabrikation ved hjælp af EasyEDA
For at designe dette Lithum-batteriopladekredsløb har vi valgt det online EDA-værktøj kaldet EasyEDA. Jeg har tidligere brugt EasyEDA mange gange og fundet det meget praktisk at bruge, da det har en god samling fodspor, og det er open source. Efter design af PCB kan vi bestille PCB-prøver ved hjælp af deres billige PCB-fabrikationstjenester. De tilbyder også komponentsourcingtjeneste, hvor de har et stort lager af elektroniske komponenter, og brugere kan bestille deres nødvendige komponenter sammen med printkortordren.
Mens du designer dine kredsløb og printkort, kan du også gøre dit kredsløb og printkortdesign offentligt, så andre brugere kan kopiere eller redigere dem og drage fordel af dit arbejde, vi har også gjort vores hele kredsløbs- og printkortlayouts offentlige for dette kredsløb, tjek nedenstående link:
easyeda.com/CircuitDigest/7.4V-Lithium-Charger-with-MCU
Du kan se ethvert lag (Top, Bottom, Topsilk, bottomsilk osv.) På printkortet ved at vælge laget fra vinduet 'Layers'. Du kan også se Lithium-batteriopladeren, hvordan det vil se ud efter fabrikation ved hjælp af Photo View- knappen i EasyEDA:
Beregning og bestilling af prøver online
Når du er færdig med designet af denne Lithium-batterioplader, kan du bestille printkortet via JLCPCB.com. For at bestille printkortet fra JLCPCB skal du have Gerber File. For at downloade Gerber-filer på din PCB skal du blot klikke på Generer fabrikationsfil-knappen på EasyEDA-redigeringssiden, og derefter downloade Gerber-filen derfra, eller du kan klikke på Bestil på JLCPCB som vist i billedet nedenfor. Dette omdirigerer dig til JLCPCB.com, hvor du kan vælge antallet af printkort, du vil bestille, hvor mange kobberlag du har brug for, PCB-tykkelsen, kobbervægt og endda PCB-farven, som det viste øjebliksbillede:
Efter at have klikket på ordre på JLCPCB-knappen, vil det tage dig til JLCPCB-webstedet, hvor du kan bestille printkortet i meget lav pris, som er $ 2. Deres byggetid er også meget mindre, hvilket er 48 timer med DHL-levering på 3-5 dage, dybest set får du dine printkort inden for en uge efter bestilling.
Efter bestilling af printkortet kan du kontrollere produktionsforløbet for dit printkort med dato og klokkeslæt. Du tjekker det ved at gå til kontosiden og klikke på "Produktionsfremdrift" -linket under printkortet som vist i billedet nedenfor.
Efter få dage med bestilling af printkort fik jeg printkortprøverne i pæn emballage som vist på nedenstående billeder.
Efter at have sørget for, at sporene og fodsporene var korrekte. Jeg fortsatte med at samle printet, jeg brugte kvindelige overskrifter til at placere Arduino Nano og LCD, så jeg kan fjerne dem senere, hvis jeg har brug for dem til andre projekter. Det fuldstændigt lodde bord ser sådan ud nedenfor
Programmering af Arduino til totrins opladning af lithiumbatteri
Når hardwaren er klar, kan vi fortsætte med at skrive koden til Arduino Nano. Det komplette program til dette projekt findes nederst på siden, du kan uploade det direkte til din Arduino. Lad os nu opdele programmet i små uddrag og forstå, hvad koden rent faktisk gør.
Som altid starter vi programmet med at initialisere I / O-benene. Som vi ved fra vores hardware, benyttes benene A0 og A2 til at måle henholdsvis spænding og strøm, og ben D8 og D9 bruges til at styre tilstandsrelæet og opladningsrelæet. Koden til at definere det samme er vist nedenfor
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; // Nævn pinkoden til LCD-forbindelse LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Charge = 9; // Pin for at tilslutte eller afbryde batteriet til kredsløbet int Mode = 8; // Pin for at skifte mellem CC-tilstand og CV-tilstand int Voltage_divider = A0; // For at måle batterispænding int Shunt_resistor = A1; // For at måle ladestrøm float Charge_Voltage; flyde Charge_current;
Inde i opsætningsfunktionen initialiserer vi LCD-funktionen og viser en introbesked på skærmen. Vi definerer også relæstifterne som outputstifter. Udløs derefter opladningsrelæet, og tilslut batteriet til opladeren, og opladeren forbliver som standard i CC-tilstand.
ugyldig opsætning () { lcd.begin (16, 2); // Initialiser 16 * 2 LCD lcd.print ("7.4V Li + oplader"); // Intro meddelelseslinje 1 lcd.setCursor (0, 1); lcd.print ("- CircuitDigest"); // Intro meddelelseslinje 2 lcd.clear (); pinMode (Charge, OUTPUT); pinMode (Mode, OUTPUT); digitalWrite (Charge, HIGH); // Start Chargig Oprindeligt ved at tilslutte batteriet digitalWrite (Mode, LOW); // HIGH for CV-tilstand og LAV af CC-tilstand, initialt CC-tilstandsforsinkelse (1000); }
Dernæst inden i den uendelige sløjfefunktion begynder vi programmet ved at måle batterispændingen og ladestrømmen. Værdien 0,0095 og 1,78 ganges med den analoge værdi for at konvertere 0 til 1024 til faktisk spænding og strømværdi. Du kan bruge et multimeter og en klemmemåler til at måle den reelle værdi og derefter beregne multiplikatorværdien. Det beregnes også teoretisk multiplikatorværdierne baseret på de modstande, vi har brugt, men det var ikke så nøjagtigt, som jeg forventede at være.
// Mål oprindeligt spænding og strøm Charge_Voltage = analogRead (Voltage_divider) * 0,0092; // Mål batterispænding Charge_current = analogRead (Shunt_resistor) * 1,78; // Mål opladningsstrøm
Hvis opladningsspændingen er mindre end 8,2 V, går vi ind i CC-tilstand, og hvis den er højere end 8,2 V, går vi ind i CV-tilstand. Hver tilstand har sin egen mens loop. Inde i CC-tilstandsløjfen holder vi Mode-pin som LAV for at forblive i CC-tilstand og fortsætter derefter med at overvåge spændingen og strømmen. Hvis spændingen overstiger 8,2 V tærskelspændingen, bryder vi CC-sløjfen ved hjælp af en bruderklæring. Status for ladningsspænding vises også på LCD'et inde i CC-sløjfen.
// Hvis batterispændingen er mindre end 8,2 V, skal du gå ind i CC-tilstand, mens (Charge_Voltage <8.2) // CC MODE Loop { digitalWrite (Mode, LOW); // Bliv i CC-tilstand // Mål spænding og strømladning_Voltage = analogRead (Voltage_divider) * 0.0095; // Mål batterispænding Charge_current = analogRead (Shunt_resistor) * 1,78; // Mål opladningsstrøm // udskriv detials på LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.setCursor (0, 1); lcd.print ("I CC-tilstand"); forsinkelse (1000); lcd.clear (); // Kontroller, om vi er nødt til at afslutte CC-tilstand, hvis (Charge_Voltage> = 8.2) // Hvis ja { digitalWrite (Mode, HIGH); // Skift til CV-tilstand pause; } }
Den samme teknik kan også følges for CV-tilstand. Hvis spændingen overstiger 8,2 V, går opladeren i CV-tilstand ved at gøre Mode-stiften høj. Dette gælder konstant 8,6 V over batteriet, og ladestrømmen får lov til at variere afhængigt af batterikravet. Denne ladestrøm overvåges derefter, og når den når under 50 mA, kan vi afslutte opladningsprocessen ved at afbryde batteriet fra opladeren. For at gøre dette skal vi simpelthen slukke for opladningsrelæet som vist i koden nedenfor
// Hvis batterispændingen er større end 8,2 V, skal du gå ind i CV-tilstand, mens (Charge_Voltage> = 8.2) // CV MODE Loop { digitalWrite (Mode, HIGH); // Bliv i CV-tilstand // Mål spænding og strømladning_Voltage = analogRead (Voltage_divider) * 0.0092; // Mål batterispænding Charge_current = analogRead (Shunt_resistor) * 1,78; // Mål opladningsstrøm // Vis detaljer for brugeren i LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.print ("I ="); lcd.print (Charge_current); lcd.setCursor (0, 1); lcd.print ("I CV-tilstand"); forsinkelse (1000); lcd.clear (); // Kontroller, om batteriet er opladet ved at overvåge opladningsstrømmen, hvis (Charge_current <50) // Hvis ja { digitalWrite (Oplad, LAV); // Sluk for opladning, mens (1) // Hold opladeren slukket, indtil genstart { lcd.setCursor (0, 1); lcd.print ("Charge Complete."); forsinkelse (1000); lcd.clear (); } } } }
Arbejde med 7.4V totrins lithium batterioplader
Når hardwaren er klar, skal du uploade koden til Arduino-kortet. Tilslut derefter batteriet til kortets opladningsterminal. Sørg for at tilslutte dem med den rigtige polaritet, hvis du vender polariteten, vil det beskadige batteriet og kortet. Efter tilslutning af batteristrøm oplader ved hjælp af en 12V adapter. Din vil blive mødt med en introtekst, og opladeren fortsætter til CC-tilstand eller CV-tilstand baseret på batteriets status. Hvis batteriet er helt afladet på tidspunktet for opladningen, skifter det til CC-tilstand, og din LCD viser noget lignende nedenfor.
Når batteriet oplades, øges spændingen som vist i videoen nedenfor . Når denne spænding når op på 8,2 V, går opladeren i CV-tilstand fra CC-tilstand, og nu viser den både spænding og strøm som vist nedenfor.
Herfra vil batteriets nuværende forbrug langsomt falde, når det oplades. Når strømmen når op til 50 mA eller mindre, antager opladeren, at batteriet er fuldt opladet, og frakobler derefter batteriet fra opladeren ved hjælp af relæet og viser følgende skærmbillede. Herefter kan du afbryde batteriet fra opladeren og bruge det i dine applikationer.
Håber du forstod projektet og nød at bygge det. Det komplette arbejde kan findes i videoen nedenfor. Hvis du har spørgsmål, kan du sende dem i kommentarfeltet nedenfor for at bruge fora til andre tekniske forespørgsler. Igen er kredsløbet kun til uddannelsesmæssigt formål, så brug det med ansvar, da lithiumbatterier ikke er stabile under barske forhold.