Mäta batteri spänning med Pic16f628A

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
m_josefsson74
Inlägg: 72
Blev medlem: 22 juni 2003, 23:00:56
Ort: Torsås

Mäta batteri spänning med Pic16f628A

Inlägg av m_josefsson74 »

Hej!
Jag har byggt en digital klocka med en PIC16f628A och LCD.
Jag skulle vilja kunna kolla batteri spänningen på något sätt hur?
Alltså om den är under ett visst värde så ska han larma om att det är dags att byta batteri.
Hur gör man detta på ett smart sätt, jag har sett sådana lösningar på någon sida men jag inte hitta det!
MVH
Michaël
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Det bästa hade varit om '628 hade en ADC, men så är inte fallet.
Då kunde du bara lagt en spänningdelning över batteripolerna och läst av med ADCn.
'628 har däremot en komparator som du kan dra nytta av. Lägg en (svag) spänningsdelning över batteriet och kalibrera in så att den varnar om nivån är under ett gränsvärde. Du kan t.om. få flera olika status m.h.a. '628ans interna 16-stegs spänningsreferens.
m_josefsson74
Inlägg: 72
Blev medlem: 22 juni 2003, 23:00:56
Ort: Torsås

Inlägg av m_josefsson74 »

Jag antar att du menar CMCON.
Det finns ju en voltage referens module den borde man ju kunna ställa till ett värde som blir ena ingången till komparatorn och spänningsdelaren den andra?
Jag har sökt och läst förtvivlat i databladet hu dessa skall intregreras men hittar inget
m_josefsson74
Inlägg: 72
Blev medlem: 22 juni 2003, 23:00:56
Ort: Torsås

Inlägg av m_josefsson74 »

Jo det gick, har precis lyckats
Tack
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Grattis :)
m_josefsson74
Inlägg: 72
Blev medlem: 22 juni 2003, 23:00:56
Ort: Torsås

Inlägg av m_josefsson74 »

Det blir ju ett problem!!!
Spänningsdelaren kommer ju att dra en massa ström väl???
Batteriet är ju på 9V och jag behöver komma ner i c:a 3-3.5 V
det blir ju rätt så stora motstånd som kommer dra en hel del ström eller tänker jag fel?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Du bestämmer själv motstånden.
Det är klart att en spänningsdelare med två 20-ohmare drar slut på batteriet.
Du bör snarare komma upp i Mohm-området för att få en rimlig ström genom din spänningsdelare. Sen bör du lågpassfiltrera med en liten konding för att få bort störningar och stabilisera värdet.
Pass på kondingen, du måste räkna in dess interna resistans i spänningsdelningen. Det är inte lätt att bygga strömsnåla saker!
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Du gör en spänningdelare med två motstånd, som har sagt här.

Men det finns flera "problem".

Komparatorernas interna läckström (0.5 uA) kommer att ge stora fel om man använder motstånd i "Mohm-området" till spänningsdelaren.

Man kan ansluta det "nedre" motståndet (det som skulle ha kopplats till jord) till en extra pinne på 628'an. Sedan sätter man pinnen till utgång och "låg" när man skall "mäta" och till "high-Z" annars. Problemet då är att man får 9V (förvisso genom ett motstånd) direkt till PIC pinnen, vilket inte är speciallt bra.

En annan metod är att ha en spänningdelare med motstånd i "Mohm-området" som ger en spänning som buffras i en opamp. Opampen drar en del ström, men den behöver ju inte vara påslagen hela tiden, bara när PICen skall "mäta". Den kan man slå av/på genom att mata den från en PIC pinne. Man får välja en opamp som tål inspänning även när den av avslagen.

Detta att "övervaka" batterispänningen är en vanlig fråga, leta efter "nanoWatt" på www.microchip.com så hittar du flera dokument som handlar om att bygga strömsnåla prylar.

Ytterligare en sak är ju också att skriva sin kod så att den blir så strömsnål som möjligt, t.ex att inte "köra" processorn i onödan eller onödigt fort. Det förlänger ju även batterilivslängden, vilket ju inte övervakningen i sig gör... :-)

För övrigt är inte F628 helt optimal när det gäller att "köra snålt", någon av processorerna där man dynamsikt från koden kan "växla ner" för att spara effekt är bättre på detta.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Bara en liten detalj: 9 V kommer inte att ligga på PICens I/O om man sätter den i tri-state med spänningsdelaren. De interna klamp-dioderna kommer hålla spänningen strax över matningspänningen på PICen (5 V?), så reseterande (4 V) kommer fortfarande att ligga över motståndet i spänningsdelningen. Men man har åtminstone halverat effektförbrukningen.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Nej, inte *den* pinnen, utan komp ingången !

(Eller förretsen, *båda* pinnarna, med olika mycket resistans mellan 9V och pinnen...)

Komp-ingången kommer att vara ansluten till 9V via ett motstånd, eller ?

Klampdioderna skall *aldrig* användas *medvetet* i en design, de finns där som ett sista skydd, ungefär som en "propp" ifall någon omogen unge får för sig att bygga en "Poff"... :-)

Det finns data i databladet hur mycket man kan överskrida Vdd på en ingång, jag tror att det brukar vara Vdd + 0.3V eller liknande.

Med en snabb schottky med låg back-läckström, kan man i och för sig fixa detta. Man måste bara kolla eventuella nya läckströmmar som dels kan dra ur batteriet, dels kan störa "mätningen" med komparatorn.

Jo, jag vet att det finns lösningar där man lägger 220 V via ett 10 Mohms motstånd direkt in på en pinne, men men... Så ska man inte göra.

Jag tror att en extern opamp som PICen sätter på/av (genom att mata den direkt från en pinne) är den snyggaste lösningen.

Samt, så klart (och kanske viktigast !) att skriva koden så strömsnålt som möjligt !
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

"Jo, jag vet att det finns lösningar där man lägger 220 V via ett 10 Mohms motstånd direkt in på en pinne, men men... Så ska man inte göra."

Det går visst alldeles utmärkt. Microship rekommenderar själv detta i sina appnotes. Så länge man har koll på vilken ström det gäller tycker jag det är helt åkej att dra nytta av klamp-dioderna.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ja sa inte att det inte *kan* fungera under en tid, jag sa att man inte *ska* göra så. :-)

Felen/misstagen i MC's appnotes är oräknerliga.
Just detta "misstag" är välkänt och är en riktigt fuling.

Hur som helst, det är respektive datablad till varje PIC modell som gäller.
I t.ex det för F628A står det under "Absolute Maximum Ratings" :

"Voltage on all other pins with respect to VSS .......-0.3V to VDD + 0.3V"

Och som en note under "Absolute Maximum Ratings" står det :

"Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability."

Och under normal drift ("Standard Operating Conditions" i databladen), gäller att Vdd inte ska överskridas alls.

Klampdioderna är skydd för extremfall och ska inte användas under normal drift.

För detektering av nollgenomångar finns det utmärkta AC-optokopplare som fungerar utmärkt till just det.
Skriv svar