Forum: Mikrocontroller und Digitale Elektronik 1-Wire + Strom auf 3-adriger Leitung


von Michael W. (michael_w18)


Lesenswert?

Hallo zusammen,

ich möchte die Temperatur unseres Pools im Sommer mittels 1-Wire Sensor 
und einem Arduino messen. Wenn ich ein neues Kabel ziehen würde, müsste 
ich eine Strecke von ca. 30m z.B. mittels Cat5 Kabel überbrücken und 
dazu den halben Garten umgraben - was nicht wirklich sinnvoll ist. Daher 
bin ich dabei, die verbleibenden Möglichkeiten auszuloten.

Es gibt ein bestehendes 230V Kabel, ca. 15m lang, welches ich ggf. 
zweckentfremden könnte. Das eine Ende hängt im Schuppen an einer 
Zeitschaltuhr, das andere ist in Poolnähe, dort hängt der 
Reinigungs-Roboter dran. Dieser wird mit 12V (oder 24V) Gleichspannung 
betrieben - an der Steckdose in Pool-Nähe steckt das Steuergerät mit 
Travo.

Die Idee ist nun, den Travo in den Schuppen zu verlagern. Dann würde ich 
die Versorgungsspannung des Pool-Roboters auf 2 Adern der Zuleitung 
legen. Es bliebe eine dritte Ader frei. Mit dieser und einer der beiden 
Strom-Adern des Roboters könnte ich den Sensor betreiben.

Meine Fragen dazu:
Ist es realistisch, den Sensor (bzw. die Sensoren) am Ende einer (nicht 
geschirmten, nicht verdrillten) 15m langen Leitung noch erfassen zu 
können? Es käme ja auch nur "parasitic power", also die Versorgung über 
diese eine Leitung in Frage.

Hat die Versorgung des Pool-Roboters irgendwelche negativen Auswirkungen 
auf das Ganze? Der Roboter ändert immer mal seine Richtung, d.h. es gibt 
vermutlich regelmäßige Änderungen der Polung der beiden Adern.

Gibt es evtl. eine bessere Lösung unter Verwendung der bestehenden 
Verkabelung?

Als Alternative würde ich einen Arduino mit 433MHz Sender am Pool 
platzieren und über die Leitung mit Strom versorgen, aber das ist nur 
"Plan B".

Vielen Dank im Voraus für Eure Antworten,
Michael.

von Michael W. (michael_w18)


Lesenswert?

Ich habe ein wenig dazugelernt und würde das Thema gern nochmal 
aufgreifen. Ob der 1-Wire-Sensor über die Leitung funktioniert, muss ich 
testen. Mit ein paar Meter Klingeldraht geht es problemlos, ich schätze, 
es könnte gehen.

Das Poolroboter-Netzteil hat einen Output von 34V/180W. In meinem 
Anwendungsfall würden 2 Leitungen den Strom leiten. Eine davon wäre die 
Masse meines 1-Wire-Sensors, die 3. Leitung die Strom+Datenleitung.

Mir stellen sich nun 3 konkrete Fragen:

1. Ist ein 1,5mm² Kabel dafür tauglich? Ich denke ja, man kann es 
normalerweise mit 10A belasten.


2. Wenn der Roboter die Richtung wechselt, also die Polung sich ändert, 
wird dann evtl. kurzzeitig eine hohe Spannung induziert? Wenn ja, wie 
kann ich den Sensor auf der einen und den Atmega auf der anderen Seite 
davor schützen?

3. Könnte zwischen der Datenleitung und der Masseleitung, welche ja 
gleichzeitig eine Strom-Leitung des Pool-Roboters ist, eine Spannung 
durch irgendwelche Effekte zwischen den beiden Netzteilen anliegen? Wen 
ja, was kann ich dagegen tun?

Vielen Dank für Eure Antworten,
Michael.

von Frank K. (fchk)


Lesenswert?

Früher, in der analogen Zeit, als es noch keine Atmegas gab, hat man das 
Problem so gelöst.

Du hast auf der einen Seite eine Spannungsquelle, die einen entfernten 
Temperatursensor mit Spannung versorgt. Diese Spannungsquelle hat eine 
Strombegrenzung auf etwas mehr als 20mA eingebaut.

Zum Temperatursensor geht eine Doppelader, an die keine besonderen 
Anforderungen gestellt werden.

Der entfernte Temperatursensor belastet die Spannungsquelle immer mit 
4mA. Daraus erzeugt er seine Betriebsspannung. Je nach Temperatur kann 
er weiteren Strom ziehen, bis zu 20mA. Je nach Temperatursensor 
entsprechen beispielsweise 4mA -20°C und 20mA 44°C, d.h. 1mA Strom 
zusätzlich zu den 4mA entsprechen 4°C mehr auf die -20°. Der 
Umrechnungsfaktor von Strom auf Messwert ist reine Definitionssache. Es 
gibt ja auch Thermoelemente, die von 0 bis 1500 °C messen. Da wird man 
die Parameter entsprechend anders wählen.

