könnt ihr einen Anfänger vielleicht helfen, bekomme es nicht hin das für mein NTC die richtigen Grad Celsius Werte auszugeben. Bekomme immer Werte wie 120 Grad, dass komische ist dann auch wenn ich den NTC anfasse, werden die WErte geringer obwohl meine Hand wärmer ist als die Raumtemp.
Ich weiß nicht mehr weiter, habe alles durchsucht aber finde keine Lösung. Mein Breadboard in 0 Grad wasser wollte ich auch nicht halten. Es muss doch möglich sein anhand der Datenblattes die richten Grad Celsisus Werte zu bestimmen.
/*
Temperaturmessung mit einem NTC Thermistor
von Thomas Ecker
www.physicalcomputing.at
Mai 2010
*/
#include <math.h>
int SensorPin = 0; // Für den Senoreingang wird Analog 0 gewählt
float sensorWert = 0; // Variable, die den Sensor Wert annimmt
float u1 =0; // Spannung u1 am Spannungsteiler
float u2 = 0; // Spannung u2 am Spannungsteiler
float i = 0; // Strom in A
float Rntc = 0; // Widerstand des Thermistors zum Zeitpunkt der Messung
float T = 0; // Variable für gemessene Temperatur
float B = 4090; // Wert aus Datenblatt des Thermistors
float Tn = 298.16; // Nenntemperatur in K
float R25 = 3473; // Nennwiderstand in Ohm bei Nenntemperatur (aus Datenblatt)
void setup() {
Serial.begin (9600); // Temperatur kann im "Serial Monitor" abgelesen werden
}
void loop() {
sensorWert = analogRead(SensorPin); // Wert am Sensor wird gelesen
u2 = (sensorWert * 5)/1024; // Spannung am Sensor wird berechnet
u1 = 5-u2; // Spannung am Vorwiderstand wird berechnet
i = u1/1000; // Strom wird berechnet
Rntc = u2/i; // Widerstand des Thermistors zum Zeitpunkt der Messung
T = (B*Tn)/(B+(log(Rntc/R25)*Tn)); // Berechnung der Temperatur
T = T-273.15; // Umrechnung von K in °C
Serial.print ("Temperatur = ");
Serial.print (T);
Serial.print (" sensorwert = ");
Serial.print (sensorWert);
Serial.println (" ");
delay (2000); // Temperatur wird alle 2 sec. gemessen
}
Ich verstehe nicht die richtigen Daten aus dem Datenblatt auszulesen um die richtige, wie in meinem Beispiel, einfach nur die Raumtemp. zu bestimmen.
Ich hoffe mir kann einer helfen in den Code die richtigen Werte für meinen NTC herauszufinden.
Schöne Anleitung nur steht nirgens wie groß der NTC ist sondern gesagt wird daß der NTC ein teil des Einsteigerkits ist.
Schön daß auf http://physicalcomputing.at der Link vom Einsteigerkit zu Think & Sound CUBE führt.
Ich kann Dir nur sagen, daß im Arduino Basic Kit ein NTC zu 4,7kOhm ist. Versuch mal statt des 1kOhm Widerstandes einen 10kOhm zu nehmen 4mal hintereinander
sensorWert = analogRead(SensorPin);
zu machen (damit der richtige Wert gelesen wird).
Grüße Uwe
danke für deine Hilfe! Vielleicht habe ich mich falsch ausgedrückt, ich habe nicht die Bauteile wie Sie in dem Set der Anleiitung sind. Ich habe mir in einem Forum ein Einkaufsliste herausgezogen und diese gesondert bestellt. Bin ich günstiger weg gekommen als so ein Starteset zu kaufen. Leider habe ich dadurch auch jetzt Probleme, was ich aber glaube mir hilft weil ich mich mehr mit der Materie beschäftigen muss.
Ich habe einen 47K NTC und habe diesen mit einem 47K Wiederstand abgesichert, also andere Bauteile als in der Beschreibung bei http://physicalcomputing.at/page/11
Welcher werte muss ich für meinen verwendeten NTC aus dem Dateblatt nehmen, damit ich die richtige Temp habe.
Diese beiden Werte aus dem Code muss ich anpassen an meinen NTC aber ich bin nicht in der Lage die richtigen werte zu finden.
Ich habe die beiden Werte mal Fett makiert.
float B = 4090; // Wert aus Datenblatt des Thermistors
float Tn = 298.16; // Nenntemperatur in K
float R25 = 3473; // Nennwiderstand in Ohm bei Nenntemperatur (aus Datenblatt)
Danke für die Hilfe, ich weiß sonst nicht mehr weiter.
wiseo 10K Ohm wiederstand? Ich dachte, so habe ich es gelsene das ich zu dem NTC den gleichen Wiederstand benutzen muss. Ich habe einen 47K Wiederstand eingesetz. Wenn ich jetzt einen 10K einsetze zerschiesse ich damit mein Board?
Wie gesagt bin ein absoluter Anfänger!
Der orginale Spannungsteiler des Beispiels ist 1kOhm Widerstand und ein 4,7kOhm NTC.
Du hast nun enen 47kOhm NTC (zehn mal so groß). damit das Spannungsverhältnic gleich bleibt mußt Du einen 10kIhm widerstand verwenden.
Also 10kOhm Widerstand und 47Kohm NTC.
Da diese Werte etwas hoch für den analogen Eingang sind mußt Du mehrfach messen damit Du den richtigen Wert mißt.
Viele Grüße Uwe
Habe ich gemacht! Aber welche Werte aus dem Datenblatt vom NTC muss ich eintragen.
Ich bekomme jetzt z.B. aktuell mit diesen einstellungen bei ca.20 Grad Celsius -47.99 Grad Celsius heraus!
float B = 5229; // Wert aus Datenblatt des Thermistors
float Tn = 298.16; // Nenntemperatur in K
float R25 = 3473; // Nennwiderstand in Ohm bei Nenntemperatur (aus Datenblatt)
Daran kannst du enscheiden, ob du es falsch angeschlossen hast oder ob du einen Fehler in deiner Berechnung hast.
Wenn ich den Thread richtig verstehe, hast du einen R25 = 47000
( Im Datenblatt sehe ich dazu B = 4090. )
Aber die grundsätzliche Frage ist doch, wo der Spannungsteiler-Widerstand berücksichtigt wird.
i = u1/1000; // Strom wird berechnet
Was ist wohl in dieser Zeile falsch ?
Das schöne an Temperaturen ist, dass man alles sehr gemütlich langsam nachmessen kann, und auch noch ( in deinem Fall ) Werte hat, die man leicht verifizieren kann.
danke das due mir bei der Lösung helfen willst der Sensowert zeigt bei den eingestellten Parameter 1023.00 bei ca. 20.5 Grad Celsius in meinem Raum an.
Ich habe wie von uwefed den NTC mit einmen 10K Wiederstand eingesetz.
So wie du beschrieben hast, ist alles richtig, aber was macht die Zeile
i = u1/1000; // Strom wird berechnet
Ich bin ein blutiger Anfänger und habe wirklich keine Ahnung was ich da überhaupt mache. Aber dafür ist ja Arduino da um das ganze mal zu kapieren was so in der Welt der bits und bytes so abgeht
Wie kommst du darauf, würde mich mal interessieren wie du auf die 5V kommst! Es würde mir helfen damit ich was lerne und nicht nur das nachbau was andere so aufstecken auf so ein bredboard!
Was soll ich machen auf 3.3V stecken, und warum?
Danke
1023 ist der höchste Wert den der ADC mißt. Bei einer standartmäßig eingestellten 5V Referenz entspricht 1023 genau 5V.
Bei einem Spannungsteiler von 10kOhm inserie zu ca 47Kohm Der zwischen 5V und Masse geschaltet werden muß ca 4V am Analogeingang anliegen (ADC ca 850) . Du mißt aber 5V. Das heißt der NTC ist nicht richtig eingesteckt und macht keinen Kontakt auf Masse oder auf den Eingang.