ADC Temperatur-Messung am T-Sensor LM335

OP #709313
Lesenswert?

Hi,

ich versuche die Temperatur mit Hilfe von LM335-Baustein am ADC zu 
messen aber bekomme ganz falsche Ergebnisse.

mit einem Timer messe ich alle 20 us den Wert am ADC und speichere es in 
einem Array.
Wenn ich mir die Werte anschaue:

48780
48784
48791
46747
...

Das Problem ist, es ergibt eine Temperatur von ca. 39 °C
( Vref: 3,3 V; ADC: 12 Bit -> 48780 *3,3 V / 2^12 ~ 39)
und das kann einfach nicht sein. Im zimmer kann es nicht wärmer als 25°C 
sein.

Wenn ich die Gleichung ansehe, dann fällt mir auf dass die Einheit Volt 
rauskommt. Wie ist die Umrechnung in °C?

letzte Frage:
interne Vref ist 3,3 V. Wie/wo kann ich sehen, dass wirklich Vref=3,3V 
genommen wird?

Gruß
Cimbomgs
Gast #709324
Lesenswert?

>Wenn ich die Gleichung ansehe, dann fällt mir auf dass die Einheit Volt
>rauskommt. Wie ist die Umrechnung in °C?

umrechnung ist 10mV/K

also bei 25Grad Raumtemperatur 2.98V

(273+25) * 10mV = 2.98V

Gruss Helmi
#709333
Lesenswert?

Ein 12bit ADC liefert Werte von 0..4096. Zumindest wenn das Ergebnis 
rechtsbündig im Register liegt.

Der LM335 liefert 10mV pro K, das sind 2,73V bei 0°C. Und ca. 3,3V bei 
30°C. Wenn er kann. Wenn du also nicht grad am Nordpol lebst, sind 3,3V 
am obere Ende des Widerstands am LM335 zu wenig.

Und wie schon richtig feststellst, kommt bei Volt/N immer noch Volt 
raus, nicht Temperatur. Bei 2,73V sollte der ADC 2,73V/3,30V * 4096 = 
3388 anzeigen.
#709340
Lesenswert?

Fang mal vorne an und finde raus, wie du den ADC dazu bringst, Werte im 
Bereich 0-4095 zu liefern. Oder alternativ eine saubere Begründung, 
warum nicht. Vorher ist Herumraterei witzlos.

> Warum bekomme ich einen Wert von 39 V :-( ?

Hast du dir selber schon beantwortet.
OP #709364
Lesenswert?

ich benutze einen Freescale Microkontroller und die Entwicklungssoftware 
ist CodeWarrior.

Unter CodeWarrior gibt es die Eigenschaft "Processor Expert", was mir 
den Code für Pins,Timer,ADC usw. selber erzeugen kann.
Dann brauche ich nur in meinem Hauptprogramm die gewünschte Funktion zu 
aktivieren/deaktivieren.

Temperatur-Sensor ist am GPIOC5/ANB1 angeschlossen. Ich aktiere den 
ADC-Kanal und hole den Wert.

Wenn ich mir den Wert in Binär ansehe, dann sind die untersten 4 Bits 
immer 0. Also gehe ich davon aus, dass die Bits linksbündig in das 
Register gespeichert werden.

Ich finde nirgends die Auswahlmöglichkeit zwischen links-/rechtsbündig 
:-(
OP #709601
Lesenswert?

eine Frage zu Referenzspannung:

wird die Referenzspannung Low/High vom Mikrocontroller eingestellt, dh. 
ist V_ref_LOW intern auf 0 Volt eingestellt und V_ref_High entsprechend 
auf 3,3 V?

Oder muss ich 2 Ports nehmen und das eine mit GRND und das andere mit 
einer Referenzspannung von 3,3 V verbinden und die Ports konfigurieren 
damit der Mikrocontroller die Referenzspannung hat?
#709622
Lesenswert?

Cimbom Bom wrote:
> wie bist du auf 24-25°C gekommen?

Hmm, ja stimmt..hab mich wohl beim abtippen vertan.


>wird die Referenzspannung Low/High vom Mikrocontroller eingestellt, dh.
>ist V_ref_LOW intern auf 0 Volt eingestellt und V_ref_High entsprechend
>auf 3,3 V?

Laut Block Diagram meines Datenblattes wird VrefL und VrefH direkt von 
Vss und Vdd abgezweigt.
Angehängte Dateien:
OP #709657
Lesenswert?

hmm.. laut Datenblatt ist bei mir anders:

----
2.6.1.1 Single-Ended Samples
The ADC module performs a ratio metric conversion. For single ended 
measurements, the digital result is proportional to the ratio of the 
analog input to the reference voltage in the following diagram.

Single Ended Value = round ((VIN – VREFLO)/(VREFH – VREFLO) × 4096 × 8)

VIN = Applied voltage at the input pin
VREFH and VREFLO = Voltage at the external reference pins on the device 
(typically VREFH = VSS and VREFLO = VDD)

NOTE:
The 12-bit result is rounded to the nearest LSB.
The ADC is a 12-bit function with 4096 possible states. However, the 12 
bits have been left shifted three
bits on the 16-bit data bus so its magnitude, as read from the data bus, 
is now 32760.
----

hab auch die Port so eingestellt, dass VrefLO auf GRND und VrefH auf Vss 
liegt.

Vernünftigen Wert bekomme ich trotzdem nicht. So langsam drehe ich durch 
:-$
#709744
Lesenswert?

@ Cimbom Bom (cimbomgs)

>Wie ist es eigentlich, wieviel Zeit braucht der ADC für die Abtastung?

Steht im Datenblatt und hängt von deiner Einstellung des ADC ab.

>Wo kann ich abfragen, wann die Messung fertig ist?

Sicher, da gibt es Statusbits in den ADC Registern. Die MUSST du sogar 
abfragen.

MFG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren