Innehållsförteckning:

Mikrocontrollerbaserad smart batteriladdare: 9 steg (med bilder)
Mikrocontrollerbaserad smart batteriladdare: 9 steg (med bilder)

Video: Mikrocontrollerbaserad smart batteriladdare: 9 steg (med bilder)

Video: Mikrocontrollerbaserad smart batteriladdare: 9 steg (med bilder)
Video: M Sverige tipsar: Så startar du bilen med starthjälp 2024, Juli
Anonim
Mikrokontroller baserad smart batteriladdare
Mikrokontroller baserad smart batteriladdare
Mikrokontroller baserad smart batteriladdare
Mikrokontroller baserad smart batteriladdare
Mikrokontroller baserad smart batteriladdare
Mikrokontroller baserad smart batteriladdare

Kretsen du kommer att se är en smart batteriladdare baserad på ATMEGA8A med automatisk avstängning. Olika parametrar visas via en LCD under olika laddningslägen. Kretsen kommer också att göra ljud via en summer när laddningen är klar.

Jag byggde laddaren i princip för att ladda mitt 11.1v/4400maH Li-ion-batteri. Firmwaren är i princip skriven för att ladda just den här batteritypen. Du kan ladda upp ditt eget laddningsprotokoll för att uppfylla dina behov för att ladda andra batterityper.

Som du vet är smarta batteriladdare lätt tillgängliga på marknaderna. Men eftersom jag är en elektronisk entusiast är det alltid bättre att bygga en egen än att köpa en som kommer att ha statiska/oföränderliga funktioner. I den här modulen har jag planer på att uppgradera i framtiden så jag har lämnat utrymme angående det.

När jag först köpte mitt tidigare 11.1v/2200mah Li-ion-batteri letade jag efter DIY-batteriladdare med smart kontroll på internet. Men jag hittade mycket begränsade resurser. Så då gjorde jag en batteriladdare baserad på LM317 och det fungerade riktigt bra för mig. Men eftersom mitt tidigare batteri dog med tiden (utan anledning), köpte jag ett annat Li-ion-batteri på 11,1v/4400mah. Men den här gången var den tidigare installationen otillräcklig för att ladda mitt nya batteri. För att möta min krav, jag studerade lite på nätet och kunde designa min egen smarta laddare.

Jag delar detta eftersom jag tror att det finns många hobbyister/entusiaster där ute som verkligen brinner för att arbeta med kraftelektronik och mikrokontroller och också behöver bygga en egen smart laddare.

Låt oss ta en snabb titt på hur man laddar ett Li-ion-batteri.

Steg 1: Ladda protokoll för ett litiumjonbatteri

För att ladda litiumjonbatteriet måste vissa villkor vara uppfyllda. Om vi inte upprätthåller villkoren kommer antingen batteriet att vara underladdat eller så kommer de att antändas (om de är överladdade) eller skadas permanent.

Det finns en mycket bra webbplats för att veta allt som behövs om olika typer av batterier och naturligtvis vet du namnet på webbplatsen om du är bekant med att arbeta med batterier … Ja, jag pratar om batteryuniversity.com.

Här är länken för att känna till nödvändiga detaljer för att ladda ett Li-ion-batteri.

Om du är tillräckligt lat för att läsa alla dessa teorier, är kärnan följande.

1. Full laddning av ett 3.7v Li-ion batteri är 4.2v. I vårt fall betyder 11.1v Li-ion batteri 3 x 3.7v batteri. För full laddning måste batteriet nå 12.6v men av säkerhetsskäl, vi laddar den upp till 12,5 volt.

2. När batteriet är på väg att nå full laddning sjunker strömmen från batteriet från laddaren till så lågt som 3% av den nominella batterikapaciteten. Till exempel är batterikapaciteten på mitt cellpaket 4400mah. Så när batteriet är fulladdat kommer strömmen som dras av batteriet att nås till nästan 3% -5% av 4400ma dvs mellan 132 och 220ma. För att säkert stoppa laddningen kommer laddningen att stoppas när den dragna strömmen kommer att gå under 190ma (nästan 4% av nominell kapacitet).

3. den totala laddningsprocessen är uppdelad i två huvuddelar 1-konstant ström (CC-läge), 2-konstant spänning (CV-läge). (Det finns också toppladdningsläge, men vi kommer inte att implementera det i vår laddare som laddare meddelar användaren vid full laddning genom alarmering, då måste batteriet kopplas från laddaren)

