Hallo zusammen,
den heutigen Beitrag widmen wir wiedereinmal dem DS18B20 Sensor um zwei häufige Fragen zu beantworten. Zum einen stellt Maxim mittlerweile zwei verschiedene Varianten her, einmal mit PAR und ohne PAR-Modus. Zum zweiten fragen viele Kunden wie viele der Sensoren man in der Praxis gleichzeitig nutzen kann, weshalb wir einen kleinen Versuchsaufbau machen um zu sehen wieviele Sensoren an nur einem Pin des Nanos betrieben werden können.
Als der Sensor noch von Dallas kam gab es nur eine Variante, diese unterstütze sowohl den parasitären Modus, als auch den Normalbetrieb. Mittlerweile produziert Maxim die Sensoren in den Ausführungen DS18B20 und DS18B20-PAR. Beide unterstützen das 1-Wire Protokoll: Das 1-Wire Protokoll hat seinen Namen daher, dass nur eine Leitung zur Kommunikation erforderlich ist anstatt wie sonst üblich mindestens zwei Datenleitungen, der PAR-Modus hat damit nichts zu tun. Wir haben also im Normalbetrieb drei Pins, oder Kabel: Data, VCC und GND. VCC und GND dürften dabei klar sein, über Data läuft die Kommunikation bidirektional. Und nachdem zur Übertragung von Informationen immer Strom fließen muss kann dies logischerweise nur über GND geschehen.
Der DS18B20-PAR unterstützt den parasitären Modus. Dieser wird so genannt, da der Sensor den Strom aus der Datenleitung schmarotzen kann. D.h. in diesem Betriebsmodus sind sogar nur 2 Leitungen erforderlich: GND und Data. Der VCC des ICs ist über einen Widerstand mit Data verbunden.
(Bei dem Produkt im Bild oben wurde schon ein Widerstand mit in der Hülse untergebracht und nur zwei Leitungen aus der Hülse geführt.)
Durch die Produktpolitik von Maxim ist aus dieser Situation ein regelrechtes Chaos entstanden. Da früher der DS18B20 immer beide Modi unterstützt hat und dies nun nichtmehr der Fall ist haben viele Händler Ihre Produktbeschreibung dahingehend nicht angepasst, die Bezeichnung nicht geändert oder schlimmstenfalls, gar nicht wissen was Sie überhaupt vertreiben.
Dabei währen die unzähligen Reklamationen vermeidbar, die nicht nur bei uns, sondern auch bei vielen Mitanbietern regelmäßig eingehen.
Leider mussten wir feststellen, dass wenn der DS18B20-PAR auch als solcher bezeichnet wird, der Absatz des Produkts massiv zurück geht. Deshalb benutzen wir einheitlich die Bezeichnung DS18B20.
Im Zweifelsfall sollte immer beim Händler rück gefragt werden, sollte die Ausführung nicht explizit in der Produktbeschreibung mit angegeben sein und man für sein Projekt auf den PAR-Modus nicht verzichten kann.
Zum Versuchsaufbau: Die Frage eines Kunden war, wieviele DS18B20 am Nano an nur einem Pin, ohne zusätzliche Stromversorgung problemlos betrieben werden können. Dazu haben wir die im E-Book beschriebene Schaltung mit 10 Sensoren auf einem unserer Breadboards aufgebaut und anschließend einen nach dem anderen verkabelt.
6 Sensoren konnten wir so auf Anhieb mit dem Nano an einen Pin betreiben und mit dem Tester.ino Sketch aus der DallasTemperature Libary auslesen, hier das Ergebniss:
Ich hoffe der heutige Beitrag bringt etwas Licht in die Thematik und erspart einigen von Ihnen die ein oder anderen grauen Haare. Bis zum nächsten mal :)
7 Kommentare
Bernd Albrecht
@ Manfred Boß: Jeder Temperatursensor der DS18B20-Reihe hat eine eindeutige Kennung, die man abfragen kann. Es kommt also nicht auf die Reihenfolge des Anschlusses an, sondern nur auf die Zuordnung des Messergebnisses zur jeweiligen ID-Nr.
Um weitere Hilfe zu geben, bedarf es der Kenntnis der verwendeten Hardware. Z.B. kann man die Kennnummern beim Raspberry Pi im Unterverzeichnis /sys/bus/w1/devices finden. Jeder DS18B20 schreibt seine Daten dort in ein weiteres Unterverzeichnis, das mit 28-xxxx beginnt. xxxx steht für die jeweilige Nummer.
Manfred Boß
Danke für den Beitrag. Eine Frage hab ich noch: Wodurch wird bei mehreren Sensoren am 1-Wire Bus die Device-Reihenfolge bei der Ausgabe gesteuert? Wenn ich bei meinen Stockwaagen am Bienenstand einen defekten Sensor austausche, gerät die gesamte Reihenfolge durcheinander und ich muss mehrere Sensoren „umhängen“, damit die Bienenstöcke wieder richtig zugeordnet sind.
W.Rahn
Hallo,
ich habe 25 Stück DS18B20 mit je 3 m Kabel bei AZ.Delivery erworben. Bei einer Überprüfung der Schrumpfschläuche am Übergang zwischen Kabel und Metallhülse konnte ich den Schrumpfschlauch problemlos von der Hülse runterschieben. Das Kabel ist dann immer noch in der Metallhülse fest. Ob die Verklebung des Sensors in der Hülle wasserdicht ist, werde ich nicht ausprobieren. Ich werde den vorhandenen Schrumpfschlauch längs aufschlitzen, entfernen und durch Schrumpfschlauch ersetzen, der innen mit Heißkleber beschichtet ist. Ich hab mir also Arbeit gekauft.
Nun zu mehr als 8 Sensoren an einem DataPin: ich nutze einen Arduino Uno von Geekreit, Stromversorgung der Sensoren aus 5V des UNO, bei einem Widerstand von 4,7 kOhm konnte ich 8 Sensoren an einem Pin auslesen. Bei mehr als 8 Sensoren ergab die CRC-Prüfung Fehler, bzw. die Sensoren wurden gar nicht gefunden. Ich habe nach und nach den Widerstand durch kleinere Werte ersetzt und konnte sukkzessive immer mehr Sensoren auslesen. Im Moment habe ich 24 Sensoren an Pin 8, mit einem Widerstand von 1,5 KOhm zwischen +5V und Data. Leider finde ich das Datenblatt nicht mehr, indem der untere Wert des Pull-Up-Widerstandes mit 1,2 KOhm angegeben ist.
Es kann an der Zahl der Sensoren liegen, da jeder einzelne Sensor bis zu 1,5 mA zieht und ein großer Pull-Up-Widerstand zu wenig Strom für alle durchlässt. Es kann aber auch an den steigenden Kabellängen und den damit steigenden Kapazitäten der Kabel liegen. Zumindest gibt es bei einem unpassenden Verhältnis von Sensorzahl=Kabelkapazität und Widerstand ( zwischen + und Data ) kein ‘zackiges’ Bild mehr in meinem MiniOszi (Masse an GND OsziEingang an Data).
Ich hoffe das hilft.
Hinweis aus dem Datenblatt: bei Temperaturen von mehr als 100°C wird die ‘parasitäre’ Stromversorgung beim DS18B20 nicht empfohlen, dann zieht der Sensor noch mehr Strom bei der AD-Wandlung.
Ernst Brill
Ich betreibe 8 DS18B20 mit 3 Leitungen und gemeinsamen Widerstand an einem MEGA. Benutze ich mehr als 8 Sensoren, dann werden mir die Werte nicht mehr korrekt angezeigt. Die Systematik nach der die Sensoren ausfallen, habe ich nicht herausgefunden. Eventuell hängt das mit der internen Adresse zusammen. Mit einer 2. Datenverbindung mittels 1-Wire könnte man vermutlich noch einmal 8 Sensoren betreiben. etc.
Auffällig ist jedoch, dass es deutlich unterschiedliche Qualität bei den Sensoren gibt. Wenn diese in Wasser oder einem anderen leitenden Medium betrieben werden, dann könnte es zu Kurzschlüssen kommen. Bei allen 10 Sensoren, die ich von AZ-Delivery gekauft hatte, hatte einer der Leiter eine Verbindung zur Metallhülse. Bei Produkten eines anderen Lieferanten war das nicht der Fall.
Also vor dem Einsatz in Wasser, unbedingt alle 3 Leitungen auf eine Verbindung zur Metallhülse durchmessen!
Tim
Hallo, hatte das gleiche Problem, wie oben beschrieben. Bei mit hat es dann am D1 statt am vorgesehenen D5 geklappt. Ob man den Pull-Up mit 4,7kOhm weglassen kann, habe ich dann nicht mehr getestet.
Heinz-Gerd
Hallo, ich möchte ein 3 Draht DS18B20 an einem Wemos D1 Mini betreiben.
VCC an 3,3V - GND an Ground - Data auf GPIO14
In den Tasmota Einstellungen habe ich den DS18X20 (4) eingestellt.
Leider bekomme ich im Hauptmenu keine Temperatur-Anzeige.
D.H. es wird überhaupt kein Sensor angezeigt.
Schliesse ich einen DHT11 an so bekomme ich eine komplette Anzeige!
Thomas Keil
Danke für den Bericht, die Info ist interessant.
Bleibt vielleicht noch zu ergänzen das der DS18S20 für einen größeren Temperaturumfang spezifiziert ist ( -55°C to +125°C) als der DS18S20-PAR (–55°C to +100°C).
Das Datenblatt schreibt hierzu: “The use of parasite power is not recommended above 100°C, since it may not be able to sustain communications given the higher leakage currents the DS1820 exhibits at these temperatures.”
Ich würde vermuten, das das insbesondere bei niedriger Versorgungsspannung, wie sie der ESP liefert, gilt.
Vielleicht wäre das ja eine eigene Versuchsreihe in einem weiteren Beitrag wert ;-)