Probleme Temperatursensor TMP36

Hallo Zusammen,

ich habe leider Probleme mit der Temperaturmessung mithilfe eines TM36 an einem Arduino Mega2560.

Ich habe den Sensor verbunden: linke Seite an 5V , rechte Seite an GND, und den mittleren Pin an einen analogen Input.
Leider schwanken die ausgelesenen Werte sehr stark. Außerdem sind die Werte teilweise weit im negativen Bereich. Also können die Messwerte gar nicht passen. Ich habe das Ganze nun mit einem Multimeter nachgemessen. Der Arduino liefert konstant 5V. Über den Datenpin des Sensors kommen in etwa 0,75 mV an, und dies auch recht konstant. Das heißt der Sensor misst korrekt.
Allerdings scheint der Arduino nicht die gemessenen Werte auszugeben. Allmählich weiß ich nicht mehr weiter.

Hat von euch jemand eine Idee woran dies liegen könnte? Für Hilfe wäre ich sehr dankbar.

Anbei noch der Sketch den ich verwende:
`//TMP36 Pin Variable
int sensorPin = A0; // Analoger Eingangspin, an welchem der TMP36 angeschlossen ist
// Die Auflösung beträgt 10 mV / Grad Celsius bei
// 500 mV Offset um das Messen negativer Temperaturen zu ermöglichen

void setup()
{
Serial.begin(9600); // Start des seriellen Monitors
}

void loop()
{
int reading = analogRead(sensorPin); // Den Signalausgang des Temperatursensors lesen
float voltage = reading * 5.0; // Umwandlung der Messung in mV
voltage /= 1024.0;

Serial.print("Gemessene Spannung: ");
Serial.print(voltage); // Ausgabe der gemessenen Spannung in mV
Serial.print(" mV;\t");
float temperatureC = (voltage - 0.5) * 100 ; // Umrechnung der Spannung in C°

Serial.print("Gemessene Temperatur: ");
Serial.print(temperatureC); // Ausgabe der berechneten Temperatur in °C
Serial.println(" °C");

delay(1000); // 1 Sekunde warten bis zur nächsten Messung
}
`
Und eine Ausgabe des Monitors:

Hallo,
schau Dir mal das Datenblatt von dem TM36 an. Bei 25 Grad sollten etwa 750mV am Ausgang liegen nicht 0,75mV. (vermutlich Schreibfehler )
Messbereich -40 bis 125 Grad
Ausgang etwa 0,2- 1,7 V
Auflösung Sensor 10mV/Grad
Damit etwa 0,5 Grad mit dem Arduino.

Wenn Zuleitung zum Sensor lang ist, sollte das Kabel geschirmt sein. Du kannst auch noch mal eine Kondensator parallel zum Analogeingang nach GND anzuschließen. etwa1uF würde ich mal versuchen. Ein zusätzlicher Kondensator am Sensor für die Versorgungsspannung wird auch empfohlen. Alle nicht verwendeten Analogeingänge mal mit GND verbinden.
Generell würde es mehr Sinn machen zusätzlich einen OP zu verwenden um die Auflösung zu verbessern.Mir ist auch nicht klar warum Du 0,5V abziehen willst.Schau dir mal die map() Funktion an .

Heinz

Weil der TMP36 einen Offset von 0,5V hat.

tmp36

Gruß Tommy

Hallo @Tommy56
klar stimmt schon :joy: weil er es zu Fuß macht,

ich bin da über obige Aussage gestolpert

Gruß Heinz

Hi,

Danke für die Antwort. Das mit dem Kondensator habe ich auch schon ausprobiert, hat aber leider auch nichts gebracht.
0,75 mV war natürlich ein Tippfehler :see_no_evil:.

Mich wundert eben, dass die Werte aus dem Arduino zu oszillieren scheinen, wobei die Spannung am Signalausgang des Sensors konstant ist, wenn ich diese mit einem Multimeter überprüfe. Das Multimeter gibt mir auch in etwa 750mV aus, was ja passen würde. Leider passen die Werte sobald sie aus dem Arduino kommen nicht mehr.

Ich habe auch schon einen anderen Temperatursensor probiert, dieser lieferte das gleiche Resultat.
Zum Austesten habe ich eben noch einen Feuchtigkeitssensor ausprobiert, dieser liefert ja auch ein analoges Signal. Dieser Sensor liefert ein konstantes Signal und verändert den Messwert auch entsprechend wie er es soll.

Ich werde mir dann mal noch die map() Funktion anschauen.

Gruß
Andreas

Habe das gerade mal bei mir getestet!
Und bin schwer frustriert!
Ganz schwer......

Habe damals (schon ein Weilchen her) mal ein Tütchen TMP36GZ erworben.
Sind auch so beschriftet.
Aber noch nie eingesetzt.

Dein Programm zeigt bei mir quasi identische Ergebnisse.
Auch oszillierend.
Also völliger Schrott!

Den Sensor mal in meinen Transistor Tester gesteckt.
Der sagt: NPN Transistor!