CC -läge -

I CC -läge laddar laddaren batteriet med 0,5c eller 1c laddningshastighet. Vad i helvete är 0,5c/1c ???? kommer att vara 2200ma och 1c kommer att vara 4400ma laddström. 'c' står för laddnings-/urladdningshastighet. Vissa batterier stöder också 2c dvs i CC -läge, du kan ställa in laddströmmen upp till 2xbatterikapacitet men det är vansinnigt !!!!!

Men för att vara säker väljer jag laddningsström på 1000ma för 4400mah batteri, dvs 0.22c. I detta läge kommer laddaren att övervaka strömmen som dras av batteriet oberoende av laddningsspänningen.ie Laddaren behåller 1A laddningsström genom att öka /minskar utspänningen tills batteriladdningen når 12,4v.

CV -läge -

När batterispänningen når upp till 12,4v, håller laddaren 12,6 volt (oberoende av strömmen som dras av batteriet) vid utgången. Nu kommer laddaren att stoppa laddningscykeln beroende på två saker. Om batterispänningarna korsar 12,5v och även om laddningsströmmen sjunker under 190ma (4% av den nominella batterikapaciteten som tidigare förklarats), stoppas laddningscykeln och en summer hörs.

Steg 2: Schematisk och förklaring

Låt oss nu ta en titt på kretsens arbete. Schemat är bifogat i pdf -format i BIN.pdf -filen.

Ingångsspänningen för kretsen kan vara 19/20v. Jag har använt en gammal bärbar laddare för att få 19v.

J1 är en terminalanslutning för att ansluta kretsen till ingångsspänningskällan. Q1, D2, L1, C9 bildar en buck -omvandlare. Vad fan är det ??? av omvandlare kan du uppnå önskad utspänning genom att variera arbetscykeln. Om du vill veta mer om buck -omvandlare, besök sedan den här sidan. men för att vara ärlig så skiljer de sig helt från teorin. C9 för mina krav, det tog 3 dagars test och fel. Om du ska ladda olika batterier kan det vara möjligt att dessa värden kommer att förändras.

Q2 är drivningstransistorn för kraftmosfeten Q1. R1 är ett förspänningsmotstånd för Q1. Vi matar pwm -signalen i Q2: s bas för att styra utspänningen. C13 är ett avkopplingslock.

Nu matas utmatningen sedan till Q3. En fråga kan ställas att "Vad är användningen av Q3 här ??". Svaret är ganska enkelt, det fungerar som en enkel switch. När vi mäter batteriets spänning, kommer vi att stänga av Q3 för att koppla ur laddningsspänningsutgången från buck -omvandlaren. Q4 är drivrutinen för Q3 med ett förspänningsmotstånd R3.

Observera att det finns en diod D1 i banan. Vad dioden gör här i sökvägen ?? Det här svaret är också mycket enkelt. När kretsen kommer att kopplas från ingångseffekt medan batteriet är anslutet vid utgången kommer strömmen från batteriet att flödet i den omvända vägen via kroppsdioderna på MOSFET Q3 & Q1 och därmed får U1 och U2 batterispänningen vid sina ingångar och driver kretsen från batterispänningen. För att undvika detta används D1.

D1: s utmatning matas sedan till strömgivarens ingång (IP+). Detta är en baseffektsensor för halleffekt, dvs den aktuella avkänningsdelen och utgångsdelen är isolerade. Den aktuella sensorutgången (IP-) matas sedan till Här bildar R5, RV1, R6 en spänningsdelarkrets för att mäta batterispänningen/utspänningen.

Atmega8: s ADC används här för att mäta batterispänning och ström. ADC kan mäta max 5v. Men vi mäter max 20v (med viss takhöjd). För att minska spänningen till ADC -intervallet, en 4: 1 spänningsdelare används. Grytan (RV1) används för att finjustera/kalibrera. Jag kommer att diskutera det senare. C6 kopplar av locket.

Utgången från ACS714 strömgivare matas också till atmega8s ADC0 -stift. Med denna ACS714 -sensor mäter vi strömmen. Jag har en brytbräda från pololu av 5A -versionen och fungerar riktigt bra. Jag kommer att prata om i nästa steg på hur man mäter strömmen.

LCD -skärmen är en normal 16x2 lcd. LCD -skärmen som används här är konfigurerad i 4 -bitarsläge eftersom stiftantal på atmega8 är begränsat. RV2 är ljusstyrkajusteringspotten för LCD -skärmen.