Der Empfänger an der Spannungsversorgung muss nur den Strom messen, um 
die Temperatur an der anderen Seite der Leitung herauszubekommen. Fließt 
kein Strom (normal müssen ja immer mindestens 4mA fließen), ist die 
Leitung unterbrochen. Fließen mehr als 20mA, ist irgendwo in der Leitung 
oder im Sensor ein Kurzschluss.

Der Innenwiderstand der Leitung zwischen Sensor und Auswerteeinheit ist 
völlig egal, weil der Sensor ja einen Strom einprägt und keine Spannung. 
Und da in einem Stromkreis kein Strom verloren gehen kann, ist das 
Verfahren zuverlässig, ziemlich unempfindlich gegen Störungen, und 
Leitungsfehler können auch sehr einfach erkannt werden.

In der Industrie ist das immer noch ein Standardverfahren. Anstelle von 
Temperaturen können auch alle möglichen anderen Messwerte (Drücke, 
Füllstände, Entfernungen,...) übertragen werden, und für entsprechende 
Sensoren und Auswerteeinheiten gibt es jede Menge Hersteller, die 
entsprechendes Gerät anbieten.

Das vielleicht mal als Denkanregung.

fchk

von Helmut H. (helher5)


Lesenswert?

Ich habe gewisse Bedenken. Wenn dein 3 adriges 1,5er Kabel die 230 V 
Versorgung zum Netzteil des Roboters darstellt hast du keine 2 separaten 
Leitungen. Denn meist liegt MP im Sicherungsverteiler über eine Brücke 
auf PE Potential. Bedeutet keine zwei getrennte Leitungen.

Ist das Kabel aber die 12/24 V Versorgung, dann gilt auszumessen ob eine 
Ader gegen die beiden anderen Spannungsfrei ist. Eine Ader muss minimum 
Potentialfrei sein. Die würde ich dann als Signalleitung nutzen und den 
Minus der 12/24 V gleichzeitig als GND für den 1 Wire Sensor.

In der Auslesesoftware des Sensors den CRC-Check so einbinden dass nur 
korrekte Sensorwerte übernommen werden.

von Michael W. (michael_w18)


Lesenswert?

@Frank K. - das wird auf jeden Fall interessant, falls die digitalen 
Sensoren nicht über die lange Leitung funktionieren.

Ich habe gerade eine Handvoll alte Wärmemengenmessgeräte bekommen und 
auseinandergebaut. Dort sind wasserdichte analoge Temperatursensoren 
drin, deren Widerstand um die 1000 Ohm liegt - nach ein wenig googeln 
tippe ich auf  PT1000. Damit sollte ich sowas ja realisieren lassen, 
oder?

Leider fehlt mir das technische Fachwissen, um sowas zu realisieren, ich 
komme aus der Software-Ecke (und bevorzuge deshalb auch digitale 
Sensoren ^^). Wie müsste ich mir eine solche Schaltung vorstellen, damit 
am Ende am Analog-Eingang des Atmega zwischen 0 und 5 V ankommen, welche 
den Temperatur des Sensors abbilden (oder wenigstens einen Teilbereich, 
sagen wir mal -20 bis +40 °C)?

von Michael W. (michael_w18)


Lesenswert?

@Helmut H.: Das habe ich wohl etwas missverständlich beschrieben. Das 
Netzteil liefert 34V (die 12 oder 24 aus dem 1. Post waren falsch). 
Diese 34V will ich über 2 der Adern leiten. Dann bleibt eine Ader frei, 
die zusammen mit einer der beiden 34V Adern das Temperatursignal leiten 
könnte.
Der Roboter wechelt immer mal die Richtung. Ich vermute, die Steuerung 
dazu liegt auch im Netzteil, so dass Plus und Minus auf der Leitung dann 
wechseln.

Nun frage ich mich, ob bei einem solchen Wechsel oder beim Einschalten 
eine Spannung auf der freien Ader (gegen eine der anderen Adern) 
induziert werden könnte und was ich dagegen tun könnte.

Ich werd's auch nochmal nachmessen - wenn der Richtungswechsel im 
Roboter passiert und es ein definiertes Minus gibt, nehme ich das 
einfach als GND des Sensors.

von Patrick (Gast)


Lesenswert?

Michael W. schrieb:
> Ist ein 1,5mm² Kabel dafür tauglich? Ich denke ja, man kann es
> normalerweise mit 10A belasten.

