Forum: Mikrocontroller und Digitale Elektronik Aufwärmzeit DS18B20 Sensoren


von Jürgen (Gast)


Lesenswert?

Hallo,

ich habe festgestellt das die DS18B20 Sensoren Teils einige Minuten 
benötigen bis Sie genaue Werte anzeigen.
Ca erst nach 1 Minute kann ich mich dann auf deren werte verlassen...

Weiß jetzt nicht ob dies mit der Anzahl der Abfragen/Minute zu tun hat 
oder wie ich das in meinem Programm berücksichtigen muss.

Wie macht man dies am besten?
Ich möchte ja nicht dass wenn ich alle 10 Minuten die Sensoren abfrage 
diese erstmal 1 Minute lang in einer Programmschleife warmlaufen lassen 
muss

 Grüße Jürgen

von Einhart P. (einhart)


Lesenswert?

Die Sensoren zeigen sofort exakte Werte. "Warmlaufen" kommt durch 
Eigenerwärmung bei zu häufiger Abfrage oder Wärmezufuhr aus der 
Schaltung über die Anschlussdrähte.

von Jürgen (Gast)


Lesenswert?

Jürgen schrieb:
> bis Sie genaue Werte anzeigen.

Mit genaue Werte meine ich

Die Sensoren sind bei einer Temp ~ 30 C°   um ca. +/- 0,5 C° im meines 
Referenzwertes eines TESTO 905-T1 Messgerätes.

Beim Neustart des Programms und beim ersten Auslesen weichen die DS18B20 
Sensoren bis zu 3 Grad voneinander ab.

Lasse ich die Sensorenabfrage in einer Schleife mit 3 Sekunden Wartezeit 
laufen, so pendeln sie sich nach ca 1 Minute ein und zeigen fast alle 
die gleichen Werte. Die DS18B20 weichen dann im Differenzbereich von ca 
0,2 - 0,6 C° voneinander ab und sind auch im bereich von +/- 0,5 C° zum 
TESTO 905-T1 Messgerätes.

Das ist natürlich kein 100% genaues Gerät das TESTO aber doch so genau, 
dass ich mit den Werten gut leben kann

Anscheinend brauchen die DS18B20 Sensoren etwas Aufwärmzeit.
Hatte vor einiger Zeit mal eine test darüber gelesen dort war es 
ähnlich.

Mich würde mal interessieren wie man das am besten programmiertechnisch 
machen sollte

von Toxic (Gast)


Lesenswert?

Jürgen schrieb:
> ich habe festgestellt das die DS18B20 Sensoren Teils einige Minuten
> benötigen bis Sie genaue Werte anzeigen.

Das kann ich bestaetigen.Liegt aber unter anderem hauptsaechlich daran 
wie der IC verpackt ist.
Hab mir auf Ebay vor einiger Zeit so ein Temperaturmessgeraet DST1000 
besorgt um meine Zimmertemperatur genau zu erfassen.Das funktioniert 
soweit auch ganz gut aber fuer schnelle Messungen ist das ganze etwas zu 
traege:Um z.B. die eigene Koerpertemperatur zu messen benoetigt man 
schon so 1-3 Minuten....

Benutzte Sonde
https://www.ebay.de/itm/1-2-5-10-PCS-Waterproof-Digital-Thermal-Probe-or-Sensor-DS18B20-Length-1M/311947905932?hash=item48a18b4b8c:m:mZGL7NIZoNatddmOty30mEQ

DST100
https://www.ebay.de/itm/DST1000-DC12-72V-AC110-220V-Temperature-Controller-Thermostat-and-DS18B20-Probe/401674631125?hash=item5d85ac77d5:m:mWOyTn1V-Kb_E8yg7yovUJA

von Joachim B. (jar)


Lesenswert?

Jürgen schrieb:
> Anscheinend brauchen die DS18B20 Sensoren etwas Aufwärmzeit.
> Hatte vor einiger Zeit mal eine test darüber gelesen dort war es
> ähnlich.
>
> Mich würde mal interessieren wie man das am besten programmiertechnisch
> machen sollte

Die erste Messzeit speichern und später mit weiteren Messzeiten 
vergleichen?
Der Vergleich kann ja dann entfallen wenn die erste Zeit abgelaufen ist.

Ausserdem sollte man nicht zu oft hintereinander messen um 
Eigenerwärmung von DS zu vermeiden.

von Einhart P. (einhart)


Lesenswert?

Abfragen alle 3s führen bereits zu einer geringen Eigenerwärmung. Das 
die Messwerte erst nach einigen Messungen genau sind kann ich nicht 
bestätigen.

von Jürgen (Gast)


Lesenswert?

Einhart P. schrieb:
> Die Sensoren zeigen sofort exakte Werte.

Also ich hatte eine Bericht gelesen da war es ähnlich das die Sensoren 
nach X-sekunden genauere Werte zeigten... mir ist leider der Link 
abhanden gekommen.
Damals wurden BME280, DS18B20, DHT22 und SHT Sensoren getestet


Wenn Du aber auch mehrere Sensoren an einen Bus hast und sofort genaue 
werte gezeigt werden dann muss bei mir was nicht stimmen.

Ich habe alle Sensoren Sternförmig geschaltet (ja ich weiss das ist 
nicht die idealste Verkabelung.

ich verwende ein 2x2x0,8 geschirmtes Kabel
Die Strecken der Sternschaltung schwanken zw. 1,5 und 3,5 Meter.
Insgesamt sind ~ 20 Meter verbaut.
Es hängen insgesamt 11 Sensoren an dem Bus

Bis zum 9 Sensor reichte der Pull-Up mit 4,7K
ab dem 10. Sensor musste ich einen weiteren 4,7K Pull-Up parallel 
schalten

mmmhh?

von Jürgen (Gast)


Lesenswert?

Toxic schrieb:
> Um z.B. die eigene Koerpertemperatur zu messen benoetigt

Achtung:
Nicht das ich es falsch erklärte.

Die Sensoren lagen bei diesem Test schon Stunden im Raum.
Deren Hülle hat sich also schon an die Umgebungstemp angepasst.
Bei einer Körpermessung dauert das ja bis sich die Hülle des Sensors an 
die Umgebung angepasst hat. Das würde mir sofort einleuchten das ich 
hier etwas mehr warten muss

Es geht hier in meiner Frage also rein um den Sensor der schon lange 
Zeit hatte sich die zu messende Umgebung in seinem Baukörper 
anzugleichen.

von Jürgen (Gast)


Lesenswert?

Einhart P. schrieb:
> Das
> die Messwerte erst nach einigen Messungen genau sind kann ich nicht
> bestätigen.

Wieviele sensoren hast Du an einem Bus und wie lange sind da die 
einzelnen Strecken?

Vielleicht liegt es bei mir ja doch an der Verkabelung

von Joachim B. (jar)


Lesenswert?

Einhart P. schrieb:
> Das
> die Messwerte erst nach einigen Messungen genau sind kann ich nicht
> bestätigen.

ich weiss das die Eigenerwärmung meiner NETIO Platine auf den Sensor 
durchkommt, Sensor auf NETIO Platine ist immer etwas wärmer als der 
abgesetzte Sensor.

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:


> ich habe festgestellt das die DS18B20 Sensoren Teils einige Minuten
> benötigen bis Sie genaue Werte anzeigen.

Nö.

> Ca erst nach 1 Minute kann ich mich dann auf deren werte verlassen...

Die stärkste Wärmekopplung erfolgt über die Anschlüsse auf den IC. Das 
Kunststoffgehäuse wirkt eher wie eine Wärmeisolation. Also solltem man 
die Anschlüsse an eine möglichst große Kupferfläche anschließen, damit 
Temperaturänderungen schnell auf den IC wirken könnnen. Dann reagiert 
der IC in ein paar Sekunden und ist vielleicht in 10s-20s auf den 
Endwert eingeschwungen.

> Weiß jetzt nicht ob dies mit der Anzahl der Abfragen/Minute zu tun hat
> oder wie ich das in meinem Programm berücksichtigen muss.

Man sollte die Sensoren nicht zu oft abfragen, denn die Aktivität des 
ICs erzeugt Wärme auf dem IC. Nicht viel, aber genug um das Ergebnis um 
1-2°C zu verfälschen, denn während der Messung zieht der IC ca. 1,5mA * 
5V = 7,5mW für ca. 750ms. Wenn man mal von geschätzen 300K/W 
Wärmewiderstand des TO92 Gehäuses ausgeht, macht das grob
1
7,5mW * 0,75s * 300K/W = 1,7K

wenn man den IC mit 1 Hz ausliest. Ganz schön viel. Irgendeine 
Application Note empfiehlt wohl 10s und mehr als Pause zwischen den 
Abfragen.

> Ich möchte ja nicht dass wenn ich alle 10 Minuten die Sensoren abfrage
> diese erstmal 1 Minute lang in einer Programmschleife warmlaufen lassen
> muss

Muss man nicht.

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:
> Anscheinend brauchen die DS18B20 Sensoren etwas Aufwärmzeit.

Ganz sicher nicht.

von Jürgen (Gast)


Lesenswert?

Falk B. schrieb:
> Ganz sicher nicht.

Wie ist dies dann zu erklären?

Das mit der Eigenerwärmuung durch häufiges Abfragen versuchte ich durch 
größere Wartezeiten auch zu testen.

Kann es an der Verkabelung liegen?
Das meine Kabellängen in der Sternschaltung nicht alle gleich sind?

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:
> Falk B. schrieb:
>> Ganz sicher nicht.
>
> Wie ist dies dann zu erklären?

Gute Frage ;-)

