Problem mit Thermistor

Hallo,

ich verwende:
einen Arduino undo R3
Einen Thermistor 100k
Einen 100k Wiederstand und 3 Kabel
Mann sollte meinen ich könnte dabei nicht viel Falsch machen (schaffe es aber anscheinend Trozdem)

der Code ist vollgender:

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T, Tc, Tf;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;

void setup() {
Serial.begin(9600);
}

void loop() {

 Vo = analogRead(ThermistorPin);
 R2 = R1 * (1023.0 / (float)Vo - 1.0);
 logR2 = log(R2);
 T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
 Tc = T - 273.15;
 Tf = (Tc * 9.0)/ 5.0 + 32.0; 

 Serial.print("Temperature: "); 
 Serial.print(Tf);
 Serial.print(" F; ");
 Serial.print(Tc);
 Serial.println(" C");   

 delay(500);
}

nun zu meinem Problem mein serieller Monitor gibt vollgendes aus:

Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.32 F; 36.85 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.52 F; 36.96 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.32 F; 36.85 C
Temperature: 98.32 F; 36.85 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C
Temperature: 98.12 F; 36.73 C

und das bei einer Raumtemperatur von ca. 25°C
bei Berührung sinkt die Temperatur auch anstatt zu steigen.
Ich verstehe es nicht habe mir jetzt einige Codes angesehen und auch 3 Thermistoren durch versucht immer mit dem Selben Ergebnis.

Bitte helft mir ich weiß nicht weiter

Dann wechsle mal die Spannungsversorgung am Spennungsteiler (+5V mit Masse)

Termistor heißt ja nur daß der Widerstand sich mit der Temperatur ändert. Es gibt sie aber so daß bei Erwärmng der Widerstand steigt und bei anderen sinkt.

Grüße Uwe

Ok hab grad einen Fehler bemerkt hatte den Plusspol bei 3,5V drin jetzt bei 5V hat sich aber das eigentliche Problem nicht verändert nur die Temp ist gestiegen:
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 199.39 F; 93.00 C
Temperature: 198.66 F; 92.59 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C
Temperature: 200.13 F; 93.41 C

der Thermistor ist ein NTC 3950 ist der für meinen Zweck dann unbrauchbar?

Float hat übrigens keine so hohe Genauigkeit. Da führende Nullen keine signifikanten Stellen sind ist es nicht sooo schlimm, aber sind die letzten 2-3 Stellen die angibst passen trotzdem nicht

Außerdem hast du den B-Wert im Datenblatt! Damit ist die Berechnung einfacher und du brauchst keine Koeffizienten

Serenifly:
Float hat übrigens keine so hohe Genauigkeit. Da führende Nullen keine signifikanten Stellen sind ist es nicht sooo schlimm, aber sind die letzten 2-3 Stellen die angibst passen trotzdem nicht

Außerdem hast du den B-Wert im Datenblatt! Damit ist die Berechnung einfacher und du brauchst keine Koeffizienten

Eine Fließkommazahl hat kene führende Nullen. Was meinst Du damit?
grüße Uwe

Oh doch. 0.0000012345 hat 5 signifikante Stellen

Serenifly:
Oh doch. 0.0000012345 hat 5 signifikante Stellen

Ja, das ist aber keine Fließkommazahl. 1,2345*10-6 ist eine Fließkommazahl.
Grüße Uwe

Hi

Wenn die Temperatur bei Berührung sinkt - ist der Spannungsteiler vll. nur falsch herum?
Tausche doch bitte Vdd und GND an Deinem Termistor-Spannungsteiler.

MfG

float R1 = 10000;Wenn der Widerstand 100K ist, muss hier ja R1=100000.0 stehen.

Serenifly:
Oh doch. 0.0000012345 hat 5 signifikante Stellen

Oh nein. Führende Nullen sind zum Beispiel da:

  001,50
+ 099,30
--------
  100,80

Gruß

Gregor

Gaertner90:
Bitte helft mir ich weiß nicht weiter

Ich habe den Thread nicht vollständig gelesen. Aber da ich einen 100 k-NTC in meiner Grabbelbox habe (Datenblatt) und 100 k-Widerstände sowieso, habe ich Deinen Aufbau mal schnell zusammengesteckt und geguckt, was für Ausgaben Dein Sketch erzeugt:

