LM335Z auswerten.

#4389906
Lesenswert?

Hallo zusammen...

Ich fummel hier gerade mit einem Arduino nano und einem LM355Z herum

Dabei verwende ich folgenden Code
1
float temp_in_celsius = 0, temp_in_kelvin=0, temp_in_fahrenheit=0;
2

3
void setup()
4
{
5
  Serial.begin(9600);
6
}
7

8
void loop()
9
{
10

11
  //Reads the input and converts it to Kelvin degrees
12
  temp_in_kelvin = analogRead(0) * 0.004887585 * 100;
13
 
14
  //Converts Kelvin to Celsius minus 2.5 degrees error
15
  temp_in_celsius = temp_in_kelvin - 35 - 273.15;
16
 
17
  temp_in_fahrenheit = ((temp_in_kelvin - 35) * 9 / 5) - 459.67;
18

19
  //Print the temperature in Celsius to the serial port
20
  Serial.print("Celsius: ");
21
  Serial.println(temp_in_celsius);                 
22

23
  //Print the temperature in Fahrenheit to the serial port
24
  Serial.print("Fahrenheit: ");
25
  Serial.println(temp_in_fahrenheit);
26
  Serial.println();
27

28

29
  delay(3000);
30
}

Als erstes stellt sich mir die Frage, warum hat der Sensor solch eine 
große Abweichung? In diesem Code Bsp. haben sie eine Abweichung von 
2,5Grad was mir realistisch erscheint. Ich musste um auch nur annähernd 
auf den richtigen Wert zu kommen 35 Grad Korrekturwert benutzen. Kann es 
wirklich solch eine große Tolleranzn bei diesen Bauteilen geben?

Das nächste was mich etwas stört, warum springt der Wert im Bereich von 
1 Grad auf und ab? Wie kann ich das weg bekommen, oder zumindest 
minimieren??
Der Arduino wird über USB mit Spannung versorgt.

Der Sensor wird über einen 2,2K Widerstand am mittleren Pin vom Adruino 
5V versorgt. Der rechte Pin liegt auf Minus und am linken Pin hängt der 
Schleifer eines 10K Potis.

Vielen Dank für Eure Hilfe...
Gast #4390184
Lesenswert?

Lass erst mal das Potentiometer weg. Das ist für
Feinkorrekturen, NACHDEM du den Fehler gefunden hast.

Links und rechts sind nicht sehr aussagekräftig.
Vielleicht ist der LM335 verkehrt herum angeschlossen und
du misst nur das Potentiometer + Rückwärtsströme????

Anfangen würde ich mit +5 V über 2,2 k an Pin 1 (V+) und
Masse an Pin 3 (V-). Und einem Voltmeter an Pin 1 und 3.

Da müsste sich bei Raumtemperatur schnell zeigen, ob die Pins
richtig erkannt wurden...
#4395291
Lesenswert?

> Anfangen würde ich mit +5 V über 2,2 k an Pin 1 (V+) und
> Masse an Pin 3 (V-). Und einem Voltmeter an Pin 1 und 3.
>
Da messe ich 3.013V

Das würde bedeuten ich müsste bei meinen 21 Grad Zimmertemperatur auf
2,94 Volt einstellen?? Sehe ich das richtig?

grüße aus dem Süden
Gast #4395408
Lesenswert?

Wenn ich mich recht erinnere, so heißt 'messen' 'vergleichen mit einer 
bekannten Größe'; Letzteres ist hier wohl die Referenzspannung des 
AVR-ADCs - wie sieht diese aus, wie groß, wie stabil? Und auf sieben 
Stellen genau ist sie sicher nicht.
Die Messung mit dem Voltmeter könnte gerade so hinkommen, im Datenblatt 
lese ich einen maximalen Fehler von 6 °C (bei Tu= 25 °C und I= 1 mA).

Gruß aus dem Südwesten
Gast #4395790
Lesenswert?

> temp_in_kelvin = analogRead(0) * 0.004887585 * 100;
> Der Arduino wird über USB mit Spannung versorgt.
Aus der Berechnung schließe ich auf eine angenommene Referenzspannung 
von 5.00 V; stellt sich also die Frage, wie der verwendete 'Arduino 
nano' aus USB ebendiese erzeugt.
Gast #4396705
Lesenswert?

Da muss ich auch noch mal an den Beitrag von S. Landolt (Gast)
anschließen:

Die 5 V aus der USB-Versorgung sind vielleicht nur eine
Hausnummer. Laut Wikipedia-Artikel "Universal Serial Bus"
dürfen da 4,4...5,5 V anliegen.

Wenn sich an die altmodische TTL-Regel gehalten wird, so haben
wir 4,75...5,25 V. Hast du ein DVM um die "5 V" zu messen, sind
die stabil?

Beispiel: Idealer LM 335 bei 298 K = 25 °C: 2,98 V
Umrechnungsfaktor K = 0,48852 * ADC, °C = K - 273

A) Vcc = Vref = 5,25 V
   ADC = 2,98 / 5,25 * 1024 = 581 -> 11 °C

B) Vcc = Vref = 5,00 V
   ADC = 2,98 / 5,00 * 1024 = 610 -> 25 °C

C) Vcc = Vref = 4,75 V
   ADC = 2,98 / 4,75 * 1024 = 642 -> 41 °C

Beim Mega168 und Mega328 gibts alternativ zu Vcc eine 1,1 V
Internal Reference.
Benutzt du diese und teilst das Signal vom LM335Z mit einem
Spannungsteiler durch 4, kannst du 0...4,4 V (-273...167 °C)
erfassen.

So wie eine 5 V Betriebsspannung als Uref (egal, ob USB, oder ein
LM7805) sind diese 1,1 V auch nicht sehr genau, ABER (!) recht
stabil.

Du wirst in jedem Fall bei der ersten Inbetriebnahme einen
Abgleich vornehmen müssen. Dies kann per Software, oder z.B. mit
einem 10-Gang-Poti (10 kOhm) erfolgen, das den Spannungsteiler
1:4 darstellt. Am Poti kurbelst du solange, bis die mit
einem externen Thermometer ermittelte Temperatur angezeigt wird.

Instabilitäten sind dann nur noch äußere Störungen, die durch
das Layout und RC-Filterung minimiert werden können - und durch
Mittelwertbildung über die Netzspannungsperiode (20 ms), oder
über die Periode der Störspannungen, die du mit dem µC erzeugst...

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