Forum: Mikrocontroller und Digitale Elektronik OneWire Probleme mit der Leitung (Arduino)


von Harald G. (harald_g)


Lesenswert?

Hallo zusammen,

ich werkel schon eine Zeit an meiner Heizungssteuerung auf Basis eines 
Arduinos.

Aktuell habe ich zwei DS18B20 erfolgreich im Einsatz und so verkabelt:

Ein Sensor am Kamin über ca. 6m Telefonkabel und ein Sensor über ca 60cm 
Telefonkabel an einem Bus.

Nun bin ich schon eine Zeit lang dabei die Solaranlage auf dem Dach mit 
einem weiteren Sensor anzubinden. Hier habe ich leider nur ein einfaches 
Stromkabel (keine Spannung drauf) als Leitung zur verfügung (ca. 7m 
lang).

Sobald ich diese Leitung an meinen Sternbus anschließe bekomme ich nur 
noch Sporadisch Temperaturen. Was merkwürdig ist um so häufiger ich den 
Arduino resette, desto seltener bekomme ich nach dem Reset Werte von den 
Sensoren.

Zweiter Versuch war einen zweiten Bus am Arduino für den Solarsensor zu 
nutzen (eigener Pin). Hier bekomme ich gar keine Lesung vom Solarsensor 
mehr.

Alle Sensoren werden mit zusätzlicher 5V Spanngung versorgt. Und ich 
habe einen 4,7k  Widerstand direkt zwischen IO-Pin und 5V.


Ich vermute das mein Problem das Stromkabel als Leitung ist. Was meint 
ihr?

Wie stehen die Chancen wenn ich das Stromkabel durch ein Telefon oder 
Patchkabel tausche? Oder sollte ich lieber direkt auf einen zweiten 
controller (z.B. AT Tiny) und Funkverbindung (RFM12 oder Xbee) zum 
"Master"Arduino.

Hat jemand Erfahrungswerte mit Ähnlichen aufbauten oder Tipps?

Grüße

Harald

von Thomas S. (tommythecomputer)


Lesenswert?

Kannst du mal von der Stromversorgung eine Skizze machen?

Hast du an jedem DS18B20 einen eigenen Widerstand oder einen einzigen in 
der gesamten Schaltung?

Lg Tommy

von Harald G. (harald_g)


Lesenswert?

Direkt nach dem Datenpin am Arduino habe ich einen Widerstand zu 5V 
(Also im Zentrum des Sternbus). Als Spannungsquelle nutze ich ebenfalls 
den Arduino.

von Thomas S. (tommythecomputer)


Lesenswert?

Wenn schon würde ich ein geschirmtes Kabel verwenden (optimal wäre 
natürlich ein Netzwerkkabel, wobei es jetzt nicht das Beste 
Netzwerkkabel sein muss, da auch schon Cat 5 usw. gut geschirmt sind).

Weist du welche Kabel du derzeit in Verwendung hast? Denn wenn du einen 
zu hohen Ohm'schen widerstand hast sind von den <5V schnell mal zu viel 
weg. Da wäre es natürlich möglich (aber auch riskant was die Sensoren 
selbst betrifft) den Widerstand minimal zu reduzieren (vorrausgesetzt du 
hast überall raltiv gleich lange Leitungen und somit ähnliche Verluste).

Alternativ: Schmitt-Trigger zwischen schalten, die die Signalleitung zum 
Arduino hin wieder auf volle 5V "pusht".

Lg

von Harald G. (harald_g)


Lesenswert?

Die bisherigen zwei Sensoren sind ja an einer dünnen (leicht geschirmt 
und vertrillten) Telefonleitung und funktionieren, so lange der neue 
Solarsensor nicht angeschlossen ist. Der Solarsensor ist über ein 
Stromkabel (Kupfer dickerer Ardern) angeschlossen und macht Probleme. Da 
der Widerstand des Stromkabels geringer sein dürfte und die Leitungen zu 
den einzelnen Sensoren paralell sind (Stern), dürfte das denke ich kein 
Problem sein, oder sehe ich das falsch?

Hat jemand einen 1Wire Bus als Stern mit mehreren mehrmetrigen Leitungen 
im Einsatz? Wie sind da die Erfahrungen?

Gibts evtl. Probleme mit den extrem unterschiedlichen Längen (mal nur 
60cm und dann zweimal mehrere Meter)?


VG

von Thomas S. (tommythecomputer)


Lesenswert?

