Go Down

Topic: 2 Arduino verbinden (Read 11775 times) previous topic - next topic

Thhherapy

Hallo,
bin ganz neu im Gebiet Programmierung und Mikocontroller.
Dachte ich fang mal mit Arduino an, weil für für das andere fehlt mir einfach die Zeit.

Zu meinem ersten Projekt.....
Ich möchte 2 Arduino miteinander verbinden. Es wird einen Sender geben und einen Empfänger.
Am Sender wird z.b. Eingang 1 gesetzt und am Emfänger wird z.b. Ausgang 5 und 6 gesetzt.
Verbunden wird das ganze störungssicher über Kabel. Die Frage dabei ist, welche Art von Verbinung und wie schnell ist die?


Ich brauche eine möglichst verzögerungsfreie Übertragung. (das ist Wichtig!)

Ich hätte eigentlich an RS232 gedacht.
Jetzt hab ich noch was von I2C gelsesen.
Ein Ethernet Shild gibts ja auch noch....


Was wär jetzt am besten und am schnellsten?




Falls es möglich wäre, möchte ich auch noch 2 Analogsignale übertragen
Analogeingang am Sender und Analogausgang am Empfänger.
Wie siehts da mit der übertragungsgeschwindigkeit aus, geht das ruckelfrei?

stundenblume

#1
Jan 22, 2011, 04:28 pm Last Edit: Jan 22, 2011, 04:30 pm by stundenblume Reason: 1
Willkommen,

http://www.instructables.com/id/I2C-between-Arduinos/

Quote
Ever wanted to connect more Arduino's to transfer data or commands between them?
What purpose? Maybe you don't have enough I/O Pins or Analog In's. Maybe you want to do separate tasks on the same project but still want to communicate between the Arduino's. Or maybe you just need to do a simple thing more complicated.

There are many ways to send a command to another Microcontroller:

UART -   Requires pins 0 and 1. The problem with UART is that only one device can send data to another. And also it's already in use by the USB port of the Arduino to connect to the computer.

DIGITAL I/O -  Basically put a pin HIGH and read it on the other Arduino. But with this you have a
limited number of commands and devices.

I2C - I2C Requires Analog Pins 4 and 5 and two pull-up resistors. You can connect more than 100 Arduino's on the same 2 pins. It's simple, reliable and easy-to-use.
Libraries:
  - multiCameraIrControl [V1.6]
  -

Thhherapy

Nach stundenlanger recherche im Internet bin ich wieder etwas schlauer.

Arduinos haben eine UART Schnittstelle (keine RS232 wie ich angenommen habe) und jetzt weis ich auch wie diese funktioniert.

Digital I/O fällt weg, die brauch ich für was anderes.

I2C fällt ja eigentlich auch weg, weil
Quote
Ungeeignet ist der I²C-Bus zur Überbrückung größerer Entfernungen, wie es beispielsweise für Feldbusse typisch ist. Für Übertragungen zwischen verschiedenen Geräten mit getrennten Gehäusen ist der Bus nicht störsicher genug.



bytzmaster

Im Link hat es jmd auf über 200m geschafft mit I²C.

http://www.mikrocontroller.net/topic/40880

stundenblume

Ich würde ebenfalls I²C bevorzugen. Falls Du aber gern Seriell arbeiten möchtest und keinen Mega mit 4 UARTS verwendest gibt es hier Hilfe: http://arduiniana.org/libraries/NewSoftSerial/
Libraries:
  - multiCameraIrControl [V1.6]
  -

uwefed

#5
Jan 23, 2011, 10:50 am Last Edit: Jan 23, 2011, 10:43 pm by uwefed Reason: 1
Bei Arduinos mit ATmega328 oder Atmega168 wird die als Hartware implementierte Schnittstelle wird für den Upload der Sketch verwendet. Du kannst sie auch verwenden, mußt aber für Uploads dann die externe Beschaltung entfernen damit Uploads funktionieren.

Für Alternativen: stundenblume war mal schneller als ich.

Grüße Uwe

Thhherapy

#6
Jan 23, 2011, 05:20 pm Last Edit: Jan 23, 2011, 05:21 pm by Thhherapy Reason: 1
Das versteh ich jetzt nicht ganz...

Ich lade doch nur jeweils einmal das Programm auf die 2 Arduino und dann benutz ich diese Schnittstelle nur noch zwischend den beiden als Datenaustausch.

Funktioniert das nicht?
Wieso?
Meinst du mit externer Beschaltung den USB-Wandler?

uwefed

Ich meine externe Beschaltung am TX und RX PIN ( PIN 1 und Pin 0) des Arduino's.
Der FT232 ist über 2 Widerstände an RX und TX Pin angeschlossen. Darum wenn Du etwas an TX oder RX hängst wird der Datenaustauch zwischen Arduino und FT232 gestört.

Grüße Uwe

Thhherapy

achso, dein Post und er von stundenblume hat mich jetzt etwas iritiert.
Bei ihm hört sich das so an wie wenn es nur mit dem Mega richtig funktionieren würde....

villeicht nimm ich doch I²C.... mal sehn.

Go Up