Es sieht so aus, als hätte ich eine Tüte voll mit Fälschungen gekauft.

Übrigens:
Mein Voltmeter schwankt um die 0,075V
Wo ich doch auch knapp unter 0,750V erwarte.

Also, zeigt dein Voltmeter WIRKLICH 0,750V an oder doch 0,075V, wie bei mir?

Wenn die Füßchen nach unten gehen und der flache Teil mit der Beschriftung zu Dir schaut dann ist das richtig.

Den Sensor kann man ja einfach durch eine Spannungsteiler oder Potentiometer simulieren der auf 0,75V gestellt ist.

Die analoge Spannungsmesung braucht einen Referenzwert, Dieser ist standartmäßig auf die Versorgungsspannung geschaltet. Sind die 5V nicht 5V mißt man falsch.
Du könntest stattdessen eine der internen Referenzspanungen nehmen. Wenn 60°C als max gemessener Wert reicht dann nimm die 1,1V Referenz. Sonst die 3,56V 2,56 Referenz.

Siehe analogReference() - Arduino Reference

Grüße Uwe

Dann scheint der Ausgang des Sensors schnell zu schwingen. Müsste man eigentlich ja aber mit einem geeigneten Hardware Tiefpass stabil bekommen.

Nimm doch einfach einen digitalen Sensor DS18B20
Heinz

Datt tut es nicht.

Laut Datenblatt kann der TPM36 Typischerweise nur 0,00001µF bevor er oszilliert
1000pF kann er mindestens treiben.

Nur 50µA kann er treiben!
Nicht mehr.

Also nein!
Ein Kondensator an der Versorgung, ja, aber am Out Pin nicht.

Du meinst 2,56V, nehme ich mal an.
Wäre die richtige Richtung/Empfehlung!

Aber wenn ihm auch Fakes hat, so wie ich, bringt das alles nix,

Mein Rat:
Erstmal Grundfunktion herstellen, dann Auflösung maximieren.

Ja, Danke für die Korrektur; Finger von der 2er Taste abgerutscht. hab mich aber nicht verletzt.

Grüße Uwe

Ok. Wenigstens bin ich nicht der einzige mit dem Problem. War gestern Abend nur froh die 75 zu sehen bevor ich ins Bett bin.
Ich habe jetzt alles nochmal aufgebaut und nochmals nachgemessen: Es sind 0,075V wie bei dir auch. Bzw. waren es 0,098V. Es sind aber auch gerade 30°C hier unterm Dach :face_exhaling:.

Ja auf diesen Sensor wird es auch rauslaufen. Eigentlich sollte die Messung auch nur als Test herhalten, um Daten vom Arduino an einen RaspberryPi zu senden. Woher der Fehler kam hat mich dann aber doch interessiert und die ganze Nacht beschäftigt.

Aber ich gehe dann mal von einer Tüte voll Schrott aus, wie es combie bereits treffend erwähnt hat.

Gruß
Andreas

Also funktioniert der Sensor definitiv nicht.
Grüße Uwe

Seltsam ist nur, dass es auf alle 5 aus der Packung zutrifft.

Wieso sollte die Dich, wenn sie Dich beschissen haben nur einmal bescheißen. 5 mal bescheißen macht mehr Spaß.

Dann bin ich ja froh, den Messfehler in diesem Thread erkannt zu haben.
Und gruselig frustriert, weil "die" mich .....

Sind bei mir 10.
Ist das besser?

Mall testen ob das Transistoren sind, MM auf Ohm stellen., meisten ist Basis am Pin1 oder Pin2.
wen wenig Erfahrung dann hier schauen :wink:

Funktioniert nur mit Bipolaren Transistoren. Wen der Jenninger hat Dich vera... steckten nur BJT Transistoren im Beutel, FET sind meistens teurer als der Sensor

MM auf Diodentest stellen funktioniert besser.
Grüße Uwe

Ok. Danke für den Hinweis. Werde ich bei Gelegenheit die Woche noch testen.

Das hat mich dann nicht in Ruhe gelassen.
Habe mal 2 TMP36 nachgemessen. Einen der mal bei einem Arduino-Kurs bereits gebraucht wurde und einer der ungebraucht ist.
Nachgemessen: mit einem Diodentestfunktion eines Fluke 117.

grafik

Zusammenfassung: wenn man nicht alle Möglichkeiten durchmißt kann man das Bauteil ans PNP Transitor entziffern.

Wenn ich messe:

In einer Polarität (+ -)

  1. Vs zu Vout = 1,7V
  2. Vs zu GND = OL
  3. Vout zu GND = OL

in der anderen Polarität (- +)
4) Vs zu Vout = 0,7V
5) Vs zu GND = 0,66V
6) Vout zu GND = 0,7V

Messungen 2,3,4,und 5 passen zu einem PNP Transistor
Die Messungen 1 und 6 nicht.

Mißt man nun nicht alle Möglichkeiten durch, bzw ist die Messung des Bauteiltestest nicht gut implementiert so kann man wirklich einen PNP Transistor finden.

Grüße Uwe

1 Like