Strombelastbarkeit ist nicht alles - es gibt z. B. noch den 
Spannungsfall. Für eine Ader komme ich gerade auf ca. 170mOhm. Ergäbe z. 
B. eine Masseverschiebung von 0,9V bzw. einen Spannungsfall am 
Verbraucher von 1,8V bei Deinem Strom von 5,3A.

Michael W. schrieb:
> Wenn der Roboter die Richtung wechselt, also die Polung sich ändert,
> wird dann evtl. kurzzeitig eine hohe Spannung induziert?

Je nach Aufbau und Ausführung kann die Spannungsversorgung ziemlich 
"versaut" werden - nicht nur durch induzierte Spannungen, sondern auch 
durch Änderungen im Stromfluss (resultierend in einer Änderung der 
Masseverschiebung - s. o.)

Lösung: fchk's Vorschlag. Zwischen gemeinsamer Masse und dritter Ader 
eine Stromsenke.

Michael W. schrieb:
> ach ein wenig googeln
> tippe ich auf  PT1000. Damit sollte ich sowas ja realisieren lassen,
> oder?

Im Prinzip schon - allerdings haben PT-Sensoren eine recht flache 
Kennlinie. Ich empfehle einen integrierten Baustein; schau Dir mal den 
XTR112 bzw. XTR114 an - musst nur die Widerstände entsprechend 
berechnen.
Für die "Rückumwandlung" des Stroms in eine Spannung tut es im Prinzip 
ein Shunt; da Du jedoch den Shunt in der positiven 
Versorgungsspannungsleitung platzieren musst und diese über dem 
positiven Potential des µC liegt, wenn Du unbedingt beide Massen 
verbinden willst, ist eine Operationsverstärker-Schaltung zur 
Strom-Spannungs-Wandlung das Mittel der Wahl.

von Michael W. (michael_w18)


Lesenswert?

Ich frage mich gerade, ob ich mit meinem Ansatz den richtigen Weg gehe. 
Ursprünglich dachte ich, damit wird es deutlich einfacher aber es 
erscheint mir inzwischen eine recht komplizierte Lösung.

Daher würde ich nochmal einen Schritt zurücktreten und neu überlegen.

Ist-Stand: 3-adrige 230V Leitung vom Schuppen zum Pool. Nahe Pool der 
Travo des Roboters, im Schuppen eine Zeitschaltuhr. Im Schuppen ein 
Arduino, der Temperaturen per 433 MHz ins Haus funkt.

Soll: Weiterhin funktionierender Roboter plus sin Temperatursensor im 
Pool, dessen Temperatur irgendwie in Haus gelangt.

Ich könnte auch einfach einen Arduino mit Sensor und Funkmodul am Pool 
platzieren (Atmega+Quarz+Sensor+Sender <10€). Bleibt noch das Problem 
der Spannungsversorgung. Da sehe ich 2 Wege:
- Dauerstrom am Pool, Verteiler mit Netzteil für den Arduino, 
Zeitschaltuhr+Travo

Lieber wäre mir, die 230V noch weiter vom Pool wegzubekommen. D.h. 
34V/180W über 2 Adern 15m weit zum Pool leiten. Die freie Ader + eine 
der anderen mit 9V zum Pool leiten, vor dem Atmega einen Spannungsregler 
(7805) + Kondensatoren, um induktive Spitzen abzufangen.

Sind die 1,8V Spannungsabfall als kritisch anzusehen oder kann man auf 
die 10W einfach "verzichten"? Am Poolroboter sind sowieso schon ~15m 
flexibles Kabel dran.

Hat noch jemande eine bessere Idee?

von Frank K. (fchk)


Lesenswert?

Michael W. schrieb:

> Leider fehlt mir das technische Fachwissen, um sowas zu realisieren, ich
> komme aus der Software-Ecke (und bevorzuge deshalb auch digitale
> Sensoren ^^). Wie müsste ich mir eine solche Schaltung vorstellen, damit
> am Ende am Analog-Eingang des Atmega zwischen 0 und 5 V ankommen, welche
> den Temperatur des Sensors abbilden (oder wenigstens einen Teilbereich,
> sagen wir mal -20 bis +40 °C)?

Lies mal das hier:

http://www.ni.com/white-paper/6940/en
http://sound.westhost.com/appnotes/an011.htm

Hiermit kann man 4-20mA Transmitter bauen.

http://www.ti.com/lit/ds/symlink/xtr105.pdf
http://www.ti.com/lit/ds/symlink/xtr117.pdf
http://www.analog.com/en/specialty-amplifiers/instrumentation-amplifiers/ad693/products/product.html
http://www.analog.com/en/specialty-amplifiers/instrumentation-amplifiers/ad694/products/product.html

Und so sieht ein industrieller Sensor aus:
http://www.ifm.com/ifmch/web/news/news__6LSE3U.html

