LM35 Minus Temperaturen messen mit dem Arduino UNO

Hallo Leute, Ich habe mir gestern denn Temperatur Sensor LM35 besorgt. Diesen habe ich an mein Arduino UNO angeschlossen. Und zwar habe ich die "Full Range" Version genommen. Also an Vs+ habe ich die +5 Volt des Arduino dran. An GND habe ich an Arduino GND angeschlossen. Und die -5 Volt bekomme ich ihn dem ich ein PWM Ausgang auf 100 % schalte, dann mit 2 100 uF Elkos und 2 1N4007 Dioden das ganze zu einer neagtiven -3,78 Volt Spannung mache. Und noch ein 100K Ohm Wiederstand zwischen Vout und -5 Volt. Ich lese denn Wert über denn Analog Pin 0 aus. Also was von Vout vom LM35 kommt. Dieses in mV umwandeln mit:

float mV = (temp / 1024.0) * 1100;

Und dann in Grad Celsius: float cel = mV / 10.0;

Als Referenz Spannung nutze ich die interen 1,1 Volt des AtMega328P. Doch sobald ich denn LM35 ins Tiefkühltruhe packe. Also nur denn Sensor. Habe lange Kabel dran gemacht. Und die Temperatur bei 0 Grad ist wird mir am Serial Monitor nur noch 0 *C ausgeben. Wenn ich aber mit mein Multimeter die Spannung am Vout nachmesse habe ich dort -250 mV also -25 °C kalt.

Was mache ich denn falsch das der Arduino mir nur 0 ausgibt? Kann mir da einer helfen? Jan.

Kannst du bitte mal einen Link deines Sensors posten.

Ich habe bisher noch keinen LM35 gesehen, der eine negative Betriebsspannung braucht. Wo schließt du die an?

HotSystems: Kannst du bitte mal einen Link deines Sensors posten.

Ich habe bisher noch keinen LM35 gesehen, der eine negative Betriebsspannung braucht. Wo schließt du die an?

Klar hier ist das Datenblatt: http://www.ece.usu.edu/ece_store/spec/lm35dt-3p.pdf

Figure 2. Der LM35 braucht die Negative Spannung ja auch nur um Temperatur im negativen Bereich zu messen. Um im Positiven zu messen braucht er nur die +Vs.

Das kann dann mit dem Arduino direkt aber nicht funktionieren, da dieser keine negative Spannung am Eingang verträgt. Damit kannst du den Eingang u.U. killen.

Diese dann auch zum Messen nicht verwenden kann.

Nimm einen DS18B20, der arbeitet ohne zusätzliche Spannung auch im negativen Temperaturbereich.

HotSystems: Das kann dann mit dem Arduino direkt aber nicht funktionieren, da dieser keine negative Spannung am Eingang verträgt. Damit kannst du den Eingang u.U. killen.

Diese dann auch zum Messen nicht verwenden kann.

Nimm einen DS18B20, der arbeitet ohne zusätzliche Spannung auch im negativen Temperaturbereich.

Kann man das irgendwie auch mit dem LM35 regeln? Denn ich habe mir bereits gestern direkt eine kleine "Wetterstation" gebaut mit einem LCD Display und einen EEPROM Chip. Denn ich würde gerne denn jetztigen weiter nutzen

HIER weiter unten meine Antwort und HIER auch an meiner Antwort da findest du alles um auch Minus Temperaturen zu messen Gruß DerDani

Das Passiert wenn man den Link einfügt http://www.%22http.com//forum.arduino.cc/index.php?topic=144893.10%22

soltte aber: 1ter Lnk forum.arduino.cc/index.php?topic=144893.10

sein 2ter Link forum.arduino.cc/index.php?topic=290397.10

Ich befürchte nein.
Eine negative Spannung wird im Eingang des Arduinos durch vorhandene Dioden kurzgeschlossen. Wenn der Strom zu groß wird, gehen die kaputt.
Damit kannst du nur positive Temperaturen anzeigen.

Da ich selber den Sensor nicht verwende, sondern den DS18B20, habe ich leider keine Idee.
Du bekommst den Sensor auch als 3-beinigen und den LM35 ersetzen.
Der Sketch muss natürlich angepasst werden.
Ist aber nur ein Vorschlag, gibt evtl. noch andere Ideen.

Edit:
Super wenn es auch anders geht. Die Links funktionieren leider nicht. Doppelt http.

volvodani:
HIER weiter unten meine Antwort und
HIER auch an meiner Antwort da findest du alles um auch Minus Temperaturen zu messen
Gruß
DerDani

Hallo Volvodani.
Ich habe deine Zeichnung gefunden: http://prntscr.com/bhk5uh . Kann ich anstatt der 1N4148 eine 1N4007 nehmen? Und brauche ich dafür gar keine negative Spannung mehr? Bzw. wie sieht das mit der Berechnung der Temperatur aus. Bleibt dieses bei (analogRead(0) / 1023.0) * 1100 und dann geteilt durch 10?

2 Dinge die man mit einem Analogen Eingang nicht machen darf: * Eine negative Spannung draufschalten; Ergebnis unter Umständen Controller gekillt. * Da der Ersatzwiderstand des Sample and Hold Gliedes des Analogen Eingangs ca 10kOhm ist muß der innenwiderstand der Spannungsquelle (sensors) auch mindestens in dieser Region liegen oder kleiner, damit die Messung richtige Werte gibt.

Für die Messung negativer Werte sind der LM335 (10mV pro K) oder der TMP36 (0,5V Offset) besser geeignet.

Grüße Uwe

uwefed: Für die Messung negativer Werte sind der LM335 (10mV pro K) oder der TMP36 (0,5V Offset) besser geeignet.

Grüße Uwe

Hi Uwe!

Mal ne Frage funktioniert der LM335 vom pinzip her genauso wie der LM35. Nur das er halt nur ein GND vom Arduino bekommt und das Auslesen geht ohne eine extra Library? Der LM335 kann in positiven und im negativen bereich messen ohne dabei in eine neagtive Spannung zu wechseln?

So Links korrigeirt in den Links ist alles beschrieben. Man kann den LM35 auch mit "nur" Positiver Spannung betreiben man nutzt eine Diode um die Betriebsspannung für den LM 5-0,7 V also effektiv 4,3 für den LM und die um 0,7V angehobenen Versorgungspannung hat den gegen den Arduino Ground eine Spannung von -0,7 also kann der LM da runter also "negativ" Messen. Gruß DerDani

volvodani: So Links korrigiert...

Leider nein.

volvodani: So Links korrigeirt in den Links ist alles beschrieben.

Komme immer noch auf die gleichen Seite wie vorher.

Das ist ein Fehler der Forumssoftware der setzt immer!!! ein http: und .com dahinter
Kann es leider nicht korrigiern.
Gruß
DerDani

volvodani: Das ist ein Fehler der Forumssoftware der setzt immer!!!! ein http: und .com dahinter Kann es leider nicht korrigiern. Gruß DerDani

Es sind aber die Themen: "Temperatursensor LM35 stabilisieren" und "LM35 und Spannungsmessung (Ain)" oder?

volvodani:
Das ist ein Fehler der Forumssoftware der setzt immer!!! ein http: und .com dahinter
Kann es leider nicht korrigiern.
Gruß
DerDani

Hallo volvodani nochmal.
Okay ich habe die Schaltung mal nachgebaut. Und gebe mir denn Wert im Serial nun aus. Ich habe nur Problem mit dem umrechnen. Im Moment kommt im Serial Monitor Werte zwischen 865 und 870 an. Du hast ja geschrieben das 700 mV / 4 mV = 175 = 0 °C entspricht. Also müsste ich denn Wert 865 geteilt durch 175 machen? Dann kommt dort aber 4 Grad raus. Das ist ja auch nicht richtig.

