4 typische Fehler beim I2C-Bus vermeiden

Titelbild: KI-generiert
Keine Verbindung zum I2C-Sensor? Mit diesen vier Schritten findest du den Fehler schnell. Welcher I2C-Sensor macht dir oft Probleme?
Schritt 1
Sensor wird nicht erkannt
Der I2C-Scanner findet keine Adresse oder der Bus blockiert. Beginne die Fehlersuche systematisch an den Leitungen.
Wire.begin()Stand: ESP32, Arduino Uno, Wire Library
Schritt 2
Pull-Up-Widerstände fehlen
I2C braucht Pull-Ups an SDA und SCL gegen VCC. Interne Pull-Ups genügen selten. Schalte je 4,7 kΩ nach VCC.
4.7 kΩ von SDA/SCL nach VCC
Stand: ESP32, Arduino Uno, Wire Library
Schritt 3
Logikpegel nicht mischen
Ein 5V-Arduino beschädigt 3,3V-Sensoren ohne Schutz. Nutze zwischen beiden Teilen einen bidirektionalen Level-Shifter.
Stand: ESP32, Arduino Uno, Wire Library
Schritt 4
7-Bit versus 8-Bit Adresse
Datenblätter nennen oft 8-Bit-Werte inklusive Lese-Bit. Die Arduino Wire Library benötigt die reine 7-Bit-Adresse.
Wire.beginTransmission(adresse)Stand: ESP32, Arduino Uno, Wire Library
Schritt 5
endTransmission auswerten
Erst Wire.endTransmission sendet die Pufferdaten. Der Rückgabewert 0 zeigt an, dass der Sensor geantwortet hat.
byte err = Wire.endTransmission()Stand: ESP32, Arduino Uno, Wire Library
Tipp
Checkliste zur Fehlersuche
Widerstände prüfen, Spannungspegel nachmessen und einen I2C-Scanner laufen lassen, um Adressen zu bestätigen.
Stand: ESP32, Arduino Uno, Wire Library · jeder Schritt selbst am Gerät nachvollzogen
Quellen
- Arduino Wire Library Referenz
- NXP UM10204 I2C-Bus-Spezifikation