Forum: Mikrocontroller und Digitale Elektronik stromsparender ADC-Einsatz (für Batteriebetrieb)


von Kermit (Gast)


Lesenswert?

Hallo,

ich möchte in einem KFZ Innen- und Außentemperatur (mit einem LM335), 
sowie Boardspannung messen mit den ADCs eines Atmegas. Das ganze soll 
über die Zeit möglichst Batterieschonend sein (uA Bereich).
Ich würde den Mikrocontroller in den Sleep-Mode setzen und nur 1-2mal 
pro Minute aufwachen lassen, um eine (bzw. 256 ADC-Wandlungen) Messung 
durchzuführen

Die LM335 sind mit einem 1K Vorwiderstand als Spannungsteiler aufgebaut. 
Ebenso habe ich einen Spannungsteiler für die 
Batteriespannungsüberwachung. In Summe fließen da sicher ständig einige 
10mA, was mir zuviel ist.
Wie kann ich es realisieren, dass der Strom nur bei Bedarf fließt? Wenn 
ich einen Schalt-Transistor nutzen würde, so hätte ich dort auch einen 
Spannungsfall, was das Messergebnis am ADC verfälscht. Gibt es 
vielleicht irgendwelche kleine Relais (müssen ja keine großen Ströme 
schalten können), die ich direkt ab einem Mikrocontroller Ausgang 
betreiben könnte? Oder wie macht man das i.d.R.? Es gibt ja auch 
batteriebetriebene Digitalthermometer. Die können ja auch nicht die 
ganze Zeit 10mA fließen lassen.

von Benedikt K. (benedikt)


Lesenswert?

Kermit schrieb:
> Wie kann ich es realisieren, dass der Strom nur bei Bedarf fließt?

Den Widerstand über einen Portpin an die Betriebsspannung schalten. Da 
der Messwert nahezu unabhängig vom Strom ist, macht der kleine 
Spannungsabfall am Portpin keinen großen Unterschied.

Den Spannungsteiler für die Batteriespannung kannst du recht hochohmig 
auslegen (irgendwas im 100kOhm Bereich). Durch einen Kondensator am ACC 
Pin erhält man so auch gleich noch einen Tiefpassfilter der die 
Störungen wegfiltert und vor Überspannungsspitzen schützt.

PS: Mach dir nicht zuviel Arbeit, selbst wenn die Schaltung 10mA 
verbraucht reicht eine 50Ah Batterie fast 1 Jahr.

von Michael U. (amiga)


Lesenswert?

Hallo,

wenn es ein AVR ist, brauchst Du außen nichts für die Batteriespannung.
ARef intern auf Ub setzen und die BandGap-Spannung intern messen, dann 
umrechnen.

Den LM335 an einen Portpin hängen und komplett abschalten.

Alternativ auch den TMP36GS mal anschauen, der kommt ohne negative 
Spannung bis unter -40 Grad.

Gruß aus Berlin
Michael

von Peter (Gast)


Lesenswert?

Ob der µC jetzt schläft oder nicht macht wohl bei einer Autobatterie 
recht wenig aus. Selbst bei den 10mA hätte ich kein schlechtest gewissen 
weil das auch ohne Problem 1/2Jahr laufen kann ohne das etwas leer wird.

Aber die Frage ist wohin die 10mA fliessen, schaltest du den ADC auch ab 
wenn du nichts misst? (das könnte zumindest 1mA erklären). Wie erzeugt 
du die 5V für den Atmel?

von Kermit (Gast)


Lesenswert?

@Benedikt: Wieso macht der Spannungsfall am Portpin keinen großen 
Unterschied? 0,01V sind ein Grad. Wenn ich (im Test) nicht genau 5,00V 
einstelle, bin ich direkt ein paar Grad daneben? Ich hoffe der Wert 
eines Spannungsreglers schwankt mit der Temperatur nicht.

@Michael: Mit Batteriespannung meine ich die 12V Bordspannung und nicht 
die 5V Spannungsversorgung des Mikrocontrollers. Aber der Ansatz 
fasziniert mich: Kann ich damit dynamisch die genaue Referebzspannung 
für den ADC bestimmen? Bandgap ist ja eine interne Spannung von 1,X V? 
Ist die über die Temperatur relativ konstant? Die muss ich dann einfach 
mit einem ADC messen und "rückwärts" die Referenzspannung berechnen? 
Dann muss ich mir keine Gedanken um eine möglichst konstante 
Eingangsspannung und entsprechend hochwertige Spannungsregler machen.

@Peter: Wie ich die 5V erzeuge, ist mir noch nicht ganz klar. Vielleicht 
übernehme ich diese Spannungsversorgung, die soll einen guten 
Wirkungsgrad haben: http://www.blafusel.de/obd/files/obd2_lcd-c.pdf
Im Groben werde ich mich wohl an diese Schaltung orientieren. Möchte das 
gleiche machen nur Opensource und spezieller. Die Grundfunktion ist 
schon gegeben. Jetzt mache ich mir Gedanken um den Sleep-Mode, wenn der 
PKW aus ist. Auch will ich noch eine Uhr mit 32,768kHz Quarz einbauen. 
Diese weckt dann auch regelmäßig aus dem Sleepmode. Hier habe ich eine 
gute Referenz gefunden: 
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC#Echtzeituhr_mit_Uhrenquarz
Allein mein LCD braucht schon einige mA. Ich überlege gerade, wie ich 
das Energiemanagement vernünftig hinkriege.


BTW: Ich habe nur eine 25Ah Batterie im Auto und die ist nicht mehr die 
frischste. Es geht auch nicht darum, wie lange es theoretisch braucht, 
bis die Batterie leer ist, sondern wie lange die Batterie den Anlasser 
noch betätigen kann. So eine blöde rote LED-Digitalspannungsanzeige, die 
eigentlich automatisch hätte ausgehen sollen, hat mir über ein 
Wochenende schon mal die Batterie platt gemacht, dass ich nicht mehr 
starten konnte.

von Benedikt K. (benedikt)


Lesenswert?

Kermit schrieb:
> @Benedikt: Wieso macht der Spannungsfall am Portpin keinen großen
> Unterschied? 0,01V sind ein Grad. Wenn ich (im Test) nicht genau 5,00V
> einstelle, bin ich direkt ein paar Grad daneben?

Schau mal ins Datenblatt vom LM335: Dieser verhält sich wie eine 
Z-Diode, dessen Spannung proportional der Temperatur ist. Das IC wird 
also über einen Strom versorgt, und dieser darf zwischen 0,5 und 5mA 
liegen. Bei 1k an 5V fließen etwa 2mA (das IC hat etwa 3V bei 25°C). 
Wenn die Spannung nun zwischen 4V und 5V schwankt, schwankt der Strom 
zwischen 1 und 2mA, was aber innerhalb der Specs liegt.

von Kermit (Gast)


Lesenswert?

@Benedikt: Danke, war ein Denkfehler meinerseits.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.