Kannst du mir sagen wie ich das genau umrechnen muss?

Links korrigiert.

Nachtrag: Der LM 335 gibt 10mV pro K (Kelvin. also bei -273,16 °C würde er 0V geben und bei 0°C (entspricht 271,16K) gibt er 2,73V Meßbereich wieder je nach Version bis zu von -55 bis 150°C.

Der TMP36 gibt 0,5V bei 0°C aus und die Ausgangsspannung ist 10mV pro °C also bei -40°C 100mV, bei 0°C 500mV und bei 20°C 700mV

http://www.ti.com/lit/ds/symlink/lm235.pdf http://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf

Bleiben wir beim LM35. Wie schon gezeigt kann der LM35 mittels einer Diode einen Offset vom 700mV haben und so negative Temperaturen messen.

Umrechnung: ADC in mV davon 700mV subtrahieren und durch 10mV teilen. Die 700mV können leicht falsch sein. Einfach eine Kontrollmessung mit Eiswasser (zerstoßenes Eis mit kaltem Wasser vermengen, rühren, 10 min warten, dann müßte mann 0°C haben) machen und gegebenenfalls den Offsetwert von 700mV korrigieren. Als Diode kann man jede Siliziumdiode nehmen aber keine Skottky-Diode (hat Durchlaßspannung von ca 0,35V).

Grüße Uwe

uwefed: Umrechnung: ADC in mV davon 700mV subtrahieren und durch 10mV teilen. Die 700mV können leicht falsch sein. Einfach eine Kontrollmessung mit Eiswasser (zerstoßenes Eis mit kaltem Wasser vermengen, rühren, 10 min warten, dann müßte mann 0°C haben) machen und gegebenenfalls den Offsetwert von 700mV korrigieren. Als Diode kann man jede Siliziumdiode nehmen aber keine Skottky-Diode (hat Durchlaßspannung von ca 0,35V).

Grüße Uwe

Hi Uwe. Danke für deine Antwort Also um mV zu bekommen nehme ich denn aktuellen Wert und mache das damit:

float mV = (Wert des ADC's / 1024.0) * 1100;

1100 wegen 1,1 Referenz Spannung.

dann von denn mV float 700 abziehen und das dann nochmal durch 10 teilen? Richtig oder Falsch? Komme grade ein bissen durcheinander . Habe Siliziumdiode genommen.

Hallo Leute nochmal Erst mal wirklich herzlichen Dank an euch!

Der Sensor kann nun mit einer positiven Spannung im Minus bereich messen. Unsere Tiefkühltruhe ist ca. -25 bis -26 Grad kalt. Ein Infarot Thermometer bestätigt -25,7 Grad und auch das interne Thermometer bestätigt eine Temperatur von rund -26 Grad. Also genau ist er auch sehr. Ich habe denn Sensor also die 3 Pin mit Schrumschlach überzogen und mit Tesa zusammen geklebt. Ein bisschen Wärmeleitpaste von Arctic Cooling an denn Sensor und ca. 15 mal in Aluminum Folie angewickelt. Im Zimmer bestätigt das Infrarot Thermometer ca. 22 bis 23 Grad. Dieses gibt der Sensor auch wieder.

Ist sogar ein bisschen genauer als vorher als Offet nutze ich nun 692 das ist bei mir am genausten.

Nochmal vielen dank!!! :) :) :)

EDIT: Der Sensor funktioniert ja nun. Aber er schwankt zwischen ca. 2/3 Grad. Kann man denn irgendwie noch stabilieren?

Der Ausgang des LM35 neigt zum Schwingen wenn der “zu wenig” Belastet wird. Packe mal einen Kondensator 100nF oder größer an den Ausgang des LM35 das dürfte es senken.
Auf der Software Seite könnetst du auch fünf Lesezyklen hintereinander in einer for-Schleife machen ( Wert bei jedem Durchgang addieren und dann nachher durch fünf Teilen)
Gruß
DerDani