> Das mit der Eigenerwärmuung durch häufiges Abfragen versuchte ich durch
> größere Wartezeiten auch zu testen.

Mach mal.

> Kann es an der Verkabelung liegen?

Sehr unwahrscheinlich. Eher an verschiedenen thermischen Kopplungen. Ein 
Sensor hat eine gute Kopplung über die Anschlüsse und große 
Metallflächen, der andere nicht.

> Das meine Kabellängen in der Sternschaltung nicht alle gleich sind?

Das ist vollkommen egal. Aber um Übertragungsfehler auszuschließen, 
sollte man auf jeden Fall eine CRC-Prüfung der Empfangsdaten vornehmen.

"Beim Neustart des Programms und beim ersten Auslesen weichen die 
DS18B20
Sensoren bis zu 3 Grad voneinander ab."

Was ist das für ein Programm? Sind da irgendwelche "schlauen" Filter 
drin, die vielleicht nicht korrekt initialisiert sind und dadurch den 
"Meßwert" verfälschen?

Wie werden deine Sensoren mit Strom versorg? Normal mit 3 Leitungen oder 
parasitär?

Wie lang sind deine Leitungen? Wir hatten hier schon einen Fall, wo an 
einer recht langen Leitung mit unklarer Leitungsführung und 
Störeinkopplung erst dann saubere Meßwerte empfangbar waren, nachdem ein 
100nF Kondensator nah am IC platziert wurde.

Wenn man mehrer Sensoren mit identischem Aufbau für vielleicht 30min 
temperieren läßt, müssen die beim 1. Auslesen schon alle nahezu die 
gleichen Werte anzeigen.

von Einhart P. (einhart)


Lesenswert?

probleme mit der Verkabelung führen vielleicht zu einzelnen komplett 
falschen  Werten aber niemals zu geringen systematischen Abweichungen.

von Günter R. (galileo14)


Lesenswert?

Falk B. schrieb:
> Wie lang sind deine Leitungen? Wir hatten hier schon einen Fall, wo an
> einer recht langen Leitung mit unklarer Leitungsführung und
> Störeinkopplung erst dann saubere Meßwerte empfangbar waren, nachdem ein
> 100nF Kondensator nah am IC platziert wurde.

Das kann ich bestätigen, das ist sehr wichtig.

Ich halte eine Wartezeit zwischen Messungen von mind. 20 Sek. ein.

von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Wie werden deine Sensoren mit Strom versorg? Normal mit 3 Leitungen oder
> parasitär?
>
> Wie lang sind deine Leitungen? Wir hatten hier schon einen Fall, wo an
> einer recht langen Leitung mit unklarer Leitungsführung und
> Störeinkopplung erst dann saubere Meßwerte empfangbar waren, nachdem ein
> 100nF Kondensator nah am IC platziert wurde.

Ok...

habe nun nochmal alles neu verbunden (die Kabelenden)
die Sensoren hängen alle auf gleicher Höhe, sind also keine 
Temp-Unterschiede

jetzt ist die Abweichung bei ~ 0,8 C°... das wäre NOCH im Rahmen
für meine Anforderung
Vielleicht wird es noch besser wenn die Enden dann sauber verlötet sind.
Ein Propblem an der Verkabelung habe ich noch

Die wasserdichten Sensoren haben alle das Billig-Kabel dran was nicht 
geschirmt ist...
hoffe das dies keine Probleme macht

Ist es hier besser sich wasserdichte Sensoren selbst zu bauen... mit 
geschirmten Kabel und in Epoxy eintauchen?

anbei mal ein Bild was u.U nicht viel aussagt

Ich habe sie nicht parasitär angeschlossen sondern über 3 Adern auch 
direkt mit Spannung versorgt
Da es ab dem 9. Sensor zu Problemen kam, habe ich nun einen zweiten 4.7K 
Widerstand parallel geschaltet um den Pull-up zu erhöhen
Seit dem werden alle 11 auch gefunden und ausgelesen

Ich habe hier 7 x DS18B20 lose Sensoren
und
4 x DS18B20 wasserdichte Sensoren an den üblichen Billig-Kabeln 
angeschlossen
die 4 wasserdichten Sensoren habe ich über billige nicht wasserdichte 
Mikrofone-Kupplungen verbunden (da sie im Raum keiner Luftfeuchtigkeit 
unterliegen brauche ich bei den Kupplungen nichts wassserdichtes)