Atmega8 klockas till 16 MHz med en extern kristall X1 med två frikopplingslock C10/11. ADC -enheten för atmega8 drivs via Avcc -stiftet via en 10uH induktor. C7, C8 är frikopplingskåpor anslutna till Agnd. Placera dem som nära som möjligt till Avcc och Aref på motsvarande sätt medan du gör PCB. Observera att Agnd -stiftet inte visas i kretsen. Agnd -stiftet kommer att anslutas till jord.

Jag har konfigurerat ADC för atmega8 för att använda extern Vref dvs vi kommer att leverera referensspänningen via Aref -stiftet. Huvudorsaken bakom detta för att uppnå maximal möjlig läsnoggrannhet. Den interna 2,56v referensspänningen är inte så mycket bra i avrs. Det är därför jag konfigurerade det externt. Nu är här en sak att notera. 7805 (U2) levererar endast ACS714 -sensorn och Aref -stiftet på atmega8. Detta är för att upprätthålla optimal noggrannhet. ACS714 ger en stabil utgångsspänning på 2,5v när det finns inget strömflöde genom det. Men till exempel, om matningsspänningen för ACS714 kommer att sänkas (säg 4.7v), kommer även utströmsspänningen (2.5v) att sänkas och det kommer att skapa olämplig/felaktig strömavläsning. Om vi mäter spänningen med avseende på Vref måste referensspänningen på Aref vara felfri och stabil. Det är därför vi behöver en stabil 5v.

Om vi skulle driva ACS714 & Aref från U1 som levererar atmega8 och lcd, skulle det finnas ett väsentligt spänningsfall vid U1: s utgång och ampere- och spänningsavläsningen skulle vara felaktig. Det är därför U2 används här för att eliminera felet genom att endast leverera en stabil 5v till Aref och ACS714.

S1 trycks in för att kalibrera spänningsavläsningen. 2 är reserverad för framtida bruk. Du kan antingen lägga till/inte lägga till den här knappen enligt ditt val.

Steg 3: Fungerar …

Fungerar …
Fungerar …
Fungerar …
Fungerar …
Fungerar …
Fungerar …

När den startas kommer atmega8 att slå på buck -omvandlaren genom att ge 25% pwm -effekt vid Q2: s bas. I sin tur kommer Q2 att köra Q1 och buck -omvandlare startas. Q3 kommer att köras av för att koppla bort buck -omvandlarens utgång och batteriet. atmega8 läser sedan batterispänningen via motståndsdelaren. Om inget batteri är anslutet visar atmega8 meddelandet "Sätt i batteri" via 16x2 lcd och väntar på batteriet. Om ett batteri sedan är anslutet visar atmega8 kommer att kontrollera spänningen. Om spänningen är lägre än 9v, visar atmega8 "Felaktigt batteri" på 16x2 lcd.

Om ett batteri med mer än 9v hittas kommer laddaren först att gå in i CC -läge och slå på utmatningen mosfet Q3. Laddarläge (CC) uppdateras för att visas omedelbart. Om batterispänningen hittas mer än 12,4v, då mega8 kommer omedelbart att lämna CC -läget och gå in i CV -läge. Om batterispänningen är mindre än 12,4v, kommer mega8 att bibehålla 1A laddningsström genom att öka/minska utspänningen för buck -omvandlaren genom att variera driftscykeln för pwm. Laddningsströmmen kommer att läsas av ACS714 -strömsensorn. Buck -utspänningen, laddströmmen, PWM -driftscykeln uppdateras regelbundet på LCD -skärmen.

. Batterispänningen kommer att kontrolleras genom att stänga av Q3 efter varje 500ms intervall. Batterispänningen uppdateras omedelbart till LCD -skärmen.

Om batterispänningen blir mer än 12,4 volt under laddning, kommer mega8 att lämna CC -läget och gå in i CV -läge. Lägesstatus uppdateras omedelbart till LCD -skärmen.

Då kommer mega8 att bibehålla utspänningen på 12,6 volt genom att variera arbetscykeln för bocken. Här kommer batterispänningen att kontrolleras efter var 1: e intervall. Så snart batterispänningen kommer att vara större än 12,5v, kommer den att kontrolleras om den dragna strömmen är under 190ma. Om båda villkoren är uppfyllda stoppas laddningscykeln genom att permanent stänga av Q3 och en summer hörs genom att slå på Q5. Mega8 visar också "Charge complete" via LCD -skärmen.