von Michael W. (michael_w18)


Lesenswert?

So, ich hab's heute mal getestet: 1 Wire mit einem DS18B20 funktioniert 
problemlos auf einer 15m langen ungeschirmten 2 adrigen Leitung 
(Lautsprecherkabel). Allerdings musste ich den Pullup auf 2kOhm 
reduzieren (von 4,7 aus dem Datenblatt). Dies war allerdings auch schon 
bei 10cm Kabel nötig - sonst wird der Sensor zwar gefunden, die 
Temperatur aber nicht komplett ausgelesen.

Das heißt also, ich kann mein Vorhaben erstmal mit 1-Wire realisieren 
ohne Probleme mit der Übertragung an sich zu bekommen. Aufgrund der 
möglichen Probleme mit der hohen (und gelegentlich wechselnden) Spannung 
auf dem Kabel habe ich beschlossen, im Frühjahr den Spaten rauszunehmen 
und eine extra Leitung für den Anschluss des Sensors zu verlegen (dann 
gleich eine mehradrige, wo ich 3 Adern für den Sensor habe).

Vielen Dank für die vielen interessanten Beiträge und Tipps.

Grüße, Michael.

von Florian T. (florian_t)


Lesenswert?

Michael W. schrieb:
> und eine extra Leitung für den Anschluss des Sensors zu verlegen (dann
> gleich eine mehradrige, wo ich 3 Adern für den Sensor habe).

Ich würde eine Cat5 Leitung mit Shield empfehlen die in einem 
Wetterfesten PE-Rohr verläuft. Dann hast Du 8 Adern und einen Schirm 
gegen Störeinflüsse.

von F. F. (foldi)


Lesenswert?

Michael W. schrieb:
> Hat noch jemande eine bessere Idee?

Was ist denn, wenn du auf dem Arduino ein Ethernet shield steckts und 
dann die Daten über ein Powerline Adapter  überträgst?

Da gibt es sicher schon einige Anwendungen im Netz.

Strom hast du ja eh schon da und dann ist der Arduino in der Nähe des 
Pools.

von Florian T. (florian_t)


Lesenswert?

Frank O. schrieb:
> Was ist denn, wenn du auf dem Arduino ein Ethernet shield steckts und
> dann die Daten über ein Powerline Adapter  überträgst?

Powerline auf einer Leitung die mit einem Verbraucher belastet ist. Der 
Roboter wird gut für Störungen sorgen.

von F. F. (foldi)


Lesenswert?

Florian Trück schrieb:
> Frank O. schrieb:
>> Was ist denn, wenn du auf dem Arduino ein Ethernet shield steckts und
>> dann die Daten über ein Powerline Adapter  überträgst?
>
> Powerline auf einer Leitung die mit einem Verbraucher belastet ist. Der
> Roboter wird gut für Störungen sorgen.

Da gibt es nun doch von AVM sogar ein Teil, welches als Zwischenstecker 
fungiert.
Ich weiß das nicht, hab so ein Teil noch nicht besessen. Möglich ist 
das.
Dann war es wohl ne blöde Idee.

von Florian T. (florian_t)


Lesenswert?

Frank O. schrieb:
> Da gibt es nun doch von AVM sogar ein Teil, welches als Zwischenstecker
> fungiert.
> Ich weiß das nicht, hab so ein Teil noch nicht besessen. Möglich ist
> das.
> Dann war es wohl ne blöde Idee.

Naja, blöd ist die Idee nicht. Nur das Einsatzfeld ist nicht optimal. 
Vorallem müssten der Gartenschuppen und die Verbindung im Haus auf der 
Selben Phase liegen, oder aber mit einem Phasenkoppler verbunden sein. 
Sonst macht es kaum spass.

von Michael W. (michael_w18)


Lesenswert?

Ich hatte heute nochmal ein interessantes Gespräch zu dem Thema. Wenn 
die Ausgänge vom Travo gegen den Arduino potentialfrei sind, könnte es 
gehen, die freie Ader meines 3poligen Kabels und eine der Adern der 34V 
Leitung zu verwenden.
Den digitalen Eingang kann ich gegen ggf. induzierte Ströme beim 
Ein/Umschalten des Pool-Roboters durch 2 Schottky-Dioden schützen: 
Einmal gegen 5V - überschreitet die induzierte Spannung die 5V, wird 
dies über die Diode abgeleitet. Sowie einmal gegen Masse für negative 
Spannungen. Damit "zwinge" ich die eingehenden Daten-Signale, zwischen 
0V und 5V zu bleiben (+- den Spannungsabfall an den Dioden, in dem Fall 
+- 0.5V).

Ich werd die Tage mal ein paar Messungen durchführen, vielleicht brauche 
ich doch nicht den Spaten rausholen ^^

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.