Die einzelnen Kabel sind zw. 1,5m und ~ 4m lang

Aktuell habe ich am Testsystem alle Leitungen nur mit einer E-Klemme 
verbunden, also nicht sauber zusammengelötet (die Sensoren sind jedoch 
gelötet)
Evtl ist das ein Problemchen...

Hier der Code

Sorry weiß nicht wie ich diesen hier sauber formatiert einfügen kann
Es ist ein Standardcode aus der Lib
#################################################################
#include <OneWire.h>

// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperature_Control_Library

OneWire  ds(2);  // on signal pin (a single 4.7K resistor is necessary)

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

void loop(void) {
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;

  if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println("________________________________________________________ 
_");
    ds.reset_search();
    delay(10000);
    return;
  }

  Serial.print("ROM =");
  for( i = 0; i < 8; i++) {
    Serial.write(' ');
    Serial.print(addr[i], HEX);
  }

  if (OneWire::crc8(addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return;
  }
  Serial.println();

  // the first ROM byte indicates which chip
  switch (addr[0]) {
      case 0x28:
      Serial.println("  Chip = DS18B20");
      type_s = 0;
      break;
      default:
      Serial.println("Device is not a DS18x20 family device.");
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on 
at the end

  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of 
it.

  present = ds.reset();
  ds.select(addr);
  ds.write(0xBE);         // Read Scratchpad

  Serial.print("  Data = ");
  Serial.print(present, HEX);
  Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    Serial.print(data[i], HEX);
    Serial.print(" ");
  }
  Serial.print(" CRC=");
  Serial.print(OneWire::crc8(data, 8), HEX);
  Serial.println();

  // Convert the data to actual temperature
  // because the result is a 16 bit signed integer, it should
  // be stored to an "int16_t" type, which is always 16 bits
  // even when compiled on a 32 bit processor.
  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    // at lower res, the low bits are undefined, so let's zero them
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
    //// default is 12 bit resolution, 750 ms conversion time
  }
  celsius = (float)raw / 16.0;
  fahrenheit = celsius * 1.8 + 32.0;
  Serial.print("  Temperature = ");
  Serial.print(celsius);
  Serial.print(" Celsius, ");
  Serial.print(fahrenheit);
  Serial.println(" Fahrenheit");
}


#####################################

hier die Ausgabe

ROM = 28 E0 87 8B A 0 0 8A
  Chip = DS18B20
  Data = 1 78 1 4B 46 7F FF 8 10 51  CRC=51
  Temperature = 23.50 Celsius, 74.30 Fahrenheit
ROM = 28 F4 CD 89 A 0 0 5E
  Chip = DS18B20
  Data = 1 7D 1 4B 46 7F FF 3 10 24  CRC=24
  Temperature = 23.81 Celsius, 74.86 Fahrenheit
ROM = 28 72 D 5D 5 0 0 74
  Chip = DS18B20
  Data = 1 70 1 4B 46 1F FF 10 10 71  CRC=71
  Temperature = 23.00 Celsius, 73.40 Fahrenheit
ROM = 28 1A 63 8B A 0 0 F2
  Chip = DS18B20
  Data = 1 7B 1 4B 46 7F FF 5 10 1D  CRC=1D
  Temperature = 23.69 Celsius, 74.64 Fahrenheit
ROM = 28 6 BD 8A A 0 0 A7
  Chip = DS18B20
  Data = 1 7B 1 4B 46 7F FF 5 10 1D  CRC=1D
  Temperature = 23.69 Celsius, 74.64 Fahrenheit
ROM = 28 86 55 8B A 0 0 26
  Chip = DS18B20
  Data = 1 7D 1 4B 46 7F FF 3 10 24  CRC=24
  Temperature = 23.81 Celsius, 74.86 Fahrenheit
ROM = 28 66 23 8A A 0 0 71
  Chip = DS18B20
  Data = 1 7C 1 4B 46 7F FF 4 10 9  CRC=9
  Temperature = 23.75 Celsius, 74.75 Fahrenheit
ROM = 28 56 45 8A A 0 0 11
  Chip = DS18B20
  Data = 1 7B 1 4B 46 7F FF 5 10 1D  CRC=1D
  Temperature = 23.69 Celsius, 74.64 Fahrenheit
ROM = 28 E 30 5D 5 0 0 F9
  Chip = DS18B20
  Data = 1 78 1 4B 46 1F FF 8 10 C1  CRC=C1
  Temperature = 23.50 Celsius, 74.30 Fahrenheit
ROM = 28 FF A EC 1 17 3 65
  Chip = DS18B20
  Data = 1 70 1 4B 46 1F FF 1F 10 69  CRC=69
  Temperature = 23.00 Celsius, 73.40 Fahrenheit
