NiCd laddare för 12V-pack
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
NiCd laddare för 12V-pack
Måste ha en laddare till mitt 12V NiCd-pack.
Har kollat runt efter PIC/AVR-lösningar men inte hittat nåt som funkar för 12V.
Sprang på denna idag.
Vad tror ni, funkar den eller är den för medioker?
Den verkar ju ha nån form av automatisk avstängning. Är det underhållsladdning den går in i tro?
Har kollat runt efter PIC/AVR-lösningar men inte hittat nåt som funkar för 12V.
Sprang på denna idag.
Vad tror ni, funkar den eller är den för medioker?
Den verkar ju ha nån form av automatisk avstängning. Är det underhållsladdning den går in i tro?
Re: NiCd laddare för 12V-pack
Det finns väl dokumenterat vilka laddsekvenser man bör använda sig av.
Nu har jag bara laddat stora NiCD-packar - 100 ah vattenkylda med flytande lut i - dessa kunde laddas ganska enkelt (ingen noggrann temperaturkoll)
Så då är det väl bara att skaffa valfri AVR-processor och bygga en strömbegränsare som styrs av processorn, sen är det bara att programmera. Du behöver kunna läsa av spänningen och vara medveten om tiden, det är väl allt.
Nu har jag bara laddat stora NiCD-packar - 100 ah vattenkylda med flytande lut i - dessa kunde laddas ganska enkelt (ingen noggrann temperaturkoll)
Så då är det väl bara att skaffa valfri AVR-processor och bygga en strömbegränsare som styrs av processorn, sen är det bara att programmera. Du behöver kunna läsa av spänningen och vara medveten om tiden, det är väl allt.
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
Jo man kan bygga allt. Men jag ville hitta något färdigt för jag har inte tid att bygga en laddare från scratch.
Re: NiCd laddare för 12V-pack
Den du länkar till har ju strömbegränsare - det är allt. Men ingen tidsbegränsning eller avstängning efter att en viss spänning uppnåtts, vilket är lämpligt att ha. Så den borde nog kompletteras med en sådan.
kanske det går att sätta dit något slags relä / transistor som slår ifrån vid en viss uppnådd spänning. Borde vara ganska enkelt.
(fast 2sc3622 som verkar vara en NPN-transistor sitter lite uppochner, tycker jag. Det hade fungerat bra med en PNP-transistor där istället.)
kanske det går att sätta dit något slags relä / transistor som slår ifrån vid en viss uppnådd spänning. Borde vara ganska enkelt.
(fast 2sc3622 som verkar vara en NPN-transistor sitter lite uppochner, tycker jag. Det hade fungerat bra med en PNP-transistor där istället.)
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
Kanske ska leta ihjäl mig efter nån avr/pic historia som fixar 12v-accar.
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
En såndär vore ju perfekt. Funkar den till NiCd så vore det ju grymt om du ville dela med dig. Jag antar att det krävs lite modifiering av dV så det passar NiCd. Går den in i underhållsladdning sen?
Re: NiCd laddare för 12V-pack
Jo, deltaV får du höja rejält. Den har ingen underhållsladdning men ett lämpligt motstånd parallellt över mosfet löser det. Beroende på önskad laddström även justera R1.
Postar koden här ifall fler vill bygga.
Postar koden här ifall fler vill bygga.
Kod: Markera allt
/*************************************************/
/* Kompilator: B Knudsen Cc5x C-compiler */
/* Program: nimh.c */
/* Funktion: DeltaV laddare för 10 st NIMH celler*/
/* datum: 2008-10-30 */
/*************************************************/
#include "12F683.h"
#pragma config |= 0x00E4
#include "delays.c"
/******************************************/
#pragma bit Redled @ GPIO.4 //Röd lysdiod på port 4
#pragma bit Greenled @ GPIO.5 //Grön lysdiod på port 5
#pragma bit Power @ GPIO.2 //Mosfet på port 2
#pragma bit Button @ GPIO.1 //Tryckknapp på port 1
#define ON 1 //ON=1
#define OFF 0 //OFF=0
uns16 Currentvoltage; //Nuvarande spänning i realtid
uns16 Topvoltage; //Högsta spänningen under laddningsförlopp
uns16 dV; //Nuvarande spännigsdifferans i realtid
uns16 DeltaV; //Spännigsdifferans när laddning avbrytes
/******************************************/
/********* Function declaration ***********/
void initpic(void)
{
OSCCON=0b01100001; //INT OSC 4 MHz
CMCON0=0b00000111; //Comparator OFF
ANSEL=0; //Digital I/O
TRISIO =0b00001011; //GP0,GP1,GP3=Ingång GP2,GP4,GP5=Utgång
/* Parameterinitialvärde */
Redled=OFF; //Alla lysdioder OFF
Greenled=OFF;
Power=OFF; //Mosfet=OFF
Currentvoltage=0; //Nollar spänningsparametrar
Topvoltage=0;
dV=0;
DeltaV = 7; // DeltaV=>(5/1023)*7=34mV
}
void delay_sek( char s) //Tidsfördröjning s sekunder
{
do {
delay10(100);
} while ( --s > 0);
}
void checkled(void) //Testar optiskt att PIC'en lever och lysdioderna hela
{
Redled = ON; //Tänder Röd lysdiod
delay_sek(1); //Paus 1 sekunder
Greenled = ON; //Tänder Grön lysdiod
delay_sek(1); //Paus 1 sekund
Greenled = OFF; //Alla lysdioder OFF
Redled = OFF;
}
uns16 ADC_read(void) //Läser in 10-bits ADC värdet på port0, VDD som Ref.
{
uns16 voltage = 0;
ANSEL = 0b01110001; //FRC,ANS0
ADCON0 = 0b10000001; //Right justified,VDD,AN0,Enable
delay_us(22); //Acquisiton delay
ADCON0.1=1; //Start conversion
while(ADCON0.1 == 1) {nop();} //Wait for conversion done
voltage.low8 = ADRESL; //Read lower 8 bits
voltage.mid8 = ADRESH; //Read upper 2 bits
ADCON0.0=0; //ADC OFF
return voltage;
}
void ConnectionTest(void)
{
Power=ON; //Starta Laddning
delay_sek(2); //Väntar 2 sekunder så spänningen stabiliseras
Currentvoltage = ADC_read(); //Läser av spänningen
if (Currentvoltage > 800) //Om spänningen > 15 volt
{
while(1) //I all oändlighet
{
Power=OFF; //Avbryt laddning
Redled = ON; //Tänder Röd lysdiod
}
}
Greenled = ON; //Allt ok, tänder Grön lysdiod
}
/******************************************/
void main( void)
{
initpic(); //Initiera Processorn
checkled(); //Kolla lysdioderna
while( Button == ON); //Vänta på knapptryckning
delay(10); //Paus 10 mSek
while( Button == OFF) ; //Vänta på knappen släpps
delay(10); //Paus 10 mSek
ConnectionTest(); //Kollar om Batteriet är inkopplad
//******** Laddningsövervakning*******
while ( dV < DeltaV)
{
Currentvoltage = ADC_read();
if (Currentvoltage > Topvoltage)
Topvoltage=Currentvoltage;
dV = (Topvoltage-Currentvoltage);
delay_sek(1);
}
//************************************
Power=OFF; //Fulladdad!! Avbryt laddning
while(1) //I all oändlighet
{
Greenled =! Greenled; //Blinka Grön lysdiod
delay_sek(1);
}
} //End
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
Uh knudsen kod =) trevligt.
Funkar laddaren bra eller? Hur fungerar det parallella motståndet tänker du?
Funkar laddaren bra eller? Hur fungerar det parallella motståndet tänker du?
Re: NiCd laddare för 12V-pack
Jo laddaren fungerar bra förutsatt att rippel nivån på spänningskällan är hyffsat låg och det blir ju det mindre känsligt ju större DeltaV du har. Om du kopplar ett motstånd över Q1 så flyter underhållsladdningsströmmen
genom denna via batteriet när Q1 inte är aktiv så att säga, är du med?
genom denna via batteriet när Q1 inte är aktiv så att säga, är du med?
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
Ah man underhållsladdar hela tiden fast inte när man laddar fullt. Då flyter det en ström så fort man slår igång laddaren mao.
Vet du vart man kan läsa om skillnaderna för -dV/dt mellan NiCd och NiMh? Har kikat på en AVR-note men inte hittat några data.
Det här tror jag blir perfekt för mig. Lagom avancerad laddare med säkerhet inbyggt. Man tackar och bugar.
Vet du vart man kan läsa om skillnaderna för -dV/dt mellan NiCd och NiMh? Har kikat på en AVR-note men inte hittat några data.
Det här tror jag blir perfekt för mig. Lagom avancerad laddare med säkerhet inbyggt. Man tackar och bugar.
- jonnorberg
- Inlägg: 850
- Blev medlem: 19 mars 2008, 17:45:40
- Ort: Årsta
Re: NiCd laddare för 12V-pack
Ska nog läsa lite mer men en snabb dum fråga.
DeltaV = 7; // DeltaV=>(5/1023)*7=34mV
Jag gissar att 34mV över 10 celler blir 3,4mV. Vilket är ditt deltaV när laddningen skall avbrytas.
Varför blir värdet på DeltaV 7? Jag förstår inte ekvationen men 1023 är väll upplösningen på adc:n gissar jag. Vart kommer 5 och 7 från?
Enligt länken du postade bör man ha 5-10mV för NiMh och 10-20 för NiCd. Så att dubbla DeltaV för NiCd borde göra susen för min applikation.
Nu ska jag läsa lite mer om detta.
DeltaV = 7; // DeltaV=>(5/1023)*7=34mV
Jag gissar att 34mV över 10 celler blir 3,4mV. Vilket är ditt deltaV när laddningen skall avbrytas.
Varför blir värdet på DeltaV 7? Jag förstår inte ekvationen men 1023 är väll upplösningen på adc:n gissar jag. Vart kommer 5 och 7 från?
Enligt länken du postade bör man ha 5-10mV för NiMh och 10-20 för NiCd. Så att dubbla DeltaV för NiCd borde göra susen för min applikation.
Nu ska jag läsa lite mer om detta.
Re: NiCd laddare för 12V-pack
5=Spänningsreferensen på ADC i volt och resten har du redan nämt 