Steg 4: Delar krävs

Delar krävs
Delar krävs

Nedan listas de delar som krävs för att slutföra projektet. Se datablad för pinout. Endast avgörande databladlänk tillhandahålls

1) ATMEGA8A x 1. (datablad)

2) ACS714 5A strömgivare från Pololu x 1 (jag rekommenderar starkt att använda sensorn från Pololu eftersom de är de bästa exakta bland alla andra sensorer jag har använt. Du hittar den här). Pinout beskrivs i bilden.

3) IRF9540 x 2. (datablad)

4) 7805 x 2 (rekommenderas från Toshibas ursprungliga förberedelser eftersom de ger den mest stabila 5V -utgången). (Datablad)

5) 2n3904 x 3. (datablad)

6) 1n5820 schottky x 2. (datablad)

7) 16x2 LCD x 1. (datablad)

8) 330uH/2A effektinduktor x 1 (rekommenderas av coilmaster)

9) 10uH induktor x 1 (liten)

10) Motstånd -(Alla motstånd är av 1% MFR -typ)

150R x 3

680R x 2

1k x 1

2k2 x 1

10k x 2

22k x 1

5k kruka x 2 (kretskortmonterad typ)

11) Kondensatorer

Obs: Jag använde inte C4. Det finns ingen anledning att använda den om du använder strömförsörjning för bärbar dator/reglerad strömförsörjning som 19v strömkälla

100uF/25v x 3

470uF/25v x 1

1000uF/25v x 1

100n x 8

22p x 2

12) PCB -montering momentan tryckknapp x 2

13) 20v summer x 1

14) 2 -polig anslutningsplint x 2

15) Skåp (jag använde ett sådant skåp.) Du kan använda vad du vill.

16) 19v bärbar strömförsörjning (jag ändrade en hp laptop -strömförsörjning, du kan använda vilken typ av strömförsörjning du vill. Om du vill bygga en, besök då mina instruktioner.)

17) Medelstor kylfläns för U1 & Q1. Du kan använda den här typen. Eller du kan se mina kretsbilder. Men var noga med att använda kylfläns för dem båda.

18) Banankontakt - hona (svart och röd) x 1 + hane (svart och röd) (beroende på behovet av kontakter)

Steg 5: Dags att beräkna ……

Spänningsmätningsberäkning:

Högsta spänningen, vi kommer att mäta med atmega8 adc är 20v. Men atmega8s adc kan mäta max 5v. Så vi skulle kunna genomföra det genom att helt enkelt använda två motstånd, men i vårt fall har jag lagt till en kruka mellan två fasta motstånd så att vi manuellt kan justera noggrannheten genom att vrida potten. ADC: ns upplösning är 10bit dvs. adc kommer att representera 0v till 5v som 0 till 1023 decimalnummer eller 00h till 3FFh. ('h' står för hex -nummer). Referensen är inställd på 5v externt via Aref -stiftet.

Så den uppmätta spänningen = (adc -läsning) x (Vref = 5v) x (motståndsdelningsfaktor dvs 4 i detta fall) / (max adc -avläsning dvs 1023 för 10bit adc).

Antag att vi får en adc -avläsning på 512. Då kommer den uppmätta spänningen att vara -

(512 x 5 x 4) / 1023 = 10v

Nuvarande mätberäkning:

ACS714 ger 2,5v stabil utgång vid utgångsstiftet när ingen ström kommer att strömma från IP+ mot IP-. Det ger 185mv/A över 2,5v, dvs om 3A ström strömmar genom kretsen, kommer acs714 att ge 2,5v+(0,185 x 3) v = 3,055v vid uttaget.

Så den nuvarande mätformeln är följande -

Mätt ström = (((adc-läsning)*(Vref = 5v)/1023) -2,5) /0,185.

till exempel, adc -avläsningen är 700, då är den uppmätta strömmen - (((700 x 5)/1023) - 2,5)/0,185 = 4,98A.

Steg 6: Programvaran

Programvaran är kodad i Winavr med GCC. Jag har modulerat koden, dvs jag har skapat olika bibliotek som adc -bibliotek, lcd -bibliotek etc. adc -biblioteket innehåller nödvändiga kommandon för att konfigurera och interagera med adc. funktioner för att köra 16x2 lcd. Du kan också använda lcd_updated _library.c eftersom startsekvensen för lcd ändras i det här biblioteket. Om du vill använda det uppdaterade biblioteket, byt namn på det med lcd.c

