Mehrere Arduinos mit I2C verbinden

Hallo,

Ich möchte einen Wert bzw den Wert einer Variable an mehrere Arduinos senden. Der Wert soll von einem Master Arduino kommen, in dem der Wert generiert wird, und soll bei Betätigung eines Tasters an 5 weitere Arduinos gesendet werden.

So viel ich herausgefunden habe, werden die Arduinos einfach per SDA und SCL verbunden. Um die Daten zu Übertragen, benötigt man die Wire.h Bibliothek.

Könnt ihr mir bei der Umsetzung helfen bzw. gibt es irgendwo ein "Muster-Sketch"?
Ich weiß nämlich nicht wie ich das realisieren kann.

Danke schonmal für eure Hilfe!

Lg

Hast du schon mal recherchiert oder eine Suchmaschine deines Vertrauens genutzt ?

Da findet man massenhaft Beiträge wie z.B diesen hier.

Da solltest du doch deine Frage beantwortet finden.

So viel ich herausgefunden habe, werden die Arduinos einfach per SDA und SCL verbunden.

Pullup nicht vergessen!
Evtl. ist ein Levelshifter nötig.

Der Wert soll von einem Master Arduino kommen, in dem der Wert generiert wird, und soll bei Betätigung eines Tasters an 5 weitere Arduinos gesendet werden.

Da Wire den I2C General Call nicht beherrscht, wird du die Nachricht nacheinander an die Slaves schicken müssen.
Einzeln.

Also dieses Beispiel modifizieren.

Hi

Wie weit sind denn die Arduinos auseinander?
INet-Fund:cc2.net, I²C-Tips
mikrocontroller.net, I²C als Hausbus

MfG

mich3499:
So viel ich herausgefunden habe, werden die Arduinos einfach per SDA und SCL verbunden. Um die Daten zu Übertragen, benötigt man die Wire.h Bibliothek.

GND sollte auch verbunden werden. PullUpWiderstände wurden ja schon gesagt.

Gruß Tommy

Die für mich beste Anleitung: I2C - Two-Wire Peripheral Interface - for Arduino

Ok Danke erstmal!

Wie hoch gehören die Pull-Up Widerstände dimensioniert? Gwehören diese auf+5V?

Gibt es irgendwo ein gutes Beispiel sketch wo die Befehle kommentiert sind was jeder macht?

LG

Hi

Die Spezifikation zu I²C wirst Du nicht in einem Sketch finden.
Egal, wie gut Dieser kommentiert ist :wink:
PullUP heißt: ziehe hoch - jupp, zwischen Pin und +5V (bei 3,3V-µC halt 3,3V).
PullDN wäre dann 'ziehe runter' - somit zwischen Pin und GND.
PullUPs hat der Arduino (und sonst auch eine ganze Menge an µCs) bereits verbaut, weshalb Diese sehr gerne benutzt werden - hier aber eher nicht praktisch, weil

  • der Wert für I²C etwas hoch
  • der Wert stark streut

MfG

Und um die Beschreibung von postmaster-ino noch zu vervollständigen, die Pullups für I2C werden meist mit 4,7 k Ohm angegeben.