Temperature: 77.42 F; 25.23 C
Temperature: 77.60 F; 25.33 C
Temperature: 77.96 F; 25.54 C
Temperature: 77.60 F; 25.33 C
Temperature: 77.42 F; 25.23 C
Temperature: 77.78 F; 25.44 C
Temperature: 77.78 F; 25.44 C
Temperature: 77.78 F; 25.44 C
Temperature: 77.60 F; 25.33 C
Temperature: 78.33 F; 25.74 C
Temperature: 80.15 F; 26.75 C
Temperature: 85.88 F; 29.94 C
Temperature: 88.91 F; 31.62 C
Temperature: 103.07 F; 39.48 C
Temperature: 143.55 F; 61.97 C
Temperature: 179.28 F; 81.82 C
Temperature: 190.48 F; 88.04 C
Temperature: 174.56 F; 79.20 C
Temperature: 162.94 F; 72.74 C
Temperature: 153.72 F; 67.62 C
Temperature: 146.22 F; 63.45 C
Temperature: 131.14 F; 55.08 C
Temperature: 118.13 F; 47.85 C
Temperature: 108.66 F; 42.59 C
Temperature: 102.44 F; 39.13 C
Temperature: 98.32 F; 36.85 C
Temperature: 94.92 F; 34.96 C
Temperature: 92.96 F; 33.86 C
Temperature: 89.10 F; 31.72 C
Temperature: 86.64 F; 30.35 C
Temperature: 86.26 F; 30.14 C
Temperature: 85.88 F; 29.94 C

Nachdem das Begrabbeln keine große Änderung brachte, habe ich den NTC mal kurz befackelt. Als Raucher habe ich entsprechende Utensilien ständig in Griffweite.

Das sieht für mich ziemlich stimmig aus.

Gruß

Gregor

PS: Einen Thermistor nennt man üblicherweise NTC oder PTC, je nach negativem (N) oder positivem (P) Temperatur-Koeffizienten. Einmal steigt der Widerstand mit der Temperatur (P) oder er sinkt (N). Demnach haben wir jeweils einen NTC.

PPS: Wenn man die Werte mitschreiben/loggen kann, kann man hübsche Sachen anstellen. Ich habe das mal für eine Akku-Ladekurve verwurstet.

Kurze Zwischenfrage:

Das Temperatur/Widerstandsdiagramm in meinem Datenblatt zeigt eine Kurve mit Knick. Wie kann ich feststellen, welcher infrage kommende Wert gerade der Richtige ist? Mir fällt spontan nur eine Plausibilitätskontrolle ein, d. h. die Kombination mit einer Uhr/einem Kalender. Aber das mit dem Klimawandel ist ja mal eine echte Katastrophe :slight_smile: Ich finde, die hätten die Katastrophe nicht zum Wandel degradieren sollen. Das isses ja.

Und sind die 08/15-NTCs eigentlich so genau, dass man das als Vergleichswert für ein Popel-Wandthermometer hernehmen kann? Wenn die einigermaßen genau sind, ist mein Multimultimeter echt übel (ca. 10° Differenz zum Arduino-Gebastel). Muss mal gucken wieviel man für etwas Taugliches ausgeben muss.

Gruß

Gregor

jremington:
float R1 = 10000;Wenn der Widerstand 100K ist, muss hier ja R1=100000.0 stehen.

Das war schon mal der eine Fehler die Temperatur stimmt jetzt.
jetzt müsste ich wahrscheinlich noch die Formel zum errechnen su umstellen dass die Temp auch steigt wen ich ihn berühre bzw erhitzte (also die Temp. steigt so kalt sind meine Hände auch wieder nicht ihr wisst was ich meine)

gregorss:
Kurze Zwischenfrage:

Das Temperatur/Widerstandsdiagramm in meinem Datenblatt zeigt eine Kurve mit Knick. Wie kann ich feststellen, welcher infrage kommende Wert gerade der Richtige ist? Mir fällt spontan nur eine Plausibilitätskontrolle ein, d. h. die Kombination mit einer Uhr/einem Kalender. Aber das mit dem Klimawandel ist ja mal eine echte Katastrophe :slight_smile: Ich finde, die hätten die Katastrophe nicht zum Wandel degradieren sollen. Das isses ja.

Und sind die 08/15-NTCs eigentlich so genau, dass man das als Vergleichswert für ein Popel-Wandthermometer hernehmen kann? Wenn die einigermaßen genau sind, ist mein Multimultimeter echt übel (ca. 10° Differenz zum Arduino-Gebastel). Muss mal gucken wieviel man für etwas Taugliches ausgeben muss.

