erzeugen eines eklektrichen Widerstands?

...und heut morgen standen 5,19 über der Perle an.

Wenn mein Metex richtig geht, wären das ca 0,1V pro Grad?
So über den dicken Daumen?

Sonnige Grüße aus dem regnerischen Schleswig Holstein!

hab die nötige Baugruppe erst einmal eingesteckt...

Wie sieht denn eine solche "Baugruppe" aus?

Das wäre zb die Baugruppe ZFO 1 für die Centratherm ZG52.
Ohne diese Baugruppe ist der Fühler wirkungslos.
(hut ab, die Regelung hat nur mit Kurven die Temperatur regelung gut geschafft!)

So sieht die aus

joda44:
...und heut morgen standen 5,19 über der Perle an.

Wenn mein Metex richtig geht, wären das ca 0,1V pro Grad?
So über den dicken Daumen?

Sehr unwahrscheinlich. Der NTC hat eine exponentielle Kurve. Das Datenblatt des NTC hattest du oben angehängt. Du brauchst auch noch die Spannungen bei deutlich abweichenden Temperaturen (z.B. 30°C und 10°C).

Ok --- ich werde mal versuchen, die Perle festzuhalten, und die Temperatur / Spannung zu messen.

mit den 10 Grad --langes Kabel ran, und das Ding mal in den Kühlschrank?

Leg einen Eiswürfel drauf

Der NTC hat eine exponentielle Kurve

... Die bei -273 °C anfängt. Weit genug weg davon in einem relativ kleinen Bereich kannst du schon einfach linear interpolieren. Mit genügend dickem Daumen. :wink:

Die NTC-Grundregel (kleinere Temperatur = größerer Widerstand) gilt jedenfalls immer, und reicht zum Regeln und zum Anzeigen eines plausiblen Wertes aus.

michael_x:
... Die bei -273 °C anfängt. Weit genug weg davon in einem relativ kleinen Bereich kannst du schon einfach linear interpolieren. Mit genügend dickem Daumen. :wink:

Die NTC-Grundregel (kleinere Temperatur = größerer Widerstand) gilt jedenfalls immer, und reicht zum Regeln und zum Anzeigen eines plausiblen Wertes aus.

Ich habe es mal ausgerechnet. Das klappt, obwohl der Widerstand sehr merklich exponentiell ist. In der Spannungsteilerformel heben sich bei passender Auslegung des Spannungsteiler exponetieller Anteil des NTC und das Teilerverhältnis des Teilers recht gut auf.

Guten Morgen,

ich freue mich echt, hier so tolle Hilfe zu bekommen.
Ein längeres Kabel ist bereitgelegt, und ein (ziemlich genaues) Thermometer mit Fernfühler habe ich mir auch besorgt.
Da werde ich heut abend oder morgen früh mal ein paar Werte aufnehmen.

Ich hatte mir bei eBay noch so ein Kit für den Arduino besorgt, da war auch ein Temperatursensor bei.
Fix auf dem Brett zusammengesteckt, ein Besipiel - Sketch gesucht, noch einen und ratlosigkeit:
Die Temperatur stimmt irgendwie überhaupt nicht :frowning:

hier mal der (letzte) sketch

/*******************************************************************************/
/* LM35SimpleI - Ausgabe der sukzessive aufbereiteten Sensorwerte eines LM35DZ
* Temperatursensors über den seriellen Monitor von knapp 0°C bis +100°C.
*
* Getestet mit:         Arduino Uno
*                       Arduino IDE 1.63/1.64
*
* Referenz:             -
*
* Original Autor:       http://arduino-hannover.de/
*                       Arduino Treffpunkt Hannover
* Autor:                Olaf Meier
*                       https://electronicfreakblog.wordpress.com/
*
* Modifiziert von:
* Autor:
*
* Hardware Verbindung:  Ardu  -  LM35
*                       +5V   -  1 Vs
*                       A5    -  2 Vout
*                       GND   -  3 GND
*                                 _____
*                                /     \  Frontansicht auf Laserbeschriftung
*                                -------
*                                |  |  |
*                                1  2  3
*                                |  |  |
*                               Vs  Vo GND
*
* Ergänzungen:          -
*
*/
/*******************************************************************************/
/*******************************************************************************/
/***   Deklaration globaler Konstanten, Variablen, Import von Bibliotheken   ***/
/*******************************************************************************/
/***  Software Version und Datum  ***/
const char* sketchname            =  "LM35SimpleI";
const char* revision              =  "R.1.0";
const char* author                =  "Olaf Meier";
const char* date                  =  "2015/11/11";

