www.mikrocontroller.net

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


Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_...
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:

Bewertung
0 lesenswert
nicht 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.

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt: Danke, war ein Denkfehler meinerseits.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail ü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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.