2 Arduinos per I2C verbinden (Master/Master) plus LCD Display

Guten Tag in die Runde,
ich habe bereits gelsen das ich zwei Arduinos per I2C verbinden kann(Master/Slave). Nun die große Frage, kann man das auch als Master/Master realisieren? Kann man trotzdem noch ein LCD über I2C ansprechen(Egal welche Variante Master/Slave oder Master/Master)?

Danke und Gruß,
Mike

Hier findest du eine Beschreibung zu I2C-Multimaster. MultiMaster – I2C Bus

Und ja, du kannst weiterhin dein I2C-Display ansprechen, das hat ja eine eigene Adresse.

Wenn du die I2C Spezifikation lesen würdest, dann könntest du evtl. in Erfahrung bringen, dass der Bus Multimaster fähig ist.
In der Arduino Doku steht, dass ein jeder AVR sowohl Slave, als auch Master sein kann.

In den Weiten des I-Net findet sich dann auch, dass ein ESP8266 nicht Slave sein möchte.
Und, dass mehr als 2 AVR I2C Master etwas zum Deadlock neigen.

:smiling_imp: Habe ich dir das Internet schön vorgelesen? :smiling_imp:

Master/Master geht natürlich nicht, aber ein Arduino kann auch mal die Rolle wechseln.

z.B. sind beide Slave und warten, bis sich einer entscheidet, aktiv (Master) zu werden.
Dann gilt HotSystems Link über MultiMaster.

Soll das LCD von beiden angesteuert werden können?

Wenn nicht, kann es auch einfacher sein, nur 1 Master zu haben, der sowohl mit dem LCD wie auch mit dem Slave-Arduino (bidirektional) Daten austauscht. Ob der Slave darauf wartet, dass der Master ihn fragt ob er was melden will, oder ob er als einer der MultiMaster aufpasst, wann der Bus frei ist, ist eigentlich nicht wirklich wichtig, finde ich.
Während der LCD-Master mit dem Display redet, kann der andere eh nichts machen und muss warten. Danach kann der LCD-Master ebensogut den andern Arduino fragen, was es gibt, anstelle selber Slave zu werden und zu warten, ob der andere Master werden will.

Wenn beide unabhängig voneinander das LCD beschreiben wollen, ist das ganze natürlich was anderes.

Irgendwie verstehe ich nicht, wieso 2 Arduinos notwendig sind. Wenn beide per I2C kommunizieren sollen, und auch das Display an diesem Bus dranhängt, kann der erste Arduino doch auch gleich direkt auf das Display zugreifen.

Aber wenn die beiden Arduinos zu weit auseinander sind, kommt I2C kaum zur Datenübertragung in Frage. Dann sollte die Datenüberbtragung eher über eine Serial Schnittstelle erfolgen.

Am besten erzählst Du mal mehr über Dein Projekt, über was die beiden Arduinos sich unterhalten sollen, über welche Entfernung usw.