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 .
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 .
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.
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.
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 .
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.
Mall testen ob das Transistoren sind, MM auf Ohm stellen., meisten ist Basis am Pin1 oder Pin2.
wen wenig Erfahrung dann hier schauen
Funktioniert nur mit Bipolaren Transistoren. Wen der Jenninger hat Dich vera... steckten nur BJT Transistoren im Beutel, FET sind meistens teurer als der Sensor
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.
Zusammenfassung: wenn man nicht alle Möglichkeiten durchmißt kann man das Bauteil ans PNP Transitor entziffern.
Wenn ich messe:
In einer Polarität (+ -)
Vs zu Vout = 1,7V
Vs zu GND = OL
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.