ROM = 28 FF BB FA 53 17 4 61
  Chip = DS18B20
  Data = 1 78 1 4B 46 1F FF 1F 10 43  CRC=43
  Temperature = 23.50 Celsius, 74.30 Fahrenheit
No more addresses.

von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

sorry
er hatte das andere Bild nicht mit hochgeladen

von Falk B. (falk)


Lesenswert?

Jürgen schrieb:

> habe nun nochmal alles neu verbunden (die Kabelenden)
> die Sensoren hängen alle auf gleicher Höhe, sind also keine
> Temp-Unterschiede

Hmmm. Wenn du aber Zugluft hast, und das geht schnell, auch wenn man es 
nicht merkt, hast du wieder Unterschiede. So eine genaue 
Temperaturmessung ist nicht ganz trivial, auch wenn die Sensoren sehr 
gut sind.

> jetzt ist die Abweichung bei ~ 0,8 C°... das wäre NOCH im Rahmen
> für meine Anforderung

Kauf dir mal 5 IC, pack die auf Lochraster und steck die in eine Kiste. 
Dann test nochmal. Dann hast du eine Chance, die wahre Toleranz der 
Sensoren zu sehen.

> Vielleicht wird es noch besser wenn die Enden dann sauber verlötet sind.

Nein.

> Die wasserdichten Sensoren haben alle das Billig-Kabel dran was nicht
> geschirmt ist...
> hoffe das dies keine Probleme macht

Denke nicht, wenn du nicht gerade EXTREME Störquellen in der Nähe hast.

> Ist es hier besser sich wasserdichte Sensoren selbst zu bauen... mit
> geschirmten Kabel und in Epoxy eintauchen?

Eher nicht. Aber auf denen Bildern sehe ich viel Kunststoff. Ich 
vermute, daß die thermische Kopplung vom IC zum Gehäuse bei den Sensoren 
nicht so dolle ist. Einfach den IC in ein Metallröhrchen stecken und mit 
Epoxidharz vergießen ist KEINE gute Anbindung, eher eine Isolation!

> Da es ab dem 9. Sensor zu Problemen kam, habe ich nun einen zweiten 4.7K
> Widerstand parallel geschaltet um den Pull-up zu erhöhen

Zu verringern. Es erhöht sich nur der Pull-Up Strom. Man kann bis auf 
ca. 1,2kOhm bei 5V runter gehen, das müssen alle ICs runter ziehen 
können.

> Die einzelnen Kabel sind zw. 1,5m und ~ 4m lang

Das ist unkritisch.

> Aktuell habe ich am Testsystem alle Leitungen nur mit einer E-Klemme
> verbunden, also nicht sauber zusammengelötet (die Sensoren sind jedoch
> gelötet)
> Evtl ist das ein Problemchen...

Wenn du keine Wackelkontakte gebaut hast, ist das unkritisch.

> Hier der Code

>Sorry weiß nicht wie ich diesen hier sauber formatiert einfügen kann

Einfach als Anhang!

>Es ist ein Standardcode aus der Lib

Welche? Sieht nach Arduino-Standard Lib aus.

>  ds.write(0x44, 1);        // start conversion, with parasite power on  at the 
end

Warum das? Wenn deine Sensoren keine parasitäre Versorgung haben, 
braucht man das nicht. GGf. macht das auch Probleme, (Naja, eher nicht, 
denn HIGH ist ja der Ruhezustand des Busses). Trotzdem sollte man solche 
Widersprüche nicht einbauen.

Der Rest sieht OK aus.

von Wolle G. (wolleg)


Angehängte Dateien:

Lesenswert?

Jürgen schrieb:
> Aktuell habe ich am Testsystem alle Leitungen nur mit einer E-Klemme
> verbunden, also nicht sauber zusammengelötet (die Sensoren sind jedoch
> gelötet)
> Evtl ist das ein Problemchen...

Ich kann mir schwer vorstellen, dass es bei digitaler Übertragung einen 
Einfluss auf das Messergebnis gibt. Entweder wird das  Messergebnis 
richtig oder total falsch übertragen.

Mit einem gerade vorhandenen Experimentieraufbau (Regelung eines 
Heizkörperventils) habe ich mal über 10min die Raumtemperatur gemessen, 
gespeichert und als Diagramm dargestellt. Messtakt: 4s.
Vor Beginn der Messung war der Aufbau tagelang abgestellt.
Nur die letzte Stelle (0,0625K) "rauscht".
Es ist kein Trend erkennbar.
Bei mir hängen bei einer anderen Anwendung 8 DS10B20 problemlos an bis 
zu 10m  langen Kabeln.

