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
Arduino Mega2560 als Master/Slave erweitern über I2C
03.09.2013, 20:24
Beitrag #1
Arduino Mega2560 als Master/Slave erweitern über I2C
Hallo,

ich betreibe ein Mega 2560+3,2"-TFT-Display mit SD-Karte (habe ich als Bundle gekauft).
Nun muss ich wohl wegen der noch wenig freien Ports an eine Erweiterung denken.
Es gibt die Möglichkeit ein weiteres Arduinoboard über I2C im Master/Slavebetrieb zu steuern. Welche Boards außer UNO eignen sich dazu?
Geht das ganze auch über SPI und was hat mehr Vorteile?

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2013, 10:37
Beitrag #2
RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Moin,

generell geht eine Verbindung von zwei Mega über I2C.
Es gibt ein ziemlich gutes Video bei Youtube die die Zusammenhänge und die Verkabelung erklärt. ABER: das ganze ist in englisch!!
Hier der Link: http://www.youtube.com/watch?v=Jndb2vpAWwU
Dort wird zwar ein Uno mit einem Leo verbunden. Zwei Mega gehen aber ohne Probleme auch.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2013, 17:22 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2013 17:59 von alpenpower.)
Beitrag #3
RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Hallo Ricardo,

ich habe eine Nettobedarfsermittlung gemacht und festgestellt, dass mein Mega2560 incl. 3,2"-TFT usw. zu wenig Ports frei hat, deswegen möchte ich auf diesem Weg mir mehr Möglichkeiten verschaffen.
Wie betriebssicher sind denn solche Master/Slave-Betriebe über I2C eigentlich?
Wenn mir nämlich der Zuluftlüfter der Elektroheizung ausfällt, und im einfachen Fehlerfall der eine mit dem anderen nicht mehr spricht, dann brauche ich in wenigen Minuten die Feuerwehr.

Ich dachte mir, dass ich den Mega2560 als Master betreibe und hier sämtliche Einstellungen u. Auswertungen u. Anzeigen erledige, also die Schnittstelle zum Menschen.
Die reine I/O-Sache, also Fühlereingänge (analog u. I2C) u. Ausgänge für Schützansteuerung würde ich dann am Slave verdrahten. Nur hab ich keine Ahnung, wie betriebssicher der Busbetrieb ist.
Die beiden Master/Slaves sind mechanisch nur ca. 10cm entfernt.
Einige Fühler werden ca. 10m entfernt sein und ich denke, hier wird das alles dann immer störanfälliger und damit unsicherer im Betrieb.
Dazu habe ich aber noch keine Idee, wie ich das realisieren werde, vielleicht kann mir jemand einen Tipp geben.
Ist die Master/Slave unbedingt I2C oder gibts noch andere Busmöglichkeiten, welche betriebsicherer sind, so dass ich Sensoren u. die Kommunikation beider Aruinos trennen kann?

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2013, 19:29
Beitrag #4
RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Hallo Franz,
dann wollen wir deine Aussagen mal auseinander nehmen:
Zitat:ich habe eine Nettobedarfsermittlung gemacht und festgestellt, dass mein Mega2560 incl. 3,2"-TFT usw. zu wenig Ports frei hat
Dazu ein entschiedenes "könnte sein" ;-)
Nee ernsthaft, das Problem bei den Arduino Shields ist, dass die meist mehr Ports "klauen" als sie wirklich benutzen. Das ist gerade bei dem von dir genutzten Bundle so. Ich bin auch schon wie blöde am suchen nach einer Doku um zusehen wie viel Ports das LCD-Touch wirklich benutzt. Sobald ich da was habe gebe ich den Link raus.
Zitat:Wie betriebssicher sind denn solche Master/Slave-Betriebe über I2C eigentlich?
Das ist eher die Frage wie betriebssicher die Verkabelung zwischen den Arduinos ist.
Da ist schon richtig ordentliches Löten angesagt!
Das Protokoll I2C ist selbst sehr sicher, da Industriestandard. Wird oft auch als TWI bezeichnet.
Die Aufteilung der "Aufgaben" auf die beiden Arduino ist im ersten Blick sehr logisch, hat aber einen "Fehler": durch diese Aufteilung musst du alle gemessenen Werte von einem Arduino auf den anderen übertragen. Und das heißt ein Haufen Protokollprogrammierung um die typischen Events abzuarbeiten (Receive, Request etc.) Am besten ist es wohl (ganz einfache Methode) eine Liste aufzumachen, die folgendes enthält:
1. Spalte: alle Sensoren, Aktoren (Relais etc.) und Anzeigen
2. Spalte: Deklaration Input / Output
3. Spalte: Input von wem / Output an wen
4. Spalte: durch die Bauteile belegte PINs
Die Teile die dann am meisten miteinander reden, sollten dann an einem Arduino hängen, insofern die PiNs reichen.
Zitat:Einige Fühler werden ca. 10m entfernt
Für die größeren Entfernungen würde ich so was wie Cat-5 Netzwerkkabel nehmen. Das hat 8 Adern, die entweder abgeschirmt sind oder sich durch Verdrillung gegenseitig abschirmen. So kannst du auch gleich mehrere Elemente über ein Kabel führen.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.09.2013, 23:13
Beitrag #5
RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Hallo Ricardo,

ich hätte da sehr geringe Zweifel, was eine vernünftige Verkabelung angeht, komme ja beruflich aus der Fertigung.
Das mit dem Protokoll (auf der Bitebene) und der Sicherheit beruhigt mich.
Was mir mehr Kopfzerbrechen macht ist die Aufteilung der Ports.

Wir haben in einem anderen Thread schon mal über das Thema TFT usw. diskutiert.
Hier werden bestimmt einige Ports verbraten. Momentan trenne ich mechanisch das Display von der CPU, um einfach mal an die restlichen Pins zu kommen. Wenn ich fertig bin, dann stell ich mal ein paar Fotos ein. Ich setz mich jetzt wirklich mal hin und grübel das mal durch. Vielleicht komm ich dir ja noch zuvor.
Aber trotzdem legt man ein System mit gewisser Reserve aus und da wird's bei mir zu eng.
Einige Ports, speziell die analogen sind ja noch frei, da ich immer noch nicht entschieden hab, welche Sensoren ich verwende. Dazu muss ich demnächst noch ein paar Versuche machen.
Sinnvoll wäre ja dann vielleicht die Lösung, dass ich doch die ganzen Sensoren auf dem Mega2560 anschließe und nur die Outputs auf dem Slave mache, oder?

Das mit der Liste ist aber keine schlechte Idee, werd ich mir merken.

Die Verkabelung CAT5, geschirmt oder verdrillt ist kein Thema, komme ja aus der Nachrichtentechnik.

Geht eigentlich die Master/Slave nur über I2C oder kann man sowas auch über SPI machen (oder ist das der gleiche Port, da habe ich noch keinen Überblick)?

Dann muss ich EUCH mal allen ein Kompliment machen, hier wird wirklich gut geholfen...und ich fühl mich aufgeräumt und betreut, vielen Dank an alle.

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.09.2013, 08:06
Beitrag #6
Tongue RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Moin Franz,

du bist aber auch Tag und Nacht dran, oder? ;-)
Zitat:Geht eigentlich die Master/Slave nur über I2C oder kann man sowas auch über SPI machen
Generell ist auch SPI nutzbar, aber:
- Es gibt immer wieder Aussagen im Internet, dass bei SPI Komponenten mit verschiedenen "Baudraten" an einem Strang sich gegenseitig blockieren und damit auch untereinander ausbremsen.
- Und SPI braucht immer folgende Lines:
MOSI,MISO,SCK,SS (je angeschlossener Komponente, egal ob Arduino oder ein Shield), GND. Siehe hier: http://arduino.cc/de/Reference/SPI
Ergo brauchst du dann für den Anschluss des zweiten Arduino schon mal 5 Lines.
Mal abgesehen davon, dass die Sketche dann auch anders aussehen müssen.
Eine weitere Geschichte wäre es über ein Port Expander nachzudenken. Der stellt zwar ausschließlich OUTPUT-Ports bereit, davon aber immerhin 16 Stück.
Siehe hier: http://www.robotshop.com/i-o-port-expand...ino-3.html
Vielleicht bringt das ja was!?
Die Nutzung der UART-Ports mit RS232- oder RS485-Protokoll ist nur relevant wenn du keine Master/Slave - Architektur benötigst, also zB. nur Komponenten ansteuerst und keine Rückinfo (Acknowledge) erwartest.

Grüße Ricardo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.09.2013, 19:19
Beitrag #7
RE: Arduino Mega2560 als Master/Slave erweitern über I2C
Servus Ricardo,

das mit den Shields nervt mich immer mehr. So kompakt dies alles zusammen passt, aber man kommt nirgends mehr hin.
die Idee mit einem Erweiterungsbaustein zu arbeiten ist gut. Eine entsprechende Platine werde ich sowieso machen müssen, aber das dauert noch.

Das mit SPI werd ich lassen, das ist mir zu aufwändig, egal.

Ja ich bin immer dran. Das Arduinozeug hat mich echt fasziniert. Ich werde das auch bei meinen Azubis einbringen, aber vorher muss ich noch üben, gell.

Nun, dann werd ich mich mal auf die Software stürzen.
Schöne Grüße

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


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Servo über Temperatur steuern querkopf71 3 83 07.12.2016 19:21
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 3 235 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Menü über Bluetooth Eingabe abwarten anwo 4 505 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Daten über USB verarbeiten Felix91 10 331 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Code mit Verifikation über Keypad & LCD machnetz 5 216 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Arduino Steuern über eigne Homepage b3ta 8 406 16.08.2016 11:07
Letzter Beitrag: Pit
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 181 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Programmspeicher auf i2c_EEPROM oder SD_Card erweitern? avoid 11 350 11.07.2016 15:46
Letzter Beitrag: avoid
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 337 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  DUE-MEGA über I2C Verbinden HTO 0 223 22.05.2016 10:16
Letzter Beitrag: HTO

Gehe zu:


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