Last Updated on 14. November 2021 by sfambach
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.
Zweck
- Herausfinden der Adresse eines Modules
- Als erster Kommunikationstest
Schaltung
Bibliotheken
Ich verwende die Wire Bibliothek, diese ist in Standard enthalten und muss nur per Include eingebunden werden.
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.
Fazit
Wenn man mal nicht weiss ob ein Modul funktioniert oder welche Adresse es hat, ist der Scanner sehr hilfreich.
Quellen
https://de.wikipedia.org/wiki/I%C2%B2C
https://www.mikrocontroller.net/topic/88806