Main.c-filen innehåller huvudfunktionerna. Laddningsprotokollet för li-ion skrivs här. Definiera ref_volt i main.c genom att mäta utmatningen från U2 (7805) med en exakt multimeter för att få exakta avläsningar som beräkningarna är baserade på det.

Du kan helt enkelt bränna.hex -filen direkt i din mega8 för att kringgå huvudvärk.

För dem som vill skriva ett annat laddningsprotokoll har jag lagt in tillräckligt många kommentarer för att även ett barn kan förstå vad som händer för varje radutförande. Du måste bara skriva ditt eget protokoll för olika batterityper. Om du använder Li- jon med olika spänning, måste du bara ändra parametrarna. (Även om detta inte är testat för annan li-jon/annan batterityp. Du måste räkna ut det själv).

Jag rekommenderar starkt att inte bygga denna krets, om detta är ditt första projekt eller om du är ny på mikrokontroller/kraftelektronik.

Jag har laddat upp varje fil eftersom den är i originalformat utom Makefile eftersom den skapar problem att öppna. Jag har laddat upp den i.txt -format. Kopiera bara innehållet och klistra in det i en ny Makefile och bygg hela projektet. Voila …. du är redo att bränna hex -filen.

Steg 7: Nog om teori….låt oss Buld It

Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It
Nog med teori….låt oss Buld It

Här är bilderna på min prototyp från paneler till färdiga i PCB. Gå igenom anteckningarna på bilderna för att veta mer. Bilderna är ordnade i serie från början till slut.

Steg 8: Före första laddningscykeln ……. Kalibrera !!!

Innan du laddar ett batteri med laddaren måste du först kalibrera det, annars kan det inte laddas/överladdas.

Det finns två typer av kalibrering 1) Spänningskalibrering. 2) Aktuell kalibrering. Stegen är följande för att kalibrera.

Mät först utspänningen för U2. Definiera den sedan i main.c som ref_volt. Min var 5,01. Ändra den enligt din mätning. Detta är det viktigaste steget för spänning och strömkalibrering. För strömkalibrering, ingenting allt annat är nödvändigt. Allt kommer att tas om hand av själva programvaran

Nu när du har bränt hex -filen efter att ha definierat ref volt i main.c, döda enhetens effekt.

. Mät nu batterispänningen som du kommer att ladda med en multimeter och anslut batteriet till enheten.

Tryck nu på S1 -knappen och håll den intryckt och slå på kretsen medan knappen är intryckt. Efter en kort fördröjning på cirka 1 sekund släpper du knappen S1. Observera att enheten inte kommer att gå in i kalibreringsläge om u driver kretsen först, tryck sedan på S1.

Nu kan du se på displayen att kretsen har gått in i kalibreringsläge. Ett "cal -läge" visas på LCD -skärmen tillsammans med batterispänningen. Matcha nu batterispänningen som visas på LCD -skärmen med din multimeteravläsning genom att vrida på potten. När du är klar trycker du på S1 -omkopplaren igen, håller den intryckt i ungefär en sekund och släpper den. Du kommer att vara ur kalibreringsläget. Återställ åter laddaren genom att slå av och på den.

Ovanstående process kan också göras utan att ett batteri är anslutet. Du måste ansluta en extern strömkälla till utgångsterminalen (J2). När du har gått in i kalibreringsläget, kalibrera med potten. Men den här gången kopplar du först bort den externa strömkällan och trycker sedan på S1 för att komma ur kalibreringsläget. Detta är nödvändigt för att först koppla bort den externa strömkällan för att undvika alla typer av fel på enheter.

Steg 9: Slå på efter kalibrering … nu är du redo att rocka

Slår på efter kalibrering … nu är du redo att rocka
Slår på efter kalibrering … nu är du redo att rocka
Slår på efter kalibrering … nu är du redo att rocka
Slår på efter kalibrering … nu är du redo att rocka
Slår på efter kalibrering … nu är du redo att rocka
Slår på efter kalibrering … nu är du redo att rocka

När kalibreringen är klar kan du nu starta laddningsprocessen. Anslut batteriet först och slå sedan på enheten. Resten sköts av laddaren.

Min krets fungerar 100% och testas. Men om du märker något, vänligen meddela mig. Du är också välkommen att kontakta för frågor.

Lycklig byggnad.

Rgds // Sharanya

Rekommenderad: