serielle Datenübertragung zwischen 2 Arduinos bei Potentialdifferenz

Hallo zusammen,

ich möchte Daten über die serielle Schnittstelle zwischen 2 Arduinos austauschen.
Dies scheitert zur Zeit daran, dass kein gemeinsames Bezugspotential GND vorhanden ist, da Arduino A über USB an einem Notebook hängt und Arduino B von einem Schaltnetzteil mit 6V versorgt wird. Die Verbindung soll über Pin 10 und 11 von A (Software Serial) und Pin 0 und 1 von B erfolgen.

Es besteht ein Potentialunterschied von 2,5V.

Meine Idee war eine galvanische Trennung mit 2 Optokopplern gemäß beigefügtem Plan.
RX wird auf GND gezogen, solange der Optokoppler nicht die Verbindung zur Spannungsversorgung herstellt.

Auf der Seite B, so war die Idee, werden die 6V der Versorgungsspannung über einen Spannungsteiler in den passenden Bereich gebracht.

Wenn ich die Schaltung mit dem Multimeter durchmesse, erhalte ich die erwarteten Werte, trotzdem funktioniert die Kommunikation zwischen den Arduinos nicht.

Sind die Optokoppler nicht schnell genug? Die Übertragung soll bei 9600 Baud stattfinden.
Oder was habe ich übersehen, oder falsch gemacht?

Vielen Dank und freundliche Grüße

Frank

OptokSeriell.png

erhalte ich die erwarteten Werte

Schön, dass du die gemessen und die erwarteten Werte geheim hältst. Und welche Arduinos du verwendest, scheint für dich klar zu sein. Das macht die Frage mindestens doppelt so interessant.

Bedenke, ich kann nicht auf dein Multimeter/Tisch schauen.

Das einzige was mir auffällt ist, dass der 2,2k Widerstand an 6VB mit den beiden Weißen einen Spannungsteiler bildet. Willst du das? Warum?

Du siehst das Problem, mit der Erwartungshaltung?

Aus meiner Sicht gehört der Angstwiderstand in die RxB Leitung. (wenn überhaupt)


6V ist übrigens sehr bedenklich! Zuviel für den µC und zuwenig für den 5V Regler auf dem Arduino Unmöglich, aus meiner Sicht.

Hallo,

ich empfehle .... beide Seiten mit Optos trennen und die Spannung für die Verbindung 24Volt.

1) 6V sind zuwenig um einen Arduino an der Spannungsbuchse oder Vin zu versorgen; Da braucht es mindestens 7V 2) Wieso verwendest Du auf der B seite nicht die 5V des Arduino (5V Pin)? 3) Verbinde einfach die beiden Massen. Die gemessene Spannung wird mit einem Digitalmultimeter gemessen der zur Messung unter 1µA braucht. Darum mißt Du in solchen Fällen Blödsinn. Wenn Du es nicht glaubst miß mal im Wechselspannungsbereich.

Grüße Uwe

Hi

Ich fange jetzt wieder mit meinen CAN-Modulen an - zwei Drähte zwischen den verschiedenen Arduinos, fertig. Fehlerkorrektur oder Kollisionen machen die Module selbständig.

Wobei 'zwei Drähte' ist vll. etwas gelogen - versorgt wird das ganze Zeig von 12V einer Stapler-Batterie (StepDown-Regler auf 5V). Die Datenübertragung hängt aber nur an den beiden Daten-Drähten - ist also auch am Laptop angeschlossen empfangs/sendebereit.

CAN MCP2515 TJA1050, eBay, erster Treffer

Oder ganz auf Strom verzichten und nur Licht übertragen - Da bist Du dann ganz potentialfrei!

MfG

Wow, kommen hier schnell die Antworten! Da komme ich kaum bei mit antworten.

Schön, dass du die gemessen und die erwarteten Werte geheim hältst.
Und welche Arduinos du verwendest, scheint für dich klar zu sein.

Habe die Widerstände nachgemessen, die haben die angegebenen Werte. Heißt für mich, alle Verbindungen vorhanden, keine unbeabsichtigten Lötbrücken. Werden die Optokoppler nicht angesteuert, liegt am RX-Pin auch keine Spannung an. Beim Ansteuern schon.

Arduino A ist ein Nano und Arduino B ist ein Pro Mini.

Das einzige was mir auffällt ist, dass der 2,2k Widerstand an 6VB mit den beiden Weißen einen Spannungsteiler bildet.
Willst du das?
Warum?

Ja, ich komme nicht an die 5V von Arduino B, da ich keine weitere Ader frei habe. Da die Stromversorgung für B aber hier abgreifbar ist, war meine Idee, daran GND und 6V abgreifen zu können und über den Spannungsteiler war meine Hoffnung, den RX-Pin auf 4,5V zu ziehen zu können, was nach meinem Verständnis als high gelten müsste. Ist der Ansatz falsch?