Mist: Ein Diagramm ist zu viel

: Bearbeitet durch User
von Jürgen (Gast)


Lesenswert?

Falk B. schrieb:
> her nicht. Aber auf denen Bildern sehe ich viel Kunststoff. Ich
> vermute, daß die thermische Kopplung vom IC zum Gehäuse bei den Sensoren
> nicht so dolle ist. Einfach den IC in ein Metallröhrchen stecken und mit
> Epoxidharz vergießen ist KEINE gute Anbindung, eher eine Isolation!
>
Das interessiert mich

Ich habe das 2x2x0,8 Kabel so nah als möglich zu den Lötpunkten 
abgeschirmt gelassen
die einzelnen Adern damit sie auch ja nicht zusammenkommen habe ich mit 
Isolierband gegen Kontakt geschützt
anschliessend habe ich es mit Schrumpfhülsen isoliert

Wie sollte ich die Sensoren sonst ans kabel anbringen und später 
isolieren?
Mir würde hier nur noch Epoxy oder Flüssigplastik einfallen

Meine Anbindung also die Lötstellen sollten ganz ok sein..

>
> Welche? Sieht nach Arduino-Standard Lib aus.

Ja, der Link zur Lib steht im Code

>
>>  ds.write(0x44, 1);        // start conversion, with parasite power on  at the
> end
>
> Warum das?
Das war wohl so in dem Beispielcode eingebaut... wahrscheinlich um alle 
Eventualitäten abzudecken
Wenn die Sensoren nun sauber laufen dann kopiere ich mir das das dem 
code was ich tatsächlich nur benötige

>

von Einhart P. (einhart)


Angehängte Dateien:

Lesenswert?

Die Verkabelung ist bei den Sensoren nicht kritisch. Im normalen Umfeld 
sind geschirmte Leitungen nicht notwendig.

Meine 12 Sensoren liegen an einem ~ 10m langen Bus mit Stichleitungen 
(bis 2m Länge). Da kommen verschiedene ungeschirmte Kabel mit geringem 
Querschnitt zum Einsatz. Falsche Werte bekomme ich nicht.

von Jürgen (Gast)


Lesenswert?

Einhart P. schrieb:
> Meine 12 Sensoren liegen an einem ~ 10m langen Bus mit Stichleitungen
> (bis 2m Länge). Da kommen verschiedene ungeschirmte Kabel mit geringem
> Querschnitt zum Einsatz. Falsche Werte bekomme ich nicht.

das muss ich mal hinterfragen

die ~ 10m sind für mich ja ok... aber die 2m Stichleitungen und das 
ungeschirmt
mmmhh
was für ein Microcontroller-Board nutzt Du?

aktuell ist es ja so das ich ganz zufrieden bin.
Nur wenn ich so eine Verkabelung sehe frage ich wieso ich so nen Aufwand 
mache

von 900ss (900ss)


Lesenswert?

Jürgen schrieb:
> Nur wenn ich so eine Verkabelung sehe frage ich wieso ich so nen Aufwand
> mache

Weil du scheinbar den Sensor und die Datenübertragung nicht verstanden 
hast.

Es steht hier schon etliche Male im Thread, dass die Datenübertragung 
nicht von den Kabeln abhängt. Entweder die Daten kommen "heile" an oder 
nicht. CRC prüfen wurde auch genannt.  Aber Messergebnisse des Sensors 
verfälschen sie nicht weil eine Abschirmung fehlt es sei denn direkt 
daneben ist eine Leitung die sehr starke EMV-Abstrahlung hat.

Da du auch geschrieben hast, dass du nicht wusstest, wie du am besten 
Code anhängst, kann man davon ausgehen, dass du nicht alles liest, 
bervor du ein System verwendest.
Wenn mal über das Eingabefeld deines Postings schaust, findest du
"Wichtige Regeln - erst lesen, dann posten!".

Wenn du gelesen hättest, dann wüsstest du.....

Und so verhält es sich evtl. auch mit der Doku des Sensors. Lies mal und 
verstehe. Dann könntest du die meisten Unklarheiten selber lösen.

Edit: der Sensor hat keine Aufwärmzeit wenn du ihn nicht thermisch 
abschirmst.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Der DS18B20 zieht bei der Wandlung bis zu 1,5mA, d.h. er heizt sich mit 
7,5mW auf. Daher sollt man nicht öfter als alle 10s messen.

von Falk B. (falk)


Lesenswert?

900ss D. schrieb:

> nicht. CRC prüfen wurde auch genannt.  Aber Messergebnisse des Sensors
> verfälschen sie nicht weil eine Abschirmung fehlt es sei denn direkt
> daneben ist eine Leitung die sehr starke EMV-Abstrahlung hat.