/*******************************************************************************/
/***  Deklariere Konstanten und Variablen für diesen Sketch  ***/
const unsigned int BAUDRATE       =  9600;         // Serieller Monitor Baud Rate
const byte TEMPSIGNALPIN          =  A5;           // Sensorsignal an Analogpin A5

/*******************************************************************************/
/******************************************+************************************/
void setup() {
 /***  Starte den seriellen Monitor und warte jetzt auf Daten zur Ausgabe  ***/
 Serial.begin(9600);                              // Starte seriellen Monitor

}                                                  // Ende der Setup Routine (Einmalig)
/*******************************************************************************/
/*******************************************************************************/
void loop() {
 int value = analogRead(TEMPSIGNALPIN);           // LM35 Sensorwert einlesen
 delay(1000);                                     // 1s Verzögerung zwecks Anzeige 

 Serial.println("--------------------------");    // Trennlinie mit jeder Messung
 Serial.print("Digitalwert AD-Wandler: ");
 Serial.println(value);                           // Wert AD-Wandler 0 bis 1023

 Serial.print("Eingangsspannung: ");
 float milliVolt = (value * 5000.0) / 1024.0;     // Berechne Messung in mV
 Serial.print(milliVolt);
 Serial.println("mV");

 Serial.print("Temperatur: ");
 float celsius = milliVolt / 10;                  // 10mV entsprechen 1°C
 Serial.print(celsius);
 Serial.println(" Celsius");
}                                                  // Ende der Loop Routine (Endlos)
/*******************************************************************************/

Der Sketch ist doch für einen ganz anderen Sensor.

Hm - vielleciht sollte ich es genauer beschreiben.

Ich habe einen LM35(DZ) , der die Raumtemperatur messen soll.
Nach dem , was da bei heruaskommt , soll ja nacher der Optokoppler den Wert simulieren, den der NTC bei der Raumtemperatur hätte.

Gruß

Ich habe es wie bei Funduino Nr.10 Temperatur messen gemacht und erhalte:

18 Grad Celsius
18 Grad Celsius
18 Grad Celsius
19 Grad Celsius
18 Grad Celsius
18 Grad Celsius
18 Grad Celsius

  1. Es gibt Nr.10 Temperatur messen – Funduino – Kits und Anleitungen für Arduino und Nr.10 – Temperatur messen mit dem LM35 – Funduino – Kits und Anleitungen für Arduino, die zu unterschiedlichen Ergebnissen führen:

temperatur= map(sensorwert, 0, 410, -50, 150); // TMP36, den habe ich
temperatur= map(sensorwert, 0, 307, 0, 150); // TMP35

... vielleciht hat ja mein LM einen Hau weg. Montag oder Dienstag kommen zwei neue...

Ich habe heute morgen mal ein paar Werte über dem originalen NTC agbenommen. Abgekühlt habe ich im Kühlschrank, mit erwärmen meine ich die normale Aufheizung durch die Umgebungsluft.
Die Werte beim abkühlen gefallen mir nicht - beim erwärmen sehen die ganz gut aus?
Temperatur / Spannung über dem original NTC

Abkühlen: Differenz

20.9 5.44
19.0 5.82 1.9 / 0.38
17.7 5.94 1.3 / 0.12
16.3 6.09 1.4 / 0.09

Erwärmen:

16.6 5.96
17.1 5.88 0.5 / 0.08
17.3 5.86 0.2 / 0.02
17.4 5.84 0.1 / 0.02
17.9 5.79 0.5 / 0.05
18.4 5.76 0.5 / 0.03
19.1 5.69 0.7 / 0.07
19.5 5.65 0.4 / 0.04

sonntägliche Grüße...

-> Edit
Fernfühler vom Thermometer und NTC mit Kabelbinder zusammen gelegt und in einem Glas Wasser gemessen

Hallo zusammen,

Mittlerweile habe ich das mit der Temperaturmessung soweit hin - bin aber zu dusselig für den Mittelwert :frowning:

/********************************/
// include the library code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
/**********************************************************/

#define LM35 A0 //Sensor Pin
#define LM352 A1 //Sensor Pin
#define ref_voltage 1.08 //actually measured AREF Voltage
#define volt2temp 94
#define average_count 100
#define average_count2 100
#define prop_constant ref_voltage* volt2temp / 1024 /average_count