Naja, lange Leitungslänge = lange Laufzeiten und auch unsauberere 
Signale

Soweit ich weiß ist die 1-Wire Busleitung auch nicht unbedingt dafür 
ausgelegt Sternförmig verkabelt zu werden sondern nur in Serie da 
ansonsten die Gesamtlänge der Kabel eben auch zu viel Kapazität aufnimmt 
und abgibt (Wie ein kleiner Kondensator).

Netzwerkkabel wären echt einen Versuch wert.

von (prx) A. K. (prx)


Lesenswert?

Harald G. schrieb:
> Ich vermute das mein Problem das Stromkabel als Leitung ist. Was meint
> ihr?

Wenn in dem Stromkabel, oder direkt daneben, ausser den Sensordaten auch 
noch Netzstrom unterwegs ist, dann ganz sicher. Auch andere Störquellen 
in direkter Nachbarschaft sind unpraktisch, wie beispielsweise 
Leuchtstoffröhren (Störschleudern erster Güte).

> Wie stehen die Chancen wenn ich das Stromkabel durch ein Telefon oder
> Patchkabel tausche?

Mit Patchkabel viel besser. Wobei du für Signal+Masse ein verdrilltes 
Paar erwischen solltest.

> Oder sollte ich lieber direkt auf einen zweiten
> controller (z.B. AT Tiny) und Funkverbindung (RFM12 oder Xbee) zum
> "Master"Arduino.

Kannst auch eine zweite getrennte Sensorleitung fahren. Müssen ja nicht 
alle Sensoren an den gleichen Bus. Sofern sich die Software vom Arduino 
davon überzeugen lässt.

> Hat jemand Erfahrungswerte mit Ähnlichen aufbauten oder Tipps?

Stromkabel nicht, aber unverdrillte Leitung über 20-30m funktionieren 
durchaus. Nicht perfekt, die CRC ist wichtig, aber es geht.

Man sollte in solchen Umgebungen damit rechnen, 1-Wire Sensoren auch mal 
auswechseln zu müssen. Je länger die Leitung und je schlechter dafür 
geeignet, desto grösser die Chance, dass ein Gewitter irgendwann einmal 
einen Sensor erlegt. Den Pin vom Controller jedenfalls sollte man mit 
eigenen Ableitdioden und Serienwiderstand absichern.

von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hallo,

Harald G. schrieb:

> Hat jemand Erfahrungswerte mit Ähnlichen aufbauten oder Tipps?

also die Leitungslänge ist nicht das Problem.

Hier habe ich zum Beispiel 188 m TP-Kabel verwendet:
http://drsvanhay.de/?p=799

Wenn, ist eher die Art des Kabels ein Problem!

vlg

 Timm

von (prx) A. K. (prx)


Lesenswert?

Harald G. schrieb:
> Hat jemand einen 1Wire Bus als Stern mit mehreren mehrmetrigen Leitungen
> im Einsatz?

Ja. Einer hängt an erwähnter 20-30m unverdrillter Messleitung, einer an 
2m, einer an 5m davon, und einer an 7m Koax-Antennenkabel (weil 
draussen). Alles Stern. Ab und zu gibts CRC Fehler, also Software etwas 
störfest machen, auf dass ein nicht per CRC erkannter Fehler nicht 
gleich die ganze Heizung detonieren lässt.

von Michael (Gast)


Lesenswert?

Thomas S. schrieb:
> Denn wenn du einen zu hohen Ohm'schen widerstand hast sind von den <5V
> schnell mal zu viel weg.
Überschätzt du da die Stromaufnahme des DS18B20 nicht um mehrere 
Größenordnungen?

Über eine normales 230V Stromkabel dürfen 10..16A fließen und dann 
sollten immer noch 230V-10% am Verbraucher ankommen, i.e. der Widerstand 
des Kabels sollte nicht über 1.4Ω liegen.

Der DB18B20 benötigt im aktiven Zustand maximal 1.5mA, so dass man bei 
einem Spannungsabfall auf der Leitung von gut 2mV landet. Das dürfte ihn 
nicht stören.

Ich betreibe hier sechs DS18B20 mit parasitärer Versorgung, sternförmig 
mit max. 7m/3m/<1m Kabel ohne besondere Maßnahmen und völlig problemlos.

Ist das Kabel zum Solarsensor in Ordnung? Leg doch unten mal direkt 
Spannung an und meß dann, was bei Belastung mit z.B. 100mA am anderen 
Ende ankommt.

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.