Monitor lipolek Re: Mereni baterie
Pavel Hudeček
edizon na seznam.cz
Čtvrtek Srpen 4 13:21:09 CEST 2011
Vytknul bych tomu snad jen hrozně malé hodnoty v děličích. Používat to já,
tak mě v noci probudí pípání, až baterku vybijou ty děliče.
R1-R5 bych vynáslobil nejmíň 100.
PH
From: "RV" <vicek.radek na cpost.cz>
> Vzhledem k tomu, ze se kolegum (co jsem jim to auto pujcil) podarilo
> vytlouct jednu lipolku na 2.5V/cl jsem vcera sednul a spachal toto viz
> priloha - tak jen kdyby to nekdo potreboval
>
> FW je take trivialni - je napsanej jen pro dvouclanek (pro triclanek
> nebo univerzal by se muselo nejdriv otestovat kolik je pripojenejch
> clanku a trochu zmenit delice/jinak pocitat)
>
> az budu mit cas tak to dodelam s tim, ze pocitam, ze vypinaci napeti
> pujde ulozit nejakym switchem
>
> psano v Mikroe mikroPascalu pro PIC12F683
>
> program limon;
>
> var
> bat0,bat1,bat2 :word;
> alarm :boolean;
>
> procedure rvAlarm;
> begin
> SetBit(GPIO,4); //nahodim piezo
> SetBit(GPIO,5); //nahodim LED
> Delay_ms(250);
>
> ClearBit(GPIO,4);
> ClearBit(GPIO,5);
> Delay_ms(250);
> end;
>
> begin
> GPIO:=0;
> CMCON0 :=%00000111; //vypnout komparatory
> TRISIO:=%00001111;
> ADCON0:=%10001101; //ref.=Vdd
> ANSEL :=%00110111;
>
> alarm:=false;
> rvAlarm; //blik-pip ze to najelo
> rvAlarm;
>
> // tak ted jedeme do hlavni smycky
> while not alarm do //merim dokud neni alarm
> begin
> bat0:=Adc_Read(0); //zmerim prvni clanek
> bat0:=word(bat0 shr 1); //vydelim dvema
> if bat0<360 then alarm:=true; //porovnam na cca 3.4V
>
> bat1:=Adc_Read(1); //zmerim druhej clanek
> bat1:=bat1-bat0; //odectu od nej prvni
> if bat1<360 then alarm:=true; /porovnam na cca 3.4V
> end;
>
> while true do //spadnul jsem do alarmu
> begin
> rvAlarm; //blikam pipam do vypnuti
> end;
> end.
Další informace o konferenci Hw-list