Ich mache das alles nur hobbymäßig, also bitte ich um Verständnis, wenn ich Grundlegendes übersehe.

Aus meiner Sicht gehört der Angstwiderstand in die RxB Leitung.
(wenn überhaupt)

Die hätte ich als hochohmig angesehen, da der Pin ja kein Output ist, der auf low gezogen wird. Aber sind die 5V vom Arduino nicht zuviel für den Optokoppler? Ich dachte, der benötigt einen Vorwiderstand wie eine LED. Irre ich hier?

6V ist übrigens sehr bedenklich!
Zuviel für den µC und zuwenig für den 5V Regler auf dem Arduino
Unmöglich, aus meiner Sicht.

OK, dann werde ich wohl für den Arduino ein zusätzliches Netzteil benötigen.

wenn GND fehlt, warum ergänzt du nicht einfach eine GND Leitung?

und

Wieso verwendest Du auf der B seite nicht die 5V des Arduino (5V Pin)?

Ich hatte das so verstanden, dass man nicht unterschiedliche Bezugsniveaus zusammen schalten kann. (Schleifen vermeiden)

Verbinde einfach die beiden Massen. Die gemessene Spannung wird mit einem Digitalmultimeter gemessen der zur Messung unter 1µA braucht. Darum mißt Du in solchen Fällen Blödsinn.  Wenn Du es nicht glaubst miß mal im Wechselspannungsbereich.

Wenn ich die Massen verbinde, könnte ich ja auf die Optokoppler komplett verzichten, dann müssten die 5V Signale ja passen oder?

Ich habe jetzt mal im Gleichspannungsbereich 3V zwischen GND A und GND B gemessen; messe ich im Wechselspannungsbereich messe ich 4,2V. Aber was sagt mir das jetzt? Ich kann mir leider nichts darunter vorstellen, eine Gleichspannung im Wechselspannungsbereich zu messen. Für mein naives Verständnis sorgt die Wechselspannungsmessung dafür, den maximalen Wert der wechselnden Spannung anzuzeigen. Heißt das jetzt, der Spannungsunterschied zwischen GND A und GND B wechselt? Sorry für die Fragen, aber es ist reines Hobby und so tief bin ich noch nicht in der Materie.

RS485 Wandler kenne ich noch nicht, sehe ich mir mal an.

Vielen Dank für die tolle Unterstützung.

F200: Ich habe jetzt mal im Gleichspannungsbereich 3V zwischen GND A und GND B gemessen; messe ich im Wechselspannungsbereich messe ich 4,2V. Aber was sagt mir das jetzt? Ich kann mir leider nichts darunter vorstellen, eine Gleichspannung im Wechselspannungsbereich zu messen. Für mein naives Verständnis sorgt die Wechselspannungsmessung dafür, den maximalen Wert der wechselnden Spannung anzuzeigen. Heißt das jetzt, der Spannungsunterschied zwischen GND A und GND B wechselt? Sorry für die Fragen, aber es ist reines Hobby und so tief bin ich noch nicht in der Materie.

Im Wechselspannungsbereich mißt Du wechselspannung. Du mißt 3V Gleichspannung und 4,2V Wechselspannung als Differenz zwiscehn den beiden Massen. Jetzt schalte mal einen 10kOhm Widerstand (oder was ähnliches) zwisehn die beiden Massen und messe mal dann die Spannung. Danach erklähre ich Dir wieso es so ist wie Du es mißt. Grüße Uwe

von welchen geplanten Entfernungen sprechen wir eigentlich? etwas unter 10m

Mit 10KOhm bricht die Gleichspannung auf 0,09V ein und bei Wechselspannungsmessung auf 0V.

Ich würde mich über eine Erkläung freuen. Vielen Dank schon mal.

F200: Mit 10KOhm bricht die Gleichspannung auf 0,09V ein und bei Wechselspannungsmessung auf 0V.

Ein typisches Digitales Multimeter hat 10MOhm pro V Innenwiderstand. Das heißt im 20V Bereich ist der Innenwiderstand 200Mohm. Es fließen bei 2,5V nur 12,5nA. Diesen Strom kann irgend ein Störstrom bei einem der Netzteile (Notbook oder Netzteil) oder Induktive oder kapazitive Einstreuungen sein. Wie Du bemerkt hast, wenn Du einen kleineren Widerstand zwischen die beiden Massen schaltest ist die Spannung gleich viel kleiner. Bei 0,09V und 10kOhm fließen 9µA wobei die 0,09V eine sehr ungenaue Messung ist, weil Du Dich am unteren Ende der Spannungsskala befindest. Wenn Du die beiden Massen verbindest fließt ein Ausglaichsstrom in dieser Größenordnug; also alles andere als ein Kurzschluß der irgendwas kaputt macht.

Grüße Uwe

Ok, das würde heißen, die Empfehlung ist die Massen zu verbinden und auf die Optokoppler zu verzichten und die Leitungen direkt anzuschließen.

Vielen Dank für die Hilfe