DS18B20 Multiswitch

  • Hallo zusammen,

    ich hab vor zur Temperaturüberwachung meiner Heizungssteuerung die bekannten DS18B20 einzusetzen. Allerdings komme ich mit den 10 Stück, die ich an einen Bus hängen kann, bei Weitem nicht hin. Des Weiteren wollte ich in verschiedene Richtungen mit den Leitungen gehen, was man bei 1-wire unterlassen sollte.

    Einen Zweiten und Dritten Bus aufbauen scheint etwas komplizierter zu sein.

    Mein Gedanke war jetzt, das ich die Versorgungsspannung der einzelnen Stränge von je einem Ausgang (mit Treibertransistor) nehme. Datenleitung und Masse lege ich alle zusammen.

    Also:

    Ersten Ausgang an; Temperaturen des ersten Strangs einlesen; ersten Ausgang aus

    Zweiten Ausgang an; Temperaturen des zweiten Strangs einlesen; zweiten Ausgang aus

    usw.

    Mein Ihr das klappt?

    Gruss,

    Achim

  • Mein Ihr das klappt?

    Eher nicht. Die Sensoren verhalten sich dann ja wie parasitär versorgt, antworten daher auf ein Reset/Init trotzdem.

    Wieviele Sensoren werden denn im Device Tree angezeigt, immer dieselben ?

    Wo und wie hast Du die Pullups verschaltet ?

    Du kannst auch mehrere Stränge so verdrahten, alsob die Sensoren auf einer Line liegen (optimum).

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Um die parasitäre Versorgung zu machen muss ich doch den PIN 3 auf Masse legen. Ich wollte die 3-drähtig anschließen. Jeder Strang bekommt seinen eigenen Pullup.

    Bis jetzt hab ich noch gar nix gemacht. Ist ja erstmal nur ein Gedankenspiel.

    Ich denke das sich der Device Tree jedes mal ändert, wenn ich einen anderen Strang zuschalte.

  • In /etc/modprobe.d/1-wire.conf ist
    options wire max_slave_count=10 oder mehr ?

    Warum mehrere (externe) Pullups ?

    Dann verringert sich ja der Gesamtwiderstand. Und ein Pullup darf die Sensorspannung nur auf 3,3 V hochziehen, nicht auf 5 V.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Allerdings komme ich mit den 10 Stück, die ich an einen Bus hängen kann, bei Weitem nicht hin. Des Weiteren wollte ich in verschiedene Richtungen mit den Leitungen gehen, was man bei 1-wire unterlassen sollte.

    Wiki spricht von 100-300 m mit 150-500 Geräten... Wie groß ist deine Wohnung? ;)

    Ansonsten wäre es vielleicht einfacher, Funksensoren zu bauen, bevor du das ganze Haus verkabelst.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Der Treiber von der RPi kann aber meines Wissens nur 10 Stück verarbeiten.

    Wie wäre es dann einafch mit einem vernünftigen 1-Wire-Treiber? Das wäre doch einfacher als irgendeine gefrickelte Enabel-Schaltung... Sowas vielleicht?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • In /etc/modprobe.d/1-wire.conf ist
    options wire max_slave_count=10 oder mehr ?

    Warum mehrere (externe) Pullups ?

    Dann verringert sich ja der Gesamtwiderstand. Und ein Pullup darf die Sensorspannung nur auf 3,3 V hochziehen, nicht auf 5 V.

    Servus !

    Wenn ich die Versorgung (vor dem Widerstand) abschalte ist der Widerstand ja raus.

    Und ich glaube ich kann auf den Transistor verzichten. Die Stromaufnahme in Ruhe ist ja nur 1Mikroampere. Hatte mich da um eine 1000-Potenz vertan.

  • In /etc/modprobe.d/1-wire.conf ist
    options wire max_slave_count=10 oder mehr ?

    Nach dieser Quelle bringt die Erhöhung des Parameters angeblich auch nichts:

    Zur Zeit läßt der Treiber bis zu 10 Sensoren am Bus zu. Sie haben jedoch die Möglichkeit, durch einen Eintrag in der Datei /etc/modprobe.d/1-wire.conf diese Zahl zu erhöhen. Falls die Datei noch nicht exisitert, ist sie neu zu erstellen. Dann kann mit der folgenden Zeile die Anzahl der möglichen Sensoren, z. B. auf 15, erhöt werden:

    options wire max_slave_count=15

    Diese Änderung wird aber nur beim Laden des Treibers übernommen, gegebenenfalls erst nach dem nächsten Neustart.

    Ich musste aber feststellen, dass mehr als 10 Sensoren am Bus nicht sinnvoll sind, da der Raspberry Pi mit seinem 3.3-V-Eingang eventuell schon bei 8 - 9 Sensoren überfordert scheint. Ich konnte acht Sensoren problemlos beteiben, wobei die Verbindung über recht lange, ungeschrimte Kabel (Telefonleitung) erfolgt; beim neunten Sensor "hing" dann alles.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Die Option funktioniert. Wenigstens hat der Autor in der veralterten Anleitung meine Zeichnung verbessert und Du durch Sie ersetzt. Aber ich habe ja damals geschrieben, dass meine Anleitungen frei benutzt werden dürfen. Der Eintrag options wire max_slave_count funktioniert. Es ist aber dringend zu empfehlen den Sensoren eine eigene Stromversorgung von 5V zukommen zu lassen. Je dichter am Sensor, um so besser. Die Anzahl der Sensoren ist dann nur noch durch die 19 mA die der GPIO liefern kann begrenzt. Den Pullup also maximal auf 174 Ohm herabsetzen. Das ist grenzwertig und kann auch dafür sorgen, dass die Messwerte durch Eigenwärme der Sensoren verfälscht werden. Ein einstellbarer 5k Widerstand vor einem 220 Ohm Widerstand als Pullup ist bei meinen Schaltungen für 1w immer gut gekommen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!