Hallöle zusammen,
ich hatte kürzlich -> hier <- ja mal ausprobiert, ob es möglich ist mehrere Arduino (in meinem Fall Pro Mini) über I2C zu vernetzen.
In -> diesem <- Beitrag wird die Vorgehensweise sehr ausführlich beschrieben und es funktioniert auch wie es dort dargestellt ist. Diesen Beitrag habe ich auch als Vorlage für meinen Versuchsaufbau verwendet.
Ich habe dazu einen Fritzing-Plan zur Verschaltung angefertigt, den ihr im Anhang findet.
Hier nur noch mal eine kurze Zusammenfassung der Vorgehensweise:
Ihr braucht:
Ein Breadboard zum einfacheren Verbinden
Zwei oder mehr Arduino Pro Mini
Zwei Widerstände mit 1 kOhm oder 1.5 kOhm
18 Kabel
und natürlich einen FTDI Flash-Adapter
Zunächst verdrahtet ihr die Arduinos mithilfe des Breadboards so, wie im Plan im Anhang.
Danach steckt ihr den Flash-Adapter auf den ersten Arduino - dem "Master" (bei mir im Plan der erste von rechts, ist aber imho vollkommen Banane ...)
Vergewissert Euch, dass ihr die Wire Library habt (ist in der aktuellen Arduino IDE enthalten. Unter Ubuntu: /usr/share/arduino-1.0.5/libraries) und startet die Arduino IDE.
(btw: -> hier <- ist die Referenz auf diese Lib)
Öffnet den sketch "Datei->Beispiele->Wire->master_writer".
Schaut Euch den sketch mal an: da wird ohne Angabe einer Adresse auf den I2C Bus zugegriffen. Im Prinzip ist das schon das Zeichen, dass dieser Arduino als Master fungiert.
Dann das übliche ... flashen und gut ist ...
Den Flash-Adapter auf den zweiten Arduino umstecken.
Jetzt allerdings des sketch "Datei->Beispiele->Wire->slave_receiver" laden.
In diesem sketch wird ebenfalls auf den I2C Bus zugegriffen ... allerdings jetzt mit der Adresse 4.
Das bedeutet, dass dieser Arduino als slave fungiert und die I2C-Adresse 4 hat.
Und weiter wie gehabt ... flashen.
Lasst jetzt mal den Flash-Adapter stecken und befeuert die beiden Arduinos über das Breadboard.
Wenn ihr jetzt den seriellen Monitor öffnet, sehr ihr, dass die empfangenen Zeichen ausgegeben werden.
Tja, das war's auch schon.
Jetzt könnt ihr einem dritten Arduino z.B. die Adresse 3 oder 5 oder ... geben und ihn ebenfalls an den I2C Bus hängen.
Theoretisch ist die Anzahl nur durch die Anzahl der möglichen I2C Adressen bestimmt.
Ein wenig kitzliger ist es, wenn ihr noch Sensoren oder andere I2C Bausteine am Bus habt ... deren Adressen dürft ihr für Eure Arduinos natürlich nicht verwenden.
So ... ich hoffe, das ist jetzt für den einen oder anderen von Euch hilfreich.
In den nächsten Tagen folgen noch ein paar andere Kurzanleitungen für den Arduino Pro mini, u.a. noch für das eine oder andere Display, eine serielle Verbindung zwischen Arduino und Raspberry Pi zum Datenaustausch sowie eine Anleitung zum Aufbau einer 2.4 GHz Funkverbindung.
Meine Idee ist, dass ihr dann hier zentral einen kleinen Pool an überprüften sketches habt, mit denen ihr schon eine ganze Menge, auch im Zusammenspiel mit den Raspberry Pi, anfangen könnt.
Viel Spass,
-ds-