Der I2c oder auch 2 Wire Bus genannt, arbeitet mit zwei Kabeln und theoretisch mit einer Geschwindigkeit von bis zu 5 Mbit/s. Für den Hobbybedarf mit Freiluftverkabelung sind es wahrscheinlich eher weniger.
Der Uno hat den Wire-Anschluss am analogen Ausgang 4 und 5. Zum Testen habe ich ein GY-68 Barometer angeschlossen welches auf Port 0x77 des I2C Busses arbeitet.
Schaltung
Programm
Das folgende Testprogramm habe ich mir aus einigen Beispielen zusammen „gesucht“. Es dient dazu, einfach mal zu schauen ob die aufgebaute Schaltung auch richtig verdrahtet ist.
Das Porgram geht alle Adressen des I2C Busses durch und klopft mal beim Empfänger an. Antwortet dieser, wird der Port und am Schluss die Anzahl der gefundenen Teilnehmer angezeigt.
Quellocode
Ausgabe
Probleme
Das Wire Modul antwortet nicht
Einfach mal SDA und SDC vertauschen.
Sollte das Problem immer noch bestehen, mal veruschen Pullup Widerstände in die Schaltung einzubauen. Der Uno hat allerdings schon Pullups, sollte also eigentlich nicht nötig sein.
Quellen
https://de.wikipedia.org/wiki/I%C2%B2C
https://www.mikrocontroller.net/topic/88806
https://playground.arduino.cc/Main/I2cScanner
https://gist.github.com/tfeldmann/5411375