Gruß
Gregor

Ein NTC / PTC ist an sich hinreichend genau für ein Termometer. Die Korrektur der nichtlinearen Widerstandskurve ist eine andere Sache. Da können größere Fehler sich einschleichen.

Die Kurven auf Seite 3 des verlinkten Datenblattes geben den Temperaturfehler an. Dieser ist bei ca 25°C am kleinsten. Die Kurven 1 bis 3 bzw 4 beziehen sich auf einen Widerstandsfehler des NTC bei 25°C gegenüber dem Sollwert. Die 6 Diagramme beziehen sich auf verschiedene Nennwiderstandswerte des NTC.

Grüße Uwe

uwefed:
Die Kurven auf Seite 3 des verlinkten Datenblattes geben den Temperaturfehler an. Dieser ist bei ca 25°C am kleinsten. Die Kurven 1 bis 3 bzw 4 beziehen sich auf einen Widerstandsfehler des NTC bei 25°C gegenüber dem Sollwert. Die 6 Diagramme beziehen sich auf verschiedene Nennwiderstandswerte des NTC.

Welches Diagramm zu meinem NTC gehört, habe ich noch herausgefunden, aber die Aussage habe ich ja mal wieder total fehlinterpretiert. Danke für die Klarstellung!

Gruß

Gregor

Hallo Gaertner90,

ich empfehle Dir hier mal reinzuschauen: https://create.arduino.cc/projecthub/Groeneveld64/outside-thermometer-with-trend-max-and-min-temperature-4a714f?ref=search&ref_id=ntc&offset=2

Die Formel und die Position des NTC müssen zusammen passen, den NTC kannst Du ja oben (5V), oder unten (GND) haben. Eine Kalkulation mit der Steinhart-Hart-Formel mag zwar komlizierter aussehen, ist aber genauer als mit dem beta-Faktor.
Der dort verwendete NTC ist auch sehr genau, gibt es bei www.reichelt.de, und auf der Herstellerseite gibt es ausführliche Temperatur-Widerstands-Daten für jeden Sensor. Deshalb habe ich hier auch einen TS-NTC-103A rumliegen, mit bereits berechneten A, B, C Werten für die Steinhart-Hart-Formel.

Gruß André

Hi

SpaghettiCode:
https://create.arduino.cc/projecthub/Groeneveld64/outside-thermometer-with-trend-max-and-min-temperature-4a714f?ref=search&ref_id=ntc&offset=2

Den URL-Tag Mal etwas zusammen geklöppelt :wink:

MfG

Ja. sorry, habe es gerade korrigiert. Ich weiß nicht warum das immer wieder passiert, obwohl ich den Kram der da schon im "Link setzen" drin steht überschreibe, ... :smiling_imp: (bzw. überschrieben sein müsste!)

Gruß André

SpaghettiCode:
Hallo Gaertner90,

ich empfehle Dir hier mal reinzuschauen: https://create.arduino.cc/projecthub/Groeneveld64/outside-thermometer-with-trend-max-and-min-temperature-4a714f?ref=search&ref_id=ntc&offset=2

Die Formel und die Position des NTC müssen zusammen passen, den NTC kannst Du ja oben (5V), oder unten (GND) haben. Eine Kalkulation mit der Steinhart-Hart-Formel mag zwar komlizierter aussehen, ist aber genauer als mit dem beta-Faktor.
Der dort verwendete NTC ist auch sehr genau, gibt es bei www.reichelt.de, und auf der Herstellerseite gibt es ausführliche Temperatur-Widerstands-Daten für jeden Sensor. Deshalb habe ich hier auch einen TS-NTC-103A rumliegen, mit bereits berechneten A, B, C Werten für die Steinhart-Hart-Formel.

Gruß André

Sry aber da blick ich nicht durch so gut ist mein Englisch nicht auch der Code ist mir zu komplex wollte eigentlich nur die richtige Temperatur angezeigt bekommen hoffe immer noch dass mir wer helfen kann wie ich meine jetzt schon bestehende Formel umschreiben muss dass die Temperatur steigt stat zu sinken.

Hi,

tausche doch mal die Position vom Widerstand und vom NTC, das meinte ich mit: Die Formel und die Position des NTC müssen zusammen passen, den NTC kannst Du ja oben (5V), oder unten (GND) haben.

Gruß André