www.mikrocontroller.net

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

Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Kermit (Gast)
Datum: 03.07.2009 14:37

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.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 03.07.2009 14:43

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.
Autor: Michael U. (amiga)
Datum: 03.07.2009 14:47

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
Autor: Peter (Gast)
Datum: 03.07.2009 14:51

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?
Autor: Kermit (Gast)
Datum: 03.07.2009 21:48

@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_...
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.
Autor: Benedikt K. (benedikt) (Moderator)
Datum: 03.07.2009 21:54

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.
Autor: Kermit (Gast)
Datum: 04.07.2009 09:26

@Benedikt: Danke, war ein Denkfehler meinerseits.

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate

Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.
Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net