// initialize the library with the numbers of the interface pins
LiquidCrystal_I2C lcd(0x3f,20,4); // set the LCD address to 0x3F for a 20 chars and 4 line display
//
void setup()
{
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
analogReference(INTERNAL);
}
/
/
void loop()
{
int sensorValue = 0;
int sensorValue2 = 0;
int sensormiddle = 0;
lcd.setCursor(0,0);
lcd.print("Uhrzeit/Datum An/Aus");

// read the sensor multiple times and sum up the readings
for (int i = 0; i < average_count; i++){
sensorValue += analogRead(LM35);
}
for (int k = 0; k < average_count2; k++){
sensorValue2 += analogRead(LM352);

sensormiddle = (sensorValue/1000 + sensorValue2/1000)/2 *1000 ;
}
lcd.setCursor(0,1);
lcd.print((sensorValue * prop_constant)); lcd.print(" "); lcd.print((char)223); lcd.print("C");lcd.print(" / ");lcd.print((sensorValue2 * prop_constant)); lcd.print(" "); lcd.print((char)223); lcd.print("C");
lcd.setCursor(0,2);
lcd.print(sensorValue); lcd.print(" "); lcd.print(" V");lcd.print(" / ");lcd.print(sensorValue2); lcd.print(" "); lcd.print("V");
lcd.setCursor(0,3);
lcd.print(((sensorValue/1000 + sensorValue2/1000)/2 *1000) * prop_constant);lcd.print(" "); lcd.print((char)223); lcd.print("C");;lcd.print(" Mittelwert");
delay(500);
}

Das wäre der sketch bis jetzt, der immerhein das 4x20 Zeichen Display über I2C ansteuert und schon mal beide Temperaturen darstellt.
Der Mittelwert klappt noch nicht... aber wieso? es ist auch egal ob ich das unten rechner, oder oben sensormiddle nehme seufz
Wo denke ich falsch?

Grüße aus dem Norden

Bitte setze Deinen Sketch in Codetags (</> oben links), dann ist er besser lesbar.

Deine Mittelwertbildung ist in der Tat etwas merkwürdig. Du summierst jeweils 100 Werte und teilst durch 1000. Außerdem hast Du wohl nicht beachtet, dass Du eine Ganzzahldivision durchführst, als 900 / 1000 = 0 und 1001/1000 = 1 und ebenfalls 1999/1000 = 1.

Was soll Dein Mittelwert denn aussagen? Den Mittelwert zwischen 2 Sensoren?

Gruß Tommy

joda44:

int sensorValue = 0;

int sensorValue2 = 0;
int sensormiddle = 0;
[...]
sensormiddle = (sensorValue/1000 + sensorValue2/1000)/2 *1000 ;


Der Mittelwert klappt noch nicht... aber wieso? es ist auch egal ob ich das unten rechner, oder oben sensormiddle nehme *seufz*
Wo denke ich falsch?

Du rechnest mit Integerzahlen. z.B. 153/1000 ist 0. Der Nachkommateil wird abgeschnitten. Null kannst du anschließend mit Unendlich mal nehmen, da kommt immernoch Null heraus.

Warum nimmst du nicht einfach

sensormiddle = (sensorValue + sensorValue2)/2;

Abgesehen davon ist der LM35-Messwert extrem abhängig von der Spannung des Arduinos. Er wird wesentlich genauer, wenn du die Interne 1,1V-Referenz nimmst mit analogReference(INTERNAL1V1). Freilich musst du die Umrechnung von 5V auf 1,1V abändern.
Für das fertige Projekt solltest du DS18B20 einplanen. Die analogen Sensoren sind gegenüber Störungen sehr empfindlich. Bei längeren Kabeln wird es schwierig vernünftige Messwerte zu bekommen.

...Aber ich hab doch die interne Referenz genommen? :confused:

So schlecht sehen die Werte auch nicht aus.
Der Mittelwert zieht auch nach , aber mächtig träge.
(Den sensormiddle hatte ich zu Anfang genommen, aber irgendwie war ich da zu ungeduldig.)

:frowning:

Den Code werde ich nächstes Mal natürlich dann in die Tags setzen sorry

der eine Snsor soll direkt an der Steuerplatine sein, der zweite an ca 2m Kabel... 2x2x0,8 Telefonkabel, wegen dem Schirm.

Oder ist das genauso verwegen?

Grüße

joda44:
...Aber ich hab doch die interne Referenz genommen? :confused:

der eine Snsor soll direkt an der Steuerplatine sein, der zweite an ca 2m Kabel... 2x2x0,8 Telefonkabel, wegen dem Schirm.

Oder ist das genauso verwegen?

Die Referenz hatte ich übersehen. Die fehlenden Code-Tags wohl.

Probiere einfach aus, ob du mit längerem Kabel vernünftige Messwerte bekommst.