Forum: Mikrocontroller und Digitale Elektronik mehrer Arduino's mit RS232 verbinden


von StB (Gast)


Lesenswert?

Hallo,

kurze Frage..
ist es möglich mehrere Arduinos mit einer RS232 Verbindung zu verbinden?

Hintergrund:

ich habe eine Art "Fernbedienung" mit Tasteren und Potis..
ein Arduino in der Fernbedienung soll die Tasten und Potis einlesen und 
Änderungen mit einer fest vergebenen "Adresse" je Taster und einem Wert 
seriell senden.

Etwa 5 weitere Arduinos sollen parallel die RS232 auslesen und wenn sie 
eine für Sie besimmte "Adress-Botschaft" erhalten bestimmte Codes 
ausführen.. welche nur auf den "Empfängern" vorhanden sind.

eine Rückantwort gibt es nicht.

Meine Frage, kann man an die RS232 einen Sender und mehrere Empfänger 
schalten, oder ist RS232 nur für Verbindungen von 2 Teilnehmern 
geeignet?

Gesamtlänge der RS232 wird ca. 8m sein.

Danke! Gruß Stefan

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

StB schrieb:
> Meine Frage, kann man an die RS232 einen Sender und mehrere Empfänger
> schalten
Ja. Welche Baudrate brauchst du?

von StB (Gast)


Lesenswert?

Hallo,

da das ganze von "Hand" bedient wird, denke ich das max. 19200Baud 
reichen sollten..

von Pandur S. (jetztnicht)


Lesenswert?

Man kann's probieren, ich wuerd mich aber nicht drauf verlassen. Und 
speziell nicht so in ein Produkt einbauen.

von Ulrich F. (Gast)


Lesenswert?

5 RxD mit einem TxD zu verbinden sollte möglich sein.
Ich sehe keinen Hinderungsgrund.

von StB (Gast)


Lesenswert?

das ganze gehört für mich privat, wird sicherlich nie verkauft werden 
und führt auch keine sicherheitsrelevanten Schaltungen aus.

Es soll einfach eine größere Teichanlage "zentral" steuern können...

von Amateur (Gast)


Lesenswert?

Grundsätzlich können, so die Treiberleistung stimmt, beliebig viele 
Empfänger an einer RS232-Leitung lauschen.

Schwierig wird es erst, wenn sich diese auch äußern sollen. Um das zu 
bewerkstelligen sind die folgenden Bedingungen zu erfüllen:
1. Alle Empfänger müssen einen Sender haben, der in einen hochohmigen
   Zustand gehen kann.
2. Im Kommunikationsprotokoll muss eine Adresse vorgesehen werden, die
   es erlaubt einzelne Empfänger anzusprechen.
3. Kein Empfänger wird von sich aus aktiv.
4. Nur der angesprochene darf aus dem hochohmigen Zustand kommen

Ich würde es folgendermaßen machen:
Einen Ring aufbauen. Also Tx an Rx usw.
Jeder Befehl, natürlich mit Adresse, der nicht für den Angesprochenen 
Empfänger gedacht ist wird weitergeleitet. Irgendwer wird schon gemeint 
sein.
Jede Antwort wird zum Master weitergeleitet. Notfalls können, wenn eine 
lange Reaktionszeit vorkommen kann, eine Absenderadresse zu einer 
Antwort hinzugefügt werden.

von Ast E. (vis)


Lesenswert?

mal eine Frage... warum denn überhaupt mehrere Slaves?!

von Dietrich L. (dietrichl)


Lesenswert?

Ulrich F. schrieb:
> 5 RxD mit einem TxD zu verbinden sollte möglich sein.
> Ich sehe keinen Hinderungsgrund.

Das hängt von den RS232-Treibern ab. Wenn sie sich "nur" an die 
RS232-Definition halten, geht das nicht, siehe 
https://de.wikipedia.org/wiki/RS-232#Definition

Genaues kann man nur sagen, wenn man das Datenblatt des tatsächlich 
verwendeten RS232-Bausteins zu Rate zieht. Außerdem geht der Störbelag 
auf der Leitung in die Betrachtung ein, da durch die 5-fache Last der 
Sendepegel kleiner wird.

Gruß Dietrich

von Ulrich F. (Gast)


Lesenswert?

Dietrich L. schrieb:
> Wenn sie sich "nur" an die
> RS232-Definition halten, geht das nicht,

Naja.....
Es kennt nur Datenendgeräte und Datenübertragungsgeräte.
Also, ja, in der Spezifikation ist das so nicht vorgesehen.

Andererseits, sollte ein solcher Ausgang, bei einer Last von ca 5K noch 
brauchbare Pegel liefern können. (irgendwie so ähnlich stehts auch in 
der Spezifikation)

Hast aber recht, vielleicht gibts ja auch exotische Treiber, welche das 
nicht können.
Ja: Datenblatt lesen.
(aber das kann ich keinem abnehmen, denn die Treiber sind noch geheim)

von StB (Gast)


Lesenswert?

ich dachte an MAX232, eine Rückantwort ist definitiv nicht vorgesehen, 
wird auch nicht gebraucht.
Alternativ kann ich statt RS232 auch RS485 verwenden..

Mehrere Slaves sind nötig da die Verbraucher, die geschaltet werden 
sollen, nicht am gleichen Ort sind.

von Bustreiber (Gast)


Lesenswert?

Warum nicht einfach 485 Treiber verwenden. Die sind genau dafür gebaut. 
selbst die einfachsten können 32 Eingänge treiben.
Von der Software her macht das ja kein Unterschied und wenn man die 
Treiber umschaltbar macht währen sogar Antworten der Slaves möglich.

von Carl D. (jcw2)


Lesenswert?

Wenn's einfach nur Ein/Aus werden soll, warum nicht I2C (TWI oder Wire 
in Arduino-Sprache), mit 20kHz geht das über lange Leitungen und 
altehrwürdige PCF8574?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bustreiber schrieb:
> Warum nicht einfach 485 Treiber verwenden. Die sind genau dafür gebaut.
> selbst die einfachsten können 32 Eingänge treiben.
Dann aber auf eine lineare Busstruktur mit Abschlausswiderstand achten. 
Wird Sternverkablung verwendet, ist auch mit RS485 (oder eher RS422) 
kein Zuverlässigkeitsgewinn erreichbar.
Nachteil an RS422/485 : man kan nicht einfach einen Laptop zum 
"Mithören" anschließen.

von Bustreiber (Gast)


Lesenswert?

Lothar M. schrieb:
> Nachteil an RS422/485 : man kan nicht einfach einen Laptop zum
> "Mithören" anschließen.
Doch ganz einfach, darbrachte man halt noch ein 485 und ein max232 
Treiber. Oder heute eher einen FTDI und einen 485.
Man bekommt dann beide Senderichtungen in einem Fenster angezeigt.

von StB (Gast)


Lesenswert?

Ok als BUS werde ich auf RS485 umsteigen, auf die paar Bauteile kommt es 
mir nicht an.
Werde in nächster Zeit mal eine Versuchsschaltung aufbauen und testen.

Danke für die Antworten.

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.