- CC- och CV-läge för batteriladdare:
- Kretsschema
- LM317 Aktuell regulator
- LM317 Spänningsregulator
- Reläarrangemang för att växla mellan CC- och CV-läge
- Mätning av litiumbatterispänning
- Mätning av laddningsström
- Arduino och LCD
- PCB-design och tillverkning med EasyEDA
- Beräkning och beställning av prover online
- Programmerar Arduino för tvåstegs litiumbatteriladdning
- Arbetar med 7.4V litiumbatteriladdare i två steg
Framstegen inom elfordon, drönare och annan mobil elektronik som IoT-enheter verkar vara lovande för framtiden. En vanlig sak bland alla dessa är att de alla drivs av batterier. Enligt Moores lag tenderar de elektroniska enheterna att bli mindre och mer drickbara, dessa bärbara enheter bör ha sin egen kraftkälla för att fungera. Det vanligaste batterivalget för bärbar elektronik idag är litiumjonbatterier eller litiumpolymerbatterier. Även om dessa batterier har en mycket bra laddningstäthet är de kemiskt instabila under svåra förhållanden. Därför bör du vara försiktig när du laddar dem och använder dem.
I detta projekt kommer vi att bygga en tvåstegs batteriladdare (CC och CV) som kan användas för att ladda litiumjon- eller litiumpolymerbatterier. Den batteriladdare Kretsen är avsedd för 7,4 V litiumbatteri pack (två 18.650 i serien) som jag använder ofta i de flesta Robotics projekt utan kretsen kan lätt ändras för att passa i lägre eller något högre batteripaket vilja bygga 3,7 litiumbatteriladdare eller 12v litiumjonbatteriladdare. Som du kanske vet finns det färdiga laddare tillgängliga för dessa batterier, men de som är billiga är mycket långsamma och de som är snabba är mycket dyra. Så i den här kretsen bestämde jag mig för att bygga en enkel råladdare med LM317 IC med CC- och CV-läge. Vad är också roligare än att bygga din egen gadget och lära dig i processen.
Kom ihåg att litiumbatterier ska hanteras försiktigt. Överladdning eller kortslutning kan leda till explosion och brandrisk, så håll dig säker runt den. Om du är helt ny på litiumbatterier rekommenderar jag att du läser igenom artikeln om litiumbatterier innan du fortsätter. Med det sagt, låt oss gå in i projektet.
CC- och CV-läge för batteriladdare:
Laddaren som vi tänker bygga här är en tvåstegsladdare, vilket innebär att den kommer att ha två laddningslägen, nämligen Constant Charge (CC) och Constant Voltage (CV). Genom att kombinera dessa två lägen kommer vi att kunna ladda batteriet snabbare än vanligt.
Konstant laddning (CC):
Det första läget för att komma igång är CC-läget. Här är mängden laddningsström som ska komma in i batteriet fixerad. För att bibehålla denna ström kommer spänningen att varieras därefter.
Konstant spänning (CV):
När CC-läget är slutfört kommer CV-läget att starta. Här kommer spänningen att hållas fast och strömmen tillåts variera beroende på batteriets laddningskrav.
I vårt fall har vi ett 7,4 V litiumbatteripaket, vilket är ingenting annat än två 18650 celler på 3,7 V vardera är seriekopplade (3,7 V + 3,7 V = 7,4 V). Detta batteripaket bör laddas när spänningen når ner till 6,4V (3,2V per cell) och kan laddas upp till 8,4V (4,2V per cell). Därför är dessa värden redan fasta för vårt batteripaket.
Därefter har vi bestämt laddningsströmmen i CC-läge, detta kan normalt hittas i batteriets datablad och värdet beror på batteriets Ah-betyg. I vårt fall har jag bestämt ett värde på 800 mA som konstant laddningsström. Så initialt när batteriet är anslutet för laddning bör laddaren komma in i CC-läge och trycka in 800 mA i batteriet genom att variera laddningsspänningen enligt. Detta laddar batteriet och batterispänningen börjar öka långsamt.
Eftersom vi trycker in en kraftig ström i batteriet med högre spänningsvärden kan vi inte lämna det i CC förrän batteriet blir fulladdat. Vi måste flytta laddaren från CC-läge till CV-läge när batterispänningen har nått ett betydande värde. Vårt batteripaket här bör vara 8,4 V när det är fulladdat så att vi kan flytta det från CC-läge till CV-läge vid 8,2 V.
När laddaren har skiftat till CV-läge bör vi hålla en konstant spänning, värdet på konstant spänning är 8,6V i vårt fall. Batteriet dränerar en betydligt mindre ström i CV-läge än CC-läge eftersom batteriet nästan laddas i själva CC-läget. Därför förbrukar batteriet mindre ström vid en fast 8,6 V och denna ström kommer att minska när batteriet laddas. Så vi måste övervaka strömmen när den når ett mycket lågt värde, säg mindre än 50 mA, vi antar att batteriet är fulladdat och kopplar bort batteriet från laddaren automatiskt med ett relä.
För att sammanfatta kan vi lista batteriladdningsproceduren enligt följande
- Gå in i CC-läge och ladda batteriet med en fast 800 mA reglerad ström.
- Övervaka batterispänningen och växla till CV-läge när den når 8,2 V.
- I CV-läge laddar du batteriet med en fast 8,6V reglerad spänning.
- Övervaka laddningsströmmen när den minskar.
- När strömmen når 50 mA, koppla bort batteriet från laddaren automatiskt.
Värdena 800mA, 8.2V och 8.6V är fasta eftersom vi har ett 7,4V litiumbatteripaket. Du kan enkelt ändra dessa värden enligt kraven i ditt batteripaket. Observera också att det finns många scenladdare. En tvåstegsladdare som den här är den vanligaste. I en trestegsladdare kommer scenerna att vara CC, CV och float. I en laddare med fyra eller sex steg kommer det inre motståndet, temperaturen etc att beaktas. Nu när vi har en kort förståelse för hur tvåstegsladdaren faktiskt ska fungera, låt oss gå in i kretsschemat.
Kretsschema
Det fullständiga kretsschemat för denna litiumbatteriladdare finns nedan. Kretsen gjordes med EasyEDA och PCB kommer också att tillverkas med samma.
Som du kan se är kretsen ganska enkel. Vi har använt två LM317 IC-variabla spänningsregulatorer, en för att reglera ström och den andra för att reglera spänning. Det första reläet används för att växla mellan CC- och CV-läge och det andra reläet används för att ansluta eller koppla ur batteriet till laddaren. Låt oss dela upp kretsen i segment och förstå dess design.
LM317 Aktuell regulator
LM317 IC kan fungera som en strömregulator med hjälp av ett enda motstånd. Kretsen för densamma visas nedan
För vår laddare måste vi reglera en ström på 800 mA som diskuterats ovan. Formeln för beräkning av motståndets värde för den erforderliga strömmen ges i databladet som
Motstånd (ohm) = 1,25 / ström (förstärkare)
I vårt fall är strömvärdet 0,8A och för det får vi ett värde på 1,56 ohm som motståndsvärde. Men det närmaste värdet vi kan använda är 1,5 ohm som nämns i kretsschemat ovan.
LM317 Spänningsregulator
För CV-läget för litiumbatteriladdare måste vi reglera spänningen till 8,6V som diskuterats tidigare. Återigen kan LM317 göra detta med hjälp av bara två motstånd. Kretsen för densamma visas nedan.
Formeln för att beräkna utspänningen för en LM317-regulator är som
I vårt fall bör utspänningen (Vout) vara 8,6V, och värdet på R1 (här R2) bör vara mindre än 1000 ohm så jag har valt ett värde på 560 Ohm. Om vi beräknar värdet på R2 får vi det till 3,3 k ohm. Alternativt kan du använda valfria värden för motståndskombination förutsatt att du får utspänningen till 8,6 V. Du kan använda den här LM317-kalkylatorn online för att underlätta ditt arbete.
Reläarrangemang för att växla mellan CC- och CV-läge
Vi har två 12V-relä, var och en drivs av Arduino via BC547 NPN-transistor. Både reläarrangemanget visas nedan
Det första reläet används för att växla mellan laddaren CC och CV, detta relä utlöses av Arduino-stiftet märkt som “Mode”. Som standard är reläet i CC-läge när det utlöses växlar det från CC-läge till CV-läge.
På samma sätt används det andra reläet för att ansluta eller koppla ur laddaren från batteriet; detta relä utlöses av Arduino-stiftet märkt som "Charge". Som standard kopplar reläet bort batteriet från laddaren, när det aktiveras ansluter det laddaren till batteriet. Bortsett från detta används de två dioderna D1 och D2 för att skydda kretsen från motström och 1K-resistorerna R4 och R5 används för att begränsa strömmen som flyter genom basen på transistorn.
Mätning av litiumbatterispänning
För att övervaka laddningsprocessen måste vi mäta batterispänningen, bara då kan vi flytta laddaren från CC-läge till CV-läge när batterispänningen når 8.2V som diskuterat. Den vanligaste tekniken som används för att mäta spänning med mikrokontroller som Arduino är att använda en spänningsdelarkrets. Den som används här visas nedan.
Som vi vet är den maximala spänningen som Arduino Analog-stift kan mäta 5V, men vårt batteri kan gå så högt som 8,6V i CV-läge så vi måste gå ner detta till en lägre spänning. Detta görs exakt av spänningsdelarkretsen. Du kan beräkna värdet på motstånd och veta mer om spänningsdelaren med hjälp av denna online-spänningsdelare. Här har vi dragit utgångsspänningen med hälften av den ursprungliga ingångsspänningen, denna utgångsspänning skickas sedan till Arduino Analog-stift genom " B_Voltage " -etiketten. Vi kan senare hämta det ursprungliga värdet när vi programmerar Arduino.
Mätning av laddningsström
En annan viktig parameter som ska mätas är laddningsströmmen. Under CV-läget kopplas batteriet från laddaren när laddningsströmmen går under 50 mA vilket indikerar laddningen. Det finns många metoder för att mäta ström, den vanligaste metoden är att använda ett shuntmotstånd. Kretsen för densamma visas nedan
Konceptet bakom det är enkel ohm-lag. Hela strömmen som flyter till batteriet får ström genom shuntmotståndet 2.2R. Sedan vid Ohms lag (V = IR) vet vi att spänningsfallet över detta motstånd kommer att vara proportionellt mot strömmen som strömmar genom det. Eftersom vi vet att värdet på motstånd och spänning över det kan mätas med hjälp av Arduino Analog stift kan strömvärdet enkelt beräknas. Värdet på spänningsfall över motståndet skickas till Arduino via etiketten "B_Current ". Vi vet att den maximala laddningsströmmen kommer att vara 800 mA, så med hjälp av formlerna V = IR och P = I 2 R kan vi beräkna resistansvärdet och effektvärdet för motståndet.
Arduino och LCD
Slutligen på Arduino-sidan måste vi ansluta en LCD-skärm med Arduino för att visa laddningsprocessen för användaren och kontrollera laddningen genom att mäta spänningen, strömmen och sedan utlösa reläerna i enlighet därmed.
Arduino Nano har en inbyggd spänningsregulator, därmed matas spänningen till Vin och den reglerade 5V används för att köra Arduino och 16x2 LCD-skärm. Spänningen och strömmen kan mätas med de analoga stiften A0 respektive A1 med hjälp av etiketterna "B_Voltage" och "B_Current". Reläet kan utlösas genom att växla mellan GPIO-stift D8 och D9 som är anslutna via etiketterna "Mode" och "Charge". När schemat är klart kan vi fortsätta med PCB-tillverkning.
PCB-design och tillverkning med EasyEDA
För att utforma denna Lithum-batteriladdarkrets har vi valt EDA-verktyget online som heter EasyEDA. Jag har tidigare använt EasyEDA många gånger och tyckte att det var väldigt bekvämt att använda eftersom det har en bra samling fotavtryck och det är öppen källkod. Efter att ha designat kretskortet kan vi beställa kretskortproverna med deras billiga tjänster för tillverkning av kretskort. De erbjuder också komponent sourcingtjänster där de har ett stort lager av elektroniska komponenter och användare kan beställa sina nödvändiga komponenter tillsammans med PCB-beställningen.
När du designar dina kretsar och kretskort kan du också göra din krets- och kretskortsdesign offentlig så att andra användare kan kopiera eller redigera dem och dra nytta av ditt arbete, vi har också gjort hela krets- och kretskortlayouterna offentliga för den här kretsen, kolla nedanstående länk:
easyeda.com/CircuitDigest/7.4V-Lithium-Charger-with-MCU
Du kan se vilket lager som helst (Top, Bottom, Topsilk, bottomsilk etc) på kretskortet genom att välja lagret från "Layers" -fönstret. Du kan också se litiumbatteriladdarkretskortet, hur det kommer att se ut efter tillverkning med Photo View- knappen i EasyEDA:
Beräkning och beställning av prover online
Efter att ha slutfört designen av detta litiumbatteriladdarkretskort kan du beställa kretskortet via JLCPCB.com. För att beställa PCB från JLCPCB behöver du Gerber File. För att ladda ner Gerber-filer på din PCB klickar du bara på knappen Generate Fabrication File på EasyEDA-redigeringssidan och laddar sedan ner Gerber-filen därifrån eller så kan du klicka på Order at JLCPCB som visas i bilden nedan. Detta kommer att omdirigera dig till JLCPCB.com, där du kan välja antalet PCB du vill beställa, hur många kopparlager du behöver, PCB-tjockleken, kopparvikten och till och med PCB-färgen, som ögonblicksbilden som visas nedan:
Efter att ha klickat på beställning vid JLCPCB-knappen kommer det att ta dig till JLCPCB-webbplats där du kan beställa PCB i mycket lågt pris som är $ 2. Deras byggtid är också mycket mindre vilket är 48 timmar med DHL-leverans på 3-5 dagar, i princip får du dina PCB inom en vecka efter beställning.
Efter beställning av kretskortet kan du kontrollera produktionsförloppet för ditt kretskort med datum och tid. Du kontrollerar det genom att gå till kontosidan och klicka på "Produktionsförlopp" -länken under kretskortet som visas i bilden nedan.
Efter några dagars beställning av PCB fick jag PCB-proverna i fin förpackning som visas på bilderna nedan.
Efter att ha kontrollerat att spåren och fotspåren var korrekta. Jag fortsatte med att montera kretskortet, jag använde kvinnliga rubriker för att placera Arduino Nano och LCD så att jag kan ta bort dem senare om jag behöver dem för andra projekt. Det helt lödda kortet ser ut så här nedan
Programmerar Arduino för tvåstegs litiumbatteriladdning
När hårdvaran är klar kan vi fortsätta med att skriva koden för Arduino Nano. Hela programmet för detta projekt finns längst ner på sidan, du kan ladda upp det direkt till din Arduino. Låt oss nu dela upp programmet i små utdrag och förstå vad koden faktiskt gör.
Som alltid börjar vi programmet med att initialisera I / O-stiften. Som vi vet från vår hårdvara används stiften A0 och A2 för att mäta spänning respektive ström och stiftet D8 och D9 används för att styra lägesreläet och laddningsreläet. Koden för att definiera densamma visas nedan
konst int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; // Nämn PIN-numret för LCD-anslutning LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Charge = 9; // Stift för att ansluta eller koppla ur batteriet till kretsen int Mode = 8; // Stift för att växla mellan CC-läge och CV-läge int Voltage_divider = A0; // För att mäta batterispänning int Shunt_resistor = A1; // För att mäta laddningsström float Charge_Voltage; flyta Charge_current;
Inuti installationsfunktionen initialiserar vi LCD-funktionen och visar ett introduktionsmeddelande på skärmen. Vi definierar också relästift som utgångsstift. Starta sedan laddningsreläet och anslut batteriet till laddaren och som standard förblir laddaren i CC-läge.
ogiltig installation () { lcd.begin (16, 2); // Initiera 16 * 2 LCD lcd.print ("7.4V Li + laddare"); // Intro Meddelandelinje 1 lcd.setCursor (0, 1); lcd.print ("- CircuitDigest"); // Intro Meddelandelinje 2 lcd.clear (); pinMode (Charge, OUTPUT); pinMode (Mode, OUTPUT); digitalWrite (Charge, HIGH); // Börja Chargig initialt genom att ansluta batteriet digitalWrite (Mode, LOW); // HÖG för CV-läge och LÅG av CC-läge, initialt CC-lägesfördröjning (1000); }
Därefter inuti den oändliga slingfunktionen börjar vi programmet genom att mäta batterispänningen och laddningsströmmen. Värdet 0,0095 och 1,78 multipliceras med Analogt värde för att konvertera 0 till 1024 till faktisk spänning och strömvärde. Du kan använda en multimeter och en klämmätare för att mäta det verkliga värdet och sedan beräkna multiplikatorvärdet. Det beräknas också teoretiskt multiplikatorvärdena baserat på motstånden vi har använt men det var inte så exakt som jag förväntade mig att det skulle vara.
// Mät spänning och ström initialt Charge_Voltage = analogRead (Voltage_divider) * 0.0092; // Mät batterispänning Charge_current = analogRead (Shunt_resistor) * 1,78; // Mät laddningsström
Om laddningsspänningen är mindre än 8,2 V går vi in i CC-läge och om den är högre än 8,2 V går vi in i CV-läge. Varje läge har sin egen while- loop. Inuti CC-mode-slingan håller vi Mode-stiftet som LOW för att stanna i CC-läge och fortsätter sedan att övervaka spänningen och strömmen. Om spänningen överstiger 8,2 V tröskelspänningen bryter vi CC-slingan med hjälp av ett brytuttalande. Status för laddningsspänning visas också på LCD-skärmen inuti CC-slingan.
// Om batterispänningen är mindre än 8,2 V går du in i CC-läge medan (Charge_Voltage <8.2) // CC MODE Loop { digitalWrite (Mode, LOW); // Håll dig i CC-läge // Mät spänning och strömladdning_Voltage = analogRead (Voltage_divider) * 0.0095; // Mät batterispänning Charge_current = analogRead (Shunt_resistor) * 1,78; // Mät laddningsström // tryck detials på LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.setCursor (0, 1); lcd.print ("I CC-läge"); fördröjning (1000); lcd.clear (); // Kontrollera om vi måste avsluta CC-läget om (Charge_Voltage> = 8.2) // Om ja { digitalWrite (Mode, HIGH); // Byt till paus i CV-läge ; } }
Samma teknik kan följas för CV-läge också. Om spänningen överstiger 8,2 V går laddaren in i CV-läge genom att göra Mode-stiftet högt. Detta gäller konstant 8,6 V över batteriet och laddningsströmmen får variera beroende på batterikrav. Denna laddningsström övervakas sedan och när den når under 50 mA kan vi avsluta laddningsprocessen genom att koppla bort batteriet från laddaren. För att göra detta måste vi helt enkelt stänga av laddningsreläet som visas i koden nedan
// Om batterispänningen är större än 8,2 V, gå in i CV-läge medan (Charge_Voltage> = 8.2) // CV MODE Loop { digitalWrite (Mode, HIGH); // Stanna i CV-läge // Mät spänning och strömladdning_Voltage = analogRead (Voltage_divider) * 0.0092; // Mät batterispänning Charge_current = analogRead (Shunt_resistor) * 1,78; // Mät laddningsström // Visa detaljer för användaren i LCD lcd.print ("V ="); lcd.print (Charge_Voltage); lcd.print ("I ="); lcd.print (Charge_current); lcd.setCursor (0, 1); lcd.print ("I CV-läge"); fördröjning (1000); lcd.clear (); // Kontrollera om batteriet är laddat genom att övervaka laddningsströmmen om (Charge_current <50) // Om ja { digitalWrite (Charge, LOW); // Stäng av laddningen medan (1) // Håll laddaren avstängd tills omstart { lcd.setCursor (0, 1); lcd.print ("Charge Complete."); fördröjning (1000); lcd.clear (); } } } }
Arbetar med 7.4V litiumbatteriladdare i två steg
När hårdvaran är klar laddar du upp koden till Arduino-kortet. Anslut sedan batteriet till kortets laddningsterminal. Se till att du ansluter dem med rätt polaritet, om du vänder polariteten kommer batteriet och kortet att skadas allvarligt. När du har anslutit batteriet till laddaren med en 12V adapter. Din hälsas med en introduktionstext och laddaren fortsätter till CC-läge eller CV-läge baserat på batteriets status. Om batteriet är urladdat vid laddningstillfället går det in i CC-läge och din LCD visar något liknande nedan.
När batteriet laddas ökar spänningen som visas i videon nedan . När denna spänning når 8,2 V kommer laddaren att gå in i CV-läge från CC-läge och nu visar den både spänning och ström enligt nedan.
Härifrån minskar batteriets strömförbrukning långsamt när det laddas. När strömmen når 50mA eller mindre antar laddaren att batteriet är fulladdat och kopplar sedan bort batteriet från laddaren med hjälp av reläet och visar följande skärm. Därefter kan du koppla bort batteriet från laddaren och använda det i dina applikationer.
Hoppas att du förstod projektet och gillade att bygga det. Hela arbetet finns i videon nedan. Om du har några frågor skicka dem i kommentarsektionen nedan för att använda forumen för andra tekniska frågor. Återigen är kretsen endast för utbildningsändamål så använd den med ansvar eftersom litiumbatterier inte är stabila under svåra förhållanden.