Pages: [1]   Go Down
Author Topic: NTC keine richtigen Grad Celisus Werte....  (Read 1438 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

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.


Ich habe folgende Zusammenstellung

http://physicalcomputing.at/page/11

Hier mein NTC-0,2 47K
http://www.reichelt.de/Heissleiter-Varistoren/NTC-0-2-47K/3//index.html?ACTION=3&GROUPID=3114&ARTICLE=13564&SHOW=1&START=0&OFFSET=16&

Hier das Datenblatt des NTC
http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=B400%252FNTC-02_Serie.pdf;SID=13UMoX5X8AAAIAAFbh3vc32361b7bbf339c5fec8cd4f16205b211

Hier zum besseren Überblick der Code nochmal
Code:
/*
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.

Danke vielmals an alle die mir helfen.



Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 248
Posts: 21170
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: December 15, 2012, 05:11:36 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo uwefed,

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

Mein NTC ist dieser hier
Hier mein NTC-0,2 47K
http://www.reichelt.de/Heissleiter-Varistoren/NTC-0-2-47K/3//index.html?ACTION=3&GROUPID=3114&ARTICLE=13564&SHOW=1&START=0&OFFSET=16&

und hier das Datenblatt dazu
http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=B400%252FNTC-02_Serie.pdf;SID=13UMoX5X8AAAIAAFbh3vc32361b7bbf339c5fec8cd4f16205b211

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.


Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 248
Posts: 21170
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das habe ich schon so verstanden.
Nimm statt des 1kOhm Widerstandes im Spannungsteiler mit den NTC einen 10kOhm.
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo uwefed,

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!

Finde ich super das du mir hilfst!



* 20121216_093100.jpg (66.12 KB, 379x505 - viewed 25 times.)
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 248
Posts: 21170
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!

Code:
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)
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2973
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was sagt denn
Serial.print (sensorWert);
???

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.

Quote
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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo michael_x,

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

Code:
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  smiley

Danke für eure Hilfestellungen.
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2973
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
der Sensowert zeigt bei den eingestellten Parameter 1023.00
Dann such mal zuerst auf der elektrischen Seite ...
An deinem Analogpin sind ziemlich genau 5V, und das ist nicht gut   smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 32
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2973
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schau dir analogRead() an
Quote
Returns
int (0 to 1023)


... und wie ein Spannungsteiler funktioniert.

Hast du ein Messgerät ? Das wäre bequemer und sicherer als ein Sketch mit
Code:
loop() {
Serial.print( "Spannung an A0 :  " );
Serial.println(analogRead(0) * 5.0 / 1023);
delay (300);
}


Das mit den 5V gilt natürlich nur im Normalfall eines 5V - Arduino. Das Ganze mit 3.3V zu betreiben ist keine Lösung.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 248
Posts: 21170
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Grüße Uwe
Logged

Pages: [1]   Go Up
Jump to: