Go Down

Topic: Byte seriell ausgeben und seriell einlesen (Read 635 times) previous topic - next topic

komika

Hallo,

ich möchter gerne, dass mein Controller ein Byte seriell über einen Pin ausgibt, das krieg ich auch noch hin, ein anderer Controller soll die einzelnen Bits dann einlesen. Doch wie mache ich das mit der Synchronisierung, so dass der zweite Controller weiß, dass das erste Bit übertragen wurde und nun das zweite kommt?

Udo Klein

Gar nichts. Das machen die schon selber richtig. Du musst nur die Baudrate und Parity richtig einstellen.
Check out my experiments http://blog.blinkenlight.net

komika

Ich sollte also TX und RX verwenden? Geht das auch, wenn ich mehrere Controller miteinander kommunizieren lassen will?

Udo Klein

Klar, TX und RX überkreuzen.

Mehr als 2 Controller geht nicht einfach so, das ist eine Schnittstelle, kein Bus.
Check out my experiments http://blog.blinkenlight.net

komika

Zu meinem Vorhaben:

ich möchte gerne eine Art Bus-System. Ein Controller bekommt die Steuerbefehle von einem Processing Programm. Je nachdem welcher "Button" gedrückt wird soll der dazugehörige Controller über die Leitung einen Befehl bekommen. Jeder angeschlossene Controller bekommt quasi eine Adresse, wird diese Adresse gerade gesendet soll der Controller zum Beispiel auf einen PIN ein High setzen.

Udo Klein

Dann nimm I2C, das kann der Arduino ja auch.
Check out my experiments http://blog.blinkenlight.net

komika

Kennst du ein Beispiel wo zwei oder mehrere Arduinos miteinander verbunden werden?

uwefed

Da gibt es mehrere Möglichkeiten:
I2C wie Udo sagt. Wenn Du keine Adresse angibst dann ist das der Master, mit Adresse die Slaves.
http://arduino.cc/en/Tutorial/MasterWriter
http://arduino.cc/en/Tutorial/MasterReader
Der Haken dabei ist aber die maximale Kabellänge des Busses. Mehr als einige Meter ist da nicht drin. Mit speziellen Port Extendern kommst Du dann auf etwas zwischen 10m und 20m.

Du kannst es auch über die serielle Schnittstelle bzw Software Serielle Schnittstelle und je einen MAX485 ein RS485 Netzwerk machen. Da sin dann einige 100m drin.

grüße Uwe

Go Up