Da wäre ich vorsichtig. Wenn Störungen in VCC einkoppeln kann das die 
Messung beeinflußen! Erst recht, wenn kein Entkoppelkondensator am IC 
angebracht ist (obwohl vermutlich im IC bzw. Gehäuse eine sitzt, denn 
bei parasitärer Versorgung gibt es keinen externen Entkoppelkondensator)

von Jefe (Gast)


Lesenswert?

Jürgen schrieb:
> Die Sensoren sind bei einer Temp ~ 30 C°   um ca. +/- 0,5 C° im meines
> Referenzwertes eines TESTO 905-T1 Messgerätes.

Moin, und kalibriert? Ist die Eigenerwärmung an Luft bekannt? Ist die 
Hysterese bekannt?

Sollte man schon wissen ....


Jefe

von Harald W. (wilhelms)


Lesenswert?

Toxic schrieb:

> Um z.B. die eigene Koerpertemperatur zu messen benoetigt man
> schon so 1-3 Minuten.

Solange hat früher das Fiebermessen auch gedauert.

von 900ss (900ss)


Lesenswert?

Falk B. schrieb:
> Da wäre ich vorsichtig. Wenn Störungen in VCC einkoppeln kann das die
> Messung beeinflußen!

Ja sicher. Aber ich denke, er hat Bedenken, dass seine Kabel ihm die 
Daten, die er einliest, kaputt machen.

von Wolle G. (wolleg)


Lesenswert?

Peter D. schrieb:
> Der DS18B20 zieht bei der Wandlung bis zu 1,5mA, d.h. er heizt sich mit
> 7,5mW auf. Daher sollt man nicht öfter als alle 10s messen.

Komisch!
Warum ist bei mir
Autor: wolle g. (wolleg)
Datum: 12.05.2019 14:01
bei der Messung aller 4s mit dem DS18B20 auch nach 10min noch keine 
Erwärmung nachweisbar?

von Falk B. (falk)


Lesenswert?

wolle g. schrieb:
> Komisch!
> Warum ist bei mir
> Autor: wolle g. (wolleg)
> Datum: 12.05.2019 14:01
> bei der Messung aller 4s mit dem DS18B20 auch nach 10min noch keine
> Erwärmung nachweisbar?

Bist bestimmt ein cooler Typ! Oder du wohnst in Lappland?

von Wolle G. (wolleg)


Lesenswert?

900ss D. schrieb:
> Und so verhält es sich evtl. auch mit der Doku des Sensors. Lies mal und
> verstehe. Dann könntest du die meisten Unklarheiten selber lösen.

Was sollen hier diese Vorwürfe?
Man kann ein Datenblatt zigmal lesen und sich einbilden, man hat es 
verstanden.
Da die Datenblätter in der Regel in Englisch verfasst sind, kommen evtl. 
noch Übersetzungsfehler hinzu.
Also, lasst bitte solche unnützen Bemerkungen. Das hilft niemanden, aber 
verbraucht nur unnötig Energie.

von 900ss (900ss)


Lesenswert?

wolle g. schrieb:
> diese Vorwürfe?

Es sollte kein Vorwurf sein. Das ist deine Interpretation.

von Wolle G. (wolleg)


Lesenswert?

900ss D. schrieb:
> Es sollte kein Vorwurf sein.

Das soll kein Vorwurf sein?
>Lies mal und verstehe.

Ich "rege" mich deshalb darüber auf, weil hier im Forum öfter mal 
ähnliche Formulierungen vorkommen, die aber niemanden weiterhelfen.

von Wolfgang (Gast)


Lesenswert?

wolle g. schrieb:
> Vor Beginn der Messung war der Aufbau tagelang abgestellt.
> Nur die letzte Stelle (0,0625K) "rauscht".

Ob die letzte Stelle rauscht oder nicht, hängt von der Temperatur ab. 
Wenn es ein paar 1/100K wärmer oder kälter ist, kann es genaus gut 
passieren, dass der Ausgabewert auf einem Wert festhängt. Das liegt 
daran, dass das Rauschen des Sensors im DS18B20 kleiner ist als die Höhe 
der Quantisierungsstufen.

von Zeno (Gast)


Lesenswert?

Jürgen schrieb:
> Die Sensoren sind bei einer Temp ~ 30 C°   um ca. +/- 0,5 C° im meines
> Referenzwertes eines TESTO 905-T1 Messgerätes.

Dein Testo ist als Referenz denkbar ungeeignet, weil es selbst zu 
ungenau ist(kann man hier 
https://www.testo.com/de-DE/testo-905-t1/p/0560-9055 nachlesen).

Als nächste wäre noch interessant wie gut Dein Fühler vom Testo und 
Deine DS1820 thermisch gekoppelt waren.

von Manfred (Gast)


Lesenswert?

wolle g. schrieb:
> Man kann ein Datenblatt zigmal lesen und sich einbilden, man hat es
> verstanden.

Dass ein 18x20 eine Einschwingzeit im Bereich von Minuten hat, ist 
einfach unglaubwürdig und entspricht nicht meiner Erfahrung.

Erst im Verlauf des Threads zeigt sich, dass Jürgen die Dinger 
konfektioniert in Metallhülse hat. Solche habe ich auch hier, die haben 
eine schlechte Wärmekopplung und reagieren sehr langsam auf Änderungen 
der Umwelt.

von 900ss (900ss)


Lesenswert?

wolle g. schrieb:
> die aber niemanden weiterhelfen

Und mich regt auf, wenn jemand die einfachsten Dinge nicht beherrscht, 
obwohl sie deutlich und klar beschrieben sind.

Jürgen schrieb:
> Sorry weiß nicht wie ich diesen hier sauber formatiert einfügen kann

 Und das zeigt mir, dass er den Rest seiner technischen Dokumentation 
sehr wahrscheinlich(!) auch nicht liest um sie zu verstehen.

Der Sensor ist so schnell, dass man es direkt an den Messwerten sieht, 
wenn man mit der Hand in seine Nähe kommt. Wenn die Dinger in 
Metallhülsen stecken, sind sie sicher langsamer.

von Jörn P. (jonnyp)


Angehängte Dateien:

Lesenswert?

Ich habe die Erfahrung gemacht, das man mindestens 5-6 Sekunden zwischen 
Messungen warten muss, damit sich beim DS18B20 eine Eigenerwärmung nicht 
bemerkbar macht.
Bei der Edelstahl Version handelt es sich um einen TO92, der in die 
Stahlhülle eingesteckt wurde.
Die Ansprechzeit dieser Versionen dauert daher wesentlich länger.
Ich habe mal einen Edelstahl Typ geknackt...

von Harald W. (wilhelms)


Lesenswert?

Jörn P. schrieb:

> Ich habe mal einen Edelstahl Typ geknackt...

Diesen?
https://de.wikipedia.org/wiki/Man_of_Steel_(Film)

von Manfred (Gast)


Lesenswert?

Jörn P. schrieb:
> Bei der Edelstahl Version handelt es sich um einen TO92, der in die
> Stahlhülle eingesteckt wurde.

So habe ich das vermutet, aber noch keinen aufgeschliffen. Dass die 
Dinger sehr träge sind, habe ich bemerkt, aber die meisten 
Temperaturänderungen sind ja auch eher langsam.

> Die Ansprechzeit dieser Versionen dauert daher wesentlich länger.
> Ich habe mal einen Edelstahl Typ geknackt...

Sehe ich auf deinen Bildern richtig, dass die Beinchen mit 
Gewebeschlauch isoliert und dann das gesamte in Schrumpfschlauch in die 
Hülse gepresst wird?

Edelstahl ist eine schlecht leitende Legierung und die unterlegen die 
noch zusätzlich mit Kunststoff?

Viel dämlicher kann man das garnicht bauen!

von John (Gast)


Angehängte Dateien:

Lesenswert?

Manfred schrieb:
> Viel dämlicher kann man das garnicht bauen!

Ab 62 US-Cent -> was erwartest du da?

von Wolle G. (wolleg)


Lesenswert?

Jörn P. schrieb:
> Ich habe die Erfahrung gemacht, das man mindestens 5-6 Sekunden zwischen
> Messungen warten muss, damit sich beim DS18B20 eine Eigenerwärmung nicht
> bemerkbar macht.

Das passt aber mit dem Diagramm:
Autor: wolle g. (wolleg)
Datum: 12.05.2019 14:01

nicht zusammen.
Um wie viel K würde nach Deinen Messungen die angezeigte Temperatur 
durch Eigenerwärmung steigen?

Nur mal so: Geht es hier um die Eigenerwärmung des DS18B20 oder um die 
Sprungantwort eines Messfühlers?

: Bearbeitet durch User
von Jörn P. (jonnyp)


Lesenswert?

Manfred schrieb:
> Sehe ich auf deinen Bildern richtig, dass die Beinchen mit
> Gewebeschlauch isoliert und dann das gesamte in Schrumpfschlauch in die
> Hülse gepresst wird?

Siehst du exakt richtig ;-)
Das To92 Gehäuse stößt direkt gegen den Deckel der Stahlhülse, deshalb 
wurde das TO92 Gehäuse beim Absägen des Deckels auch etwas 
"mitgenommen".

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.