INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
UART vs. I2C mit >5 Arduinos
24.07.2016, 12:18
Beitrag #1
UART vs. I2C mit >5 Arduinos
Ich möchte für eine recht komplexe Gesamtaufgabe mehrere Arduino verbinden, die dann jeweils eine Teilaufgabe übernehmen.

Dazu muss ich die Controller "vernetzen" z.B. per SoftSerial oder I2C

Ein Mega wird über einen TouchScreen die Bediener-Schnittstelle bilden.
Ein bis zwei UNO oder Nano dienen für Sensor-Eingänge und der Teilauswertung der Sensorik.
Dann erfolgt im Mega in Abbhängigkeit der Einstellungen eine Berechnung für die Aktoren.
Diese werden dann wieder an an ein oder zwei Nanos hängen.

Meine Frage nun:
Was gilt es zu beachten, damit sich diese gesamte Kommunikation nicht selbst ein Bein stellt?
Ich benötige diese Informationen etwa im 20 Hz Takt

Jedes Serial.availeble läuft doch intern wie ein Interrupt ab.
Was ist, wenn gleichzeitig eine Information gesendet wird?

Bei der Kommunikation von 2 Arduinos mach ich mir da wenig Gedanken.
Aber wenn so viel hin und her geschaufelt wird..?

Sollte ich da lieber die Daten 2 oder 3 mal senden und beim Empfang auf Gleichheit prüfen, bevor etwas aktiv wird?
Oder vielleicht einen Teil der Kommunikation über I2C abwickeln.
Bringt das überhaupt etwas, oder kann das genausogut zu Problemen führen als wenn ich über UART komme?

Es müssen bei der Sensorik 2 unsigned INT transportiert werden.
Auf der Aktoren Seite reichen 2 Byte aus.

Allerdings muss ich auch Informationen zurück bekommen von den Aktoren, zur Auswertung bei Fehlern.

Ich hoffe, das einigermaßen verständlich und trotzdem kompakt formuliert zu haben...

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.07.2016, 13:16
Beitrag #2
RE: UART vs. I2C mit >5 Arduinos
Nur zur Info:
UART-Serial ist eine Point to Point Verbindung, also immer nur Gerät zu Gerät.
I2C ist ein Bus, da geht mehr. Der ist nur etwas eingeschränkt, was die Reichweite betrifft.
Ohne besondere Hardware-Erweiterung nur wenige cm.
Mit zusätzlicher Hardware auch einige Meter, evtl auch bis zu 200 m.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.07.2016, 17:18
Beitrag #3
RE: UART vs. I2C mit >5 Arduinos
Ja, genau darauf zielt die Frage ab.
Verwende ich UART, muss ich zwangsläufig auf SoftSerial ausweichen.

Ist ja groß kein Problem, aber was, wenn dann gleichzeitig auf 2 Pins Informationen eintrudeln?
I2C wiederum hat den Nachteil der "kurzen Wege"

Den Nachteil kann ich in meinem Fall vernachlässigen.
Aber was passiert intern denn, wenn gleichzeitig I2C kommuniziert UND auch noch per SoftSerial was läuft?

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 10:23
Beitrag #4
RE: UART vs. I2C mit >5 Arduinos
(24.07.2016 17:18)Binatone schrieb:  Ja, genau darauf zielt die Frage ab.
Verwende ich UART, muss ich zwangsläufig auf SoftSerial ausweichen.

Ist ja groß kein Problem, aber was, wenn dann gleichzeitig auf 2 Pins Informationen eintrudeln?
I2C wiederum hat den Nachteil der "kurzen Wege"

Den Nachteil kann ich in meinem Fall vernachlässigen.
Aber was passiert intern denn, wenn gleichzeitig I2C kommuniziert UND auch noch per SoftSerial was läuft?

Binatone
I2C kannst du ja per Interrupt händeln, wie das mit SoftSerial zusammen arbeitet, da fehlt mit leider auch die Erfahrung.

P.S. Bei I2C kannst du aber die Buslänge mit entsprechenden Bausteinen (P82B715) leicht erweitern.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 10:35
Beitrag #5
RE: UART vs. I2C mit >5 Arduinos
Hallo,
der Arduino kann ja nicht vieles auf einmal, nur eines nach dem anderen.
Bei vernünftiger Programmierung werden keine Daten verloren gehen.

Kurze Wege ist ja relativ, I2C habe ich einmal mit 4,78m probiert, funktioniert
ohne Probleme (Mega <-> Uno).

Wenn es Arbeit machen soll, aber nichts kosten darf, nimm RS-485 oder
ähnliches. Wenn es keine Arbeit machen soll und Kosten nicht so wichtig sind, dann mache es mit XBee-Modulen.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 11:08
Beitrag #6
RE: UART vs. I2C mit >5 Arduinos
(25.07.2016 10:35)SkobyMobil schrieb:  (...)

Wenn es Arbeit machen soll, aber nichts kosten darf, nimm RS-485 oder
ähnliches. Wenn es keine Arbeit machen soll und Kosten nicht so wichtig sind, dann mache es mit XBee-Modulen.
Gruß und Spaß
Andreas

Hihi
Wegen 2-3 Meter Entfernung über xbees zu gehen ist dann doch etwas heftig, wenn auch machbar Smile

Naja, mal schauen...
Vielleicht schaffe ich es ja, einen Master zu programmieren, der die Kommunikation nacheinander abfährt.
Die Slaves dürfen dann eben nur antworten, wenn sie vom Master dazu aufgefordert werden.
Dazu bekommt jede Verbindung > 20 cm eine UART Verbindung über SoftSerial. Bei kleiner Baudrate sollten doch 5 Meter machbar sein, oder?

Die kürzeren Wege vielleicht doch über I2C?!

Dann schicke ich jede Information doppelt.
Nach dem Empfang dann einen Vergleich und bei Übereinstimmung dann die Weiterverarbeitung.
Bei Problemen einen Zähler hochsetzen, zur späteren Auswertung..

So oder so ähnlich sollte es doch machbar sein.
Oder hab ich was wichtiges übersehen?

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 11:42
Beitrag #7
RE: UART vs. I2C mit >5 Arduinos
Hallo,
also wenn es max 5m sind, dann probiere mal I2C. Kleine Elko in die
Spannungsversorgung der Slave´s.
Ich weiß aber nicht, wie Störanfällig das ist. Einfach mal Versuchsaufbau
starten. Bei mir hat das funktioniert.

Der Mega hat sich vom Uno einen Messwert geholt, und die Uhrzeit auf das
LCD des Uno gebracht.
Hier findest Du alles zum schnellen erfolgreichen Start. Das funktioniert.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 11:44
Beitrag #8
RE: UART vs. I2C mit >5 Arduinos
Hey!

Schon mal über SPI nachgedacht? Die Reichweite wird mit reichen (paar Meter).
Der Master kann Anfragen an die Slaves schicken, diese Antworten dann und so der Reihe nach durchgehen. Damit kann nichts durcheinanderkommen, falls mehrere Slaves gleichzeitig senden wollen.
Interrupt-Verarbeitung sollten auch vorhanden sein.

Mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  1.8" Serial: UART/I2C/SPI True Color OLED160x128 OLED Module Georg 4 2.014 31.08.2014 19:03
Letzter Beitrag: Georg
Brick Kommunikation zwischen zwei Arduinos Neuwirth 7 4.081 05.12.2013 10:03
Letzter Beitrag: NoPeanut09

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste