Temperatur erfassen Atmega32 mit LM335

Tipfix

Neues Mitglied
08. Sep. 2008
54
0
0
Sprachen
Hallo zusammen:)

Habe vor mit einem LM335 die Temp zu messen. Dieser hängt jetzt am ADC0 vom atmega32 und gibt auch brav Analogwerte aus. Was ich allerdings nicht hin bekomme aus diesen Werten die Temp. abzuleiten:( . Habe mal eine Tabelle gemacht die angibt was so bei welcher Temp raus kommt.

Kann mal bitte jemand gucken?

Achso, noch vergessen, ich mach das ganze unter Bascom.
 

Anhänge

  • mess-lm335.txt
    545 Bytes · Aufrufe: 125
Hallo Tipfix,

die Werte sehen für mich soweit in Ordnung aus. Deine Referenzspannung für den ADC müsste so bei etwas unter 4,5V liegen, stimmt das?

Der Temperatursensor liefert bei 25°C eine Spannung von ca. 3,0V und hat ein lineare Spannung=f(Temperatur) Kennlinie, die Steigung ist 10mV/°C.

Bei deiner Messreihe von 0°C bis 30°C macht das also insgesamt eine Spannungsdifferenz von 300mV aus. Das sieht also richtig aus. Die ADC-Werte sind natürlich abhängig von der Referenzspannung, die nach deiner Messreihe wie gesagt bei knapp 4,5V liegen müsste. Verwendest du VCC=5V als Referenzspannung, stimmt da irgendetwas nicht. Wo du noch drauf achten musst, der Strom (Reverse-Current) durch den Temperatursensor sollte bei 1mA liegen, bei diesem Strom ist er nämlich kalibriert.

Grüße
Dirk
 
Danke für die Antwort

Stimmt alles. Das berechnen ist eigentlich ganz einfach. Ich nehme den aktuellen ADC-den ADC bei Null Grad und schon passt das. Aber mal was anderes, der ADC schwankt ganz schön bis maximal -6 was natürlich auch gleich 6 Grad unterschied ausmacht. Kann man da was tun?

Andreas
 
Hallo Andreas,

du meinst "-6" im ADC-Ergenis? Der ADC hat natürlich Fehlergrenzen die nicht bei Null liegen, du kannst ja mal in das Datenblatt des Mikrocontrollers im Kapitel Analog Digital Converter sehen (Stichpunkte sind hier "Integral Non-Linearity" und "Absolute Accuracy").

Was du versuchen könntest, um das Ergebnis zu verbessern:
  • Den Referenzspannungseingang des ADC durch L und C "entstören" (siehe Datenblatt: Analog Noise Canceling)
  • Messung mehrfach wiederholen und Mittelwert bilden (am besten 2hoch n-mal wiederholen und das Ergebnis summieren, danach n-mal nach rechts shiften, so brauchst du keine Division und sparst Rechenzeit und ggf. -code).
Grüße
Dirk

EDIT: Achso, natürlich noch für eine stabile Referenzspannung sorgen.
 
Hallo

Messung mehrfach wiederholen und Mittelwert bilden (am besten 2hoch n-mal wiederholen und das Ergebnis summieren, danach n-mal nach rechts shiften, so brauchst du keine Division und sparst Rechenzeit und ggf. -code).

Hab ich nicht ganz verstanden. Ich lass Ihn jetz zur Probe 15 mal die Werte erfassen und summieren dann mach ich aber durch 6 weil das mit n-mal nach rechts shiften hab ich nicht verstanden.:( Schwankt aber immer noch um die zwei Grad.
 
Du kannst es auch mit einer "normalen" Division machen.

Wenn man ein Register (eine Variable) einmal bitweise nach rechts schiebt und im höherwertigen Bit eine Null nachschiebt, entspricht dies einer Division durch 2. Schiebt (shiftet) man zweimal nach rechts ist das eine Division durch 4, dreimal eine Division durch 8 und so weiter. Bascom hat bestimmt auch einen shift Befehl. Der Vorteil ist hierbei, dass shiften sehr schnell geht und wenig code benötigt. Aber wie gesagt, eine "normale" Division geht natürlich auch und hat die selbe Wirkung :) (Übrigens: shiften nach links mit Null beim niederwertigen Bit nachschieben, entspricht dann äquivalent der Multiplikation mit zwei)

Grüße,
Dirk

EDIT: Vielleicht ist die Referenzspannung noch nicht "sauber" genug. Du misst aber hier sowieso schon in der Nähe der Fehlergrenzen des ADC, da wird weiteres Entstören nicht mehr viel helfen.
Du könntest noch die Referenzspannung knapp über die zu erwartende höchste Messspannung legen, also vielleicht bei bei 3,5V, dann erhältst du noch etwas mehr Auflösung (verwende hierfür ggf. eine externe Referenzspannungsquelle). Eine höhere Auflösung erhältst du auch durch differtentielles Messen in Verbindung mit Verstärkung.
 
Hallo

Also soweit bin ich zufrieden. Ein kleines Problem hab ich noch, wie kann ich negative Zahlen darstellen? Wie gesagt bin in Bascom unterwegs.:eek:

Danke Andreas
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)