Escolar Documentos
Profissional Documentos
Cultura Documentos
Carregador de Baterias Microcontrolado
Carregador de Baterias Microcontrolado
AN-08002
Arielton Trento
Alexandre Torchelsen Feldens
NDICE
INTRODUO..........................................................................................................................3
ALGUNS DADOS IMPORTANTES SOBRE BATERIAS CHUMBO CIDO......................3
TENSO DO ACUMULADOR................................................................................................4
CORRENTE DO ACUMULADOR...........................................................................................4
MTODO DE CARGA..............................................................................................................4
O CONVERSOR BUCK............................................................................................................6
ESPECIFICAES DO PROJETO...........................................................................................7
AQUISIO DE DADOS.........................................................................................................7
UTILIZAO DO CARREGADOR.......................................................................................10
CONCLUSO..........................................................................................................................10
APNDICES.............................................................................................................................11
(1) CIRCUITO DE CONTROLE.............................................................................................12
(2) CIRCUITO DE POTNCIA...............................................................................................13
(3) DESENHOS DAS PLACAS DE CONTROLE E DE POTNCIA....................................14
(4) DESENHOS EM 3D DAS PLACAS DE CIRCUITO IMPRESSO................................17
(5) IMAGENS REAIS DO CARREGADOR...........................................................................18
(6) DIMENSES DO DISSIPADOR PARA O FET E PARA O MBR COM TABELA DE
TEMPERATURA.....................................................................................................................23
(7) LISTA DE MATERIAIS.....................................................................................................25
(8) ALTERNATIVA DE ACIONAMENTO DA PORTA DO MOSFET...............................26
(9) CDIGO FONTE DO PROGRAMA PARA O PIC16F876A...........................................28
REFERNCIAS BIBLIOGRFICAS......................................................................................38
INTRODUO
Muitos carregadores de bateria tipo chumbo-cido disponveis no mercado
utilizam mtodos inadequados para carreg-las, resultando numa considervel reduo da
vida til das mesmas. Visando a otimizao de carga das baterias, que permite uma vida
til maior e um processo de suprimento de energia mais eficiente, e conseqentemente
uma melhor relao custo benefcio, que foi desenvolvido um carregador para baterias
de 12V e 24V, com capacidade de 12Ah at 160Ah, que respeita os processos e nveis de
tenso e corrente necessrios para uma carga eficaz.
O algoritmo utilizado mais eficiente para tal processo o de quatro estgios ou
mtodo duplo nvel de tenso, implementado em um microcontrolador PIC16F873A, da
Microchip, que utiliza a modulao atravs de largura de pulso - PWM - para controlar o
nvel de tenso e corrente fornecidos para a bateria, atravs de um conversor DC-DC tipo
buck. O microcontrolador foi programado utilizando-se o compilador PicBasicPro, da
Micro Engeneering Labs (Melabs), na linguagem Basic.
Sem a pretenso de ser um estudo abrangente sobre o assunto, este documento serve
de auxlio para projetistas, tcnicos, engenheiros e entusiastas da rea eletro-eletrnica. Foi
elaborado, em sua grande parte, por Arielton Trento, estagirio em engenharia eltrica,
complementado por Alexandre Torchelsen Feldens, tcnico em eletrnica, sendo
supervisionado por Paulo Koerbel Torres, gerente tcnico. Todos colaboradores da Toroid do
Brasil Indstria e Comrcio de Transformadores Ltda. Os autores no se responsabilizam por
danos causados devido ao funcionamento incorreto ou mal uso deste projeto.
TENSO DO ACUMULADOR
Durante a carga/descarga da bateria, a tenso em seus terminais deve ser
constantemente monitorada. Para tanto, deve-se levar em considerao alguns nveis de tenso
e seus respectivos estados durante um processo de carga (Tabela 1).
No estado de flutuao a bateria j est completamente carregada e sua funo
apenas compensar o processo de auto-descarga da bateria. Entretanto o estado mais crtico,
pois uma sobretenso ir diminuir a sua vida til e pode at inutiliz-la. Por outro lado, uma
tenso de flutuao muito baixa ir reduzir sua capacidade.
Para os valores de tenso de flutuao e de equalizao, a compensao de
temperatura de 0,33V para cada 10C acima de 25C e de +0,33V para cada 10C abaixo
de 25C.
Tabela 1: Nveis de tenso da bateria
Estados
Descarregado
Flutuao (normal)
Equalizao (recarga)
Sobretenso (sobrecarga)
CORRENTE DO ACUMULADOR
Analogamente aos estados de tenso, define-se tambm alguns nveis de corrente
(Tabela 2), que devem ser respeitados para um bom processo de carga e para no
comprometer a bateria.
Tabela 2: Nveis de corrente da bateria
Denominao da corrente
Equalizao (recarga)
Flutuao
Reteno
Valor
10% da capacidade nominal (Iblk)
1% da capacidade nominal (Itric)
Iblk/5 (Ioct)
MTODO DE CARGA
H diversos mtodos para carregar baterias, porm o algoritmo de quatro estados o
que alcana o melhor desempenho, pois utiliza a um corrente constante para recarregar
rapidamente as clulas chumbo-cido e tambm a carga com tenso constante para recuperar a
capacidade completa da bateria em aplicaes em que a bateria utilizada como supridora de
energia, como no caso dos no-breaks.
O CONVERSOR BUCK
Equao 1:
Tenso de
sada
Equao 2:
Razo Cclica
Uma das justificativas para a utilizao desta topologia de conversor devido que,
quando operando em modo contnuo (MMC), a tenso de sada (Vo) depende apenas da razo
cclica e no da carga. A razo cclica (D) definida como sendo o tempo de conduo da
chave (MOSFET) pelo perodo do PWM [1]:
O que define o modo de conduo do conversor buck a corrente que flui atravs do
indutor quando o diodo conduz. Quando a corrente no vai a zero diz-se que est operando em
modo de operao contnua. Caso contrrio, tem-se o modo de conduo descontnua. Via de
regra prefere-se operar no modo contnuo pelo fato da tenso de sada depender apenas da
razo cclica ou, mais precisamente, da largura de pulso. As figuras abaixo mostram as formas
de onda de ambos os modos de conduo [2]:
Equao 3: Clculo da
indutncia
Equao 4: Clculo da
capacitncia
ESPECIFICAES DO PROJETO
Vo= 15V
Vo= 30V
Io= 16A
Pout(mx): 480W
Frequncia de comutao: 20KHz
Vo (1% de Vo) = 300mV
IL (20% de Io) = 3,2A
Imin (baterias de 12Ah)= Itric= 120mA
Utilizando as equaes 3 e 4 para dimensionar o indutor e tambm o capacitor
utilizados no conversor buck e considerando que N igual a 6 para baterias de 12V e igual a
12 para baterias de 24V, chegamos nas seguintes equaes:
Lo= (6*2,18*0,5) / (20000*2*0,12)
Lo= 1,37mH
Co= 3,2 / (2*20000*0,3)
Co= 84,88uF
Estes so os valores mnimos, portanto deve-se escolher valores comerciais
AQUISIO DE DADOS
Como h parmetros que necessitam de constante verificao (corrente e tenso),
precisa-se adequar os sinais do carregador para que possam ser lidos e traduzidos pelo
microcontrolador. Existem diversas maneiras e circuitos capazes de realizar esta tarefa, mas
devido simplicidade optou-se pelo divisor resistivo.
Sabendo-se a tenso mxima na
sada do carregador, Voct de uma bateria de 24V (28,8V), e impondo uma margem de
segurana, considerando que a mxima ser aproximadamente 32V na sada, tendo em vista
que a tenso no pino do PIC no pode ultrapassar 5V, fixa-se o valor de um resistor e teremos
o valor do outro de acordo com a equao abaixo:
O valor comercial mais prximo e maior 3k9, portanto o valor de R ser 3,9K ohms.
No caso extremo, o conjunto dissipar 220mW, ento pode-se utilizar resistores de 1/4W e
quanto tolerncia no h exigncias, sabendo que o algoritmo implementado no
microcontrolador possui funes de calibrao para medidas mais exatas.
Para obter o valor da corrente na sada do carregador medido a queda de tenso na
associao dos resistores (0,166 ohms) na sada do conversor buck, atravs dos canais
analgico-digital do microcontrolador, e calculada levando em considerao o divisor
resistivo para adequao da tenso e utilizando a Lei de Ohm.
Vpic= 5*AD / 1023, onde AD (10 bits) o resultado da converso analgico-digital. (equao
6)
Vfonte= 6,7353*[5*AD / 1023], ou seja
Vfonte= 32,92*10e-3 AD (equao 7)
Para a corrente, em que a diferena nas leituras dos canais AD do PIC expressada
por AD, fica fcil encontrar qual a queda de tenso nos resistores da sada do carregador
atravs da equao abaixo:
Vfonte= Vr= 32,92*10e-3 AD
Para achar a corrente de sada, basta dividir Vr pelo valor da resistncia equivalente da
associao (Req), que equivale a 0,275 ohms vide anexo B.
Iout= Vr / Req
Iout= 32,92*10e-3 AD / 0,275
Iout= 119,71*10e-3 AD (equao 8)
No microcontrolador melhor trabalhar em cima do resultado da converso analgicodigital, portanto os valores das tenses e das correntes, que sero constantemente analisados,
devem ser convertidos no incio do cdigo para uma melhor eficincia. Por exemplo, se o
usurio ir carregar uma bateria de 12V e 40Ah, teremos os seguintes parmetros:
Descrio
Voff
Vfloat
Voct
Iblk
Itric
Ioct
Valores
6*1,75V= 10,5V
6*2,17V= 13,02V
6*2,38V= 14,28V
4A
400mA
800mA
Descrio
Voff
Vfloat
Voct
Iblk
Itric
Ioct
Valores
319 (AD)
395 (AD)
434 (AD)
33 (AD)
3 (AD)
7 (AD)
ATENO: Lembre-se que para a equao 8 utilizado a diferena na leitura dos dois
canais AD do microcontrolador.
UTILIZAO DO CARREGADOR
Primeiramente, deve-se conectar a bateria ao carregador, e logo aps lig-lo na
tomada, tanto 127V como 220V, pois a comutao feita automaticamente, ou seja, o
carregador bivolt automtico. A utilizao do mesmo auto-explicativa: inicialmente o
carregador ir solicitar a capacidade da bateria a ser carrregada, e posteriormente a tenso,
com duas opes de escolha, bateria de 12V ou de 24V. Feita a escolha, inicializar o
processo de recarga da bateria, exibindo o estgio em que se encontra, a tenso da bateria e a
corrente aplicada. A temperatura tambm medida durante todo o processo atravs do NTC,
porm no exibida no display. Todavia, se o usurio desconectar ou no utilizar o NTC a
recarga no ser inicializada, sendo, portanto, um componente essencial para o funcionamento
do carregador.
A calibrao de corrente e tenso se d de forma separada. Para efetuar a calibrao da
tenso, logo aps ligar o carregador, quando exibido Iniciando, o usurio deve manter
pressionado os botes UP e DOWN at aparecer no display a seguinte mensagem: "
Calibracao (V) ". Com o auxlio de um multmetro, a tenso da bateria deve ser medida e
ajustada no carregador, atravs dos botes UP e DOWN,
at que seja exibida no display a mesma tenso do multmetro. Por outro lado, para calibrar a
corrente, o carregador j deve estar em processo de recarga para que isto seja possvel. Antes
de iniciar, deve-se conectar o multmetro em srie com a bateria, com a opo de medir
corrente contnua selecionada no aparelho (lembre-se
de alterar tambm o cabo do multmetro para medio de corrente). O melhor momento para
fazer esta calibrao quando o carregador se encontra no estgio 2, carga rpida, onde a
corrente aplicada na bateria a mxima. Quando o carregador estiver aplicando uma corrente
de 10% da capacidade da bateria, o usurio deve manter pressionado os botes UP e DOWN
at aparecer no display " Calibracao (A) ". O prximo passo ajustar a corrente exibida no
display para o valor mais prximo do exibido no multmetro, e pressionar o boto OK.
Uma vez calibrado tenso e corrente,
no ser necessrio efetuar o mesmo procedimento para futuras utilizaes do carregador,
pois a calibrao armazenada na e2prom do microcontrolador.
CONCLUSO
O desenvolvimento deste carregador de baterias de chumbo-cido deixou claro a
complexidade da recarga das baterias e os diversos parmetros que devem ser monitorados e
respeitados a fim de se manter uma longa vida til e, conseqentemente, obter o mximo
custo/benefcio.
Ao contrrio da maioria dos carregadores disponveis no mercado, os nveis de
corrente e tenso so tratados de uma maneira crtica, justificando o bom desempenho da
recarga. No apndice 8, h uma reviso do circuito de potncia, com melhorias no
chaveamento, sendo altamente recomendvel utiliz-lo, ao invs do circuito original do
apndice 2.
Os componentes magnticos para este carregador de baterias podem ser adquiridos
junto a Toroid do Brasil. H conjuntos (transformador + indutor) especficos para cada
potncia, otimizando a montagem. Para comprar, entre em contato atravs do e-mail
falecom@toroid.com.br e indique as caractersticas desejadas, como tenses de sada e
correntes mxima e mnima das baterias.
10
APNDICES
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
Circuito de controle
Circuito de potncia
Desenhos das placas de controle e de potncia
Desenhos em 3D das placas de circuito impresso
Imagens reais do carregador
Dimenses do dissipador para o FET e para o MBR com tabela de temperatura
Lista de materiais
Alternativa de acionamento da prta do MOSFET
Cdigo Fonte do Programa para o PIC16F876A
11
(1) CIRCUITO
DE CONTROLE
CIRCUITO
DE CONTROLE
12
14
15
16
17
18
19
20
,
Ilustrao 7: Deve ser usado fios 4mm na entrada, indutor, sada, FET,
MBR
21
22
Tenso de operao
Corrente de operao
Dissipador
Transformador
Indutor
Ponte retificadora
Resistores
12V
6A
9C
1C
5C
8C
16C
24V
12A
24C
10C
16C
21C
55C
7A
15C
11C
11C
20C
31C
23
10,5A
18C
17C
23C
31C
53C
24
Descrio
Capacitores: 1000uF/35V, 220uF/50V
Capacitores: 4700uF/50V, 100uF/100V, 22pF
Capacitor 100nF
Diodo 1N4007
Conector KK 180 3 pinos (macho e fmea)
Conector KK 180 4 pinos (macho e fmea)
Conector KK 180 2 pinos (macho e fmea)
Contatos para conector KK
Rele 12V/10A
Borne 3 pinos
Borne 2 pinos
Chave tctil (push button)
BC337
BC548
IRF4905 ou IRF5305
LM7812
LM7805
Dissipador para LM78xx (27x16x30 mm)
Dissipador para FET e MBR (195x37x60 mm)
PIC16F876A
Display LCD 16x2
Soquete torneado 28 pinos (ESTREITO)
MBR1545
Cristal 10MHz
Ponte retificadora KBPC3508
Placa de fenolite 10x20
Placa de fenolite 10x15
Indutor 820uH/12A
Transformador do tipo toroidal 15V/1A + 36V/12A
Resistores: 470/10W, 10R, 1k, 2k, 2k2, 2k7, 6k8
Resistores: 680R, 3k9
Resistor 10k
Resistor 1R/20W
Fio 0.2mm
Fio 4mm
25
26
27
'______
' Main |
'
include "init.bas"
tst_inicial: 'verifica se necessrio comear pela carga lenta
call le_tensao
if( tensao < Voff ) then estagio=1
'comea em carga lenta
if( tensao >= Voff ) then estagio=2
'comea em carga rpida
tmr0ie=1
'Ativa interrupo do TMR0
MAIN_LOOP:
if( down == 0 and up == 0 ) then
'Entra na funo de calibrao de corrente
tmr0ie=0: pause 1000 'desativa interrupes
if( down == 0 and up == 0 ) then call calib_A: tmr0ie=1
endif
28
29
30
DEFINES.BAS
(rotina auxiliar)
'/////////////////////////////////////////////////////////////////////////////////
' DEFINES.BAS
'
' Contem os "defines" e "symbols" utilizados para o software do carregador de
' baterias, do tipo chumbo-cido, da TOROID DO BRASIL.
'/////////////////////////////////////////////////////////////////////////////////
SYMBOL DESCHARGE= PORTC.1
'Descarrega capacitores da sada do carregador
SYMBOL OK= PORTB.0
'Boto OK
SYMBOL UP= PORTB.2
'Boto para cima
SYMBOL DOWN= PORTB.1
'Boto para baixo
SYMBOL BIVOLT= PORTB.5
'Rele 127V / 220V
' ---------------------------------------------'*** AD ***
Define
ADC_BITS
10
' Set number of bits in result
Define
ADC_CLOCK
3
' Set clock source (3=rc)
Define
ADC_SAMPLEUS
100
' Set sampling time in uS
' ---------------------------------------------'*** LCD ***
DEFINE LCD_BITS
4
' 4-bit Interface
Define LCD_DBIT
4
' dados comeam no bit4
Define
LCD_DREG
PORTC ' Porta de dados
Define LCD_RSREG
PORTc ' Porta do RS
Define
LCD_EREG
PORTc ' Porta do enable
Define LCD_RSBIT
0
Define LCD_EBIT
3
DEFINE LCD_LINES
2
Low PORTC.1
31
INIT.BAS
(rotina auxiliar)
'///////////////////////////////////////////////////////////////////////////////
' INIT.BAS
'
' Possui as mensagens de apresentao e configurao do carregador de baterias,
' do tipo chumbo-cido, da TOROID DO BRASIL.
'///////////////////////////////////////////////////////////////////////////////
'
'
'
'
'
'
'
'
'while(1)
'call calc_I 'calcula Iblk, Itric e Ioct em funo da capacidade da bateria
Lcdout $fe, 1
'limpa LCD
Lcdout $fe,$2, "tric=", dec Itric, " blk=", dec Ibulk
Lcdout $fe,$C0, "oct= ", dec Ioct, " ", dec cal_Iout
pause 5000
Lcdout $fe, 1
'limpa LCD
Lcdout $fe,$2, "off=", dec Voff, " flt=", dec Vfloat
Lcdout $fe,$C0, "oct= ", dec Voct, " ", dec cal_Vout
pause 5000
'
if( UP == 0 and cap != 255 ) then cap=cap+1 'aumenta
'
if( DOWN == 0 and cap != 0 ) then cap=cap-1 'diminui
'pause 100
'wend
pause 150: Lcdout $fe,$C0, " ......
"
pause 150: Lcdout $fe,$C0, " .......
"
if( down == 0 and up == 0 ) then call calib_V 'Entra na funo de calibrao de tenso
call temperatura 'faz 1 leitura da temperatura
pause 150: Lcdout $fe,$C0, " ......... "
32
MATH.BAS
(rotina auxiliar)
'/////////////////////////////////////////////////////////////////////////////////
' MATH.BAS
'
' Contem as rotinas de multiplicao, de diviso e de delay utilizados para o
' software do carregador de baterias, do tipo chumbo-cido, da TOROID DO BRASIL.
'/////////////////////////////////////////////////////////////////////////////////
MULTIPLICA:
'Multiplica um inteiro por um float ( CH*(resp,respB) ) e guarda resultado
'em resp e respB. CH=inteiro (resp,respB)=float respB possui 2 digitos (mx. 99)
'OBS.: CH no pode passar de 1337 e resp*CH no pode ultrapassar 16bits (65536)
keepB= respB;
if( CH == 0 ) then resp=0: respB=0: return
resp= resp*CH
while( CH != 1 )
respB= respB+keepB: resp= resp + (respB/100)
respB= respB - ((respB/100)*100): CH= CH-1;
wend
if( (aprox == 1) and (respB > 50) ) then resp= resp+1 'faz aproximaao p/ o inteiro +
prximo
return
'
respB= (respB/2)*CH
'
resp= (resp*CH) + ((respB/100)*2)
'
respB= respB - ((respB/100)*100): respB= respB*2
'
resp= resp + respB/100
'
respB= respB - (respB/100)*100
'
return
DIVIDE:
'Divide dois numeros (A por B) e guarda resultado em resp e respB.
'NECESSRIO DECLARAR: A, B, CH, resp, respB, temp (como word);
'invert, keepinv (como bit);
'INICIALIZAR: keep= 0: keepinv=0
RESP=0: respB= 0: invert=0
if a==0 or b==0 then return
IF( A < B ) THEN invert=1: temp= A: A= B: B= temp 'inverte numer. e denomin.
WHILE( A >= B )
A= A - B
resp= resp + 1
WEND
IF A == 0 AND invert == 0 THEN RETURN
IF( A == 0 ) THEN A= 1: B= resp: resp= 0: invert= 0
call calc_mdc
if( A <= 653 ) then respB= A*100 / B
'2 casa depois da virgula arredondada
if( A > 653 ) then
'se chamar novamente esta subrotina variveis sero sobreescritas!!!!
if( err == 1 )then
if( A <= 6553 )then respB= (A*10)/B: respB= 10*respB
if( A > 6553 )then resp=A/B : respB=0 'ignora casas depois da virg.
err=0: goto continue
endif
err= err+1
keep= resp: keepinv= invert
call divide': respB= resp*10 + respB
err=0: 'resp= keep + resp + respB/100
resp= keep + resp + respB/100
if( respb == 100 ) then respb=0
invert= keepinv
endif
continue:
if( invert == 1 ) THEN 'foi invertido numerador c denominador
respB= 10000 / ((resp*100) + respB): resp= 0
if( respB == 100 ) then resp=1: respB=0
endif
RETURN
calc_mdc: 'Funcao que calcula o MDC entre dois n
'Declarar as seguintes variveis: cont var word: mdc=1 var word
for cont = 1 to A
if( (A//cont == 0) and (B//cont == 0) ) then mdc = cont;
next cont
A= A/mdc: B= B/mdc
RETURN
33
QUATRO_ESTAGIOS.BAS
(rotina auxiliar)
'///////////////////////////////////////////////////////////////////////////////
' QUATRO_ESTAGIOS.BAS
'
' Contm a implementao do algoritmo responsvel pelo controle do carregador de
' baterias, do tipo chumbo cido, da TOROID DO BRASIL.
'///////////////////////////////////////////////////////////////////////////////
carga_lenta:
if( corrente < Itric+c0 ) then c0=0: duty= duty+1
if( corrente > Itric+c0 and duty != 1 ) then duty= duty-1
if( tensao > Voff ) then estagio=2 'altera p estgio de carga rpida
return
carga_rapida:
if( corrente < Ibulk ) then duty= duty+1
if( corrente > Ibulk and duty != 0 ) then duty= duty-1
if( tensao > (Voct-6) ) then estagio=3 'altera para estgio de sobrecarga (Voct-0,2V)
return
sobrecarga:
if( tensao > Voct and duty != 0 ) then duty= duty-1
if( (corrente < Ioct) and (i_flag != 0) ) then estagio=4
return
carga_flutuante:
if( tensao < Vfloat ) then duty= duty+1
if( tensao > Vfloat and duty != 0 ) then duty= duty-1
return
34
SUBROTINAS.BAS
(rotina axiliar)
'///////////////////////////////////////////////////////////////////////////////
' SUBROTINAS.BAS
'
' Possui as subrotinas para medio de tenso e de corrente, leitura da tempera' tura, alm da rotina de erro e da rotina que evita um excesso de corrente na
' sada do carregador de baterias, do tipo chumbo cido, da TOROID DO BRASIL.
'///////////////////////////////////////////////////////////////////////////////
le_tensao:
intcont=0: tensao=0: HPWM 1,0,FREQ 'PWM off
DESCHARGE=1: pause 800: DESCHARGE=0 'Descarrega capacitores p/ leitura mais precisa
canal= 0: call read_ad: tensao= CH
hpwm 1, duty, freq: pause 800 'religa PWM
return
le_corrente:
corrente=0': filtro= 20 'aumenta o n de aquisies p/ tirar a mdia
call read_2ad: corrente= CH
if( corrente < CH2 ) then corrente= 0
if( corrente != 0 ) then corrente= corrente - CH2 ' o delta_AD
if( corrente > Itric+3 ) then i_flag=1
'muda do estado inicial para carregando
if( (i_flag == 1) and (corrente < Itric) and (estagio != 4) ) then i_flag=0
if( i_flag == 2 and duty > 90 ) then duty=37: iold_flag=2: i_flag=0 'Bateria foi
desconectada no estagio 1
return
read_ad: 'l AD (deve-se indicar canal) e guarda a mdia das converses em CH
conta=0: oldvalue=0: CH=0
while( conta != filtro )
conta= conta+1
Adcin canal, oldvalue: pauseus 30
CH= CH + oldvalue
wend
CH= CH/filtro: return
read_2ad: 'l dois canais AD (0 e 1) e guarda a mdia das converses em CH
conta=0: oldvalue=0: oldvalueT=0: CH=0: CH2=0
while( conta != filtro )
conta= conta+1
Adcin 1, oldvalue: pauseus 30 'corrente
Adcin 0, oldvalueT: pauseus 30 'tensao
CH= CH + oldvalue 'soma das correntes
CH2= CH2 + oldvalueT 'soma das tenses
wend
CH= CH/filtro: CH2= CH2/filtro: return
'
temperatura:
'mede temperatura
'Lcdout $fe, 1: Lcdout $fe,$2, " Le temperatura ": pause 800
canal= 2: call read_ad: temper= CH 'l NTC
if( temper < 250 ) then 'temperatura prximo a zero ou NTC ausente
aux_temper=0: pauseUs 500
canal= 2: call read_ad: temper= CH 'l NTC novamente p/ confirmao
if( temper < 150 ) then erro_flag=1: goto erro
endif
aux_temper= ( (temper*50)/102 ) * 100
if( temper < 669 ) then temper= ( (aux_temper-8911)/532 ) - 5: goto compensa_temp
'temperaturas at 40C
if( temper < 820 ) then temper= ( (aux_temper-30987)/370 ) + 35: goto compensa_temp
'temperaturas entre 41C e 60C
if( temper < 910 ) then temper= ( (aux_temper-39106)/219 ) + 55: goto compensa_temp
'temperaturas entre 61C e 80C
temper= ( (aux_temper-44104)/104 ) + 75 'temperaturas acima de 80C
goto compensa_temp
'
compensa_temp:
A= 33*cal_Vout: B= 3365:call divide: CH=comp_t: aprox=1: call multiplica: aprox=0
if( diminuiu == 1 ) then Vfloat= Vfloat+resp: Voct= Voct+resp: limite= limite - 10*comp_t
if( diminuiu == 0 ) then Vfloat= Vfloat-resp: Voct= Voct-resp: limite= limite + 10*comp_t
diminuiu=0: return
'
delay_400m: 'aguarda 400ms
start_delay=1
while( delay != 15 ) 'aguarda 393,2ms
wend
start_delay=0: delay=0
35
return
'
ERRO:
HPWM 1,0,FREQ 'PWM off
tmr0ie=0
'Desativa interrupo
'DESCHARGE= 1 'Desconecta fonte da bateria
Lcdout $fe, 1: LCDOUT $fe,$2, "ERRO !!!": Pause 3000
if( erro_flag == 1 ) then LCDOUT $fe,$C0,"NTC desconectado": Pause 3000
if( erro_flag == 2 ) then LCDOUT $fe,$2, "
Bateria": LCDOUT $fe,$C0, " Desconectada":
Pause 3000
if( erro_flag == 3 ) then LCDOUT $fe,$2, " Iout muito": LCDOUT $fe,$C0, "alta.Verifique":
Pause 3000: duty=54
LCDOUT $fe,$2, " Pressione OK " : LCDOUT $fe,$C0, " para continuar "
i_flag= iold_flag
while( OK == 1 )
wend
goto tst_inicial
36
VARIAVEIS.BAS
(rotina auxiliar)
'///////////////////////////////////////////////////////////////////////////////
' VARIAVEIS.BAS
'
' Contem a declarao das variveis utilizadas para o software do carregador de
' baterias, do tipo chumbo-cido, da TOROID DO BRASIL.
'///////////////////////////////////////////////////////////////////////////////
37
REFERNCIAS
[1] LAZZARIN, Telles Brunelli, Estudo e implementao de carregador de baterias com
uma tcnica de avaliao de sua vida til (Tese de mestrado)
[2] POMILIO, Jos Antenor, Eletrnica de Potncia. [Disponvel on-line]
URL:http://www.dsce.fee.unicamp.br/~antenor/pdffiles/eltpot/cap5.pdf
[3] INSTRUMENT, Texas, U-510 Using the bq2031 to Charge Lead-Acid Batteries
[Disponvel on-line] URL:
http://focus.ti.com/analog/docs/techdocsabstract.tsp?familyId=394&abstractName=slua017
[4]BARBI, Ivo, Eletrnica de Potncia: Projetos de fontes chaveadas [edio do
autor]{referncia do apndice 8}
[5] MELABS, Micro Engeneering, PIC BASIC Pro Compiler Technical Support
[Disponvel on-line] URL: http://www.melabs.com/doclist.htm#Pro
[6] MICROCHIP, PIC 16F87XA Datasheet
[Disponvel on-line] URL: http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
38