19.01.2026

Was ist das I2C-Kommunikationsprotokoll?

Qwiic
Inkplate
Arduino
Raspberry Pi
What is I2C communication protocol

Table of contents

Einführung Was ist I2C? So funktioniert der I2C-Bus Adress- und Geräteidentifizierung Start- und Stoppbedingungen Bits bestätigen Warum I2C so beliebt ist Gängige I2C-Busgeschwindigkeiten Pull-up-Widerstände in I2C-Schaltungen Verwendung von I2C auf Arduino und ESP32 Beliebte I2C-Komponenten in Maker-Projekten Fehlerbehebung bei I2C-Problemen
Table of contents
Einführung Was ist I2C? So funktioniert der I2C-Bus Adress- und Geräteidentifizierung Start- und Stoppbedingungen Bits bestätigen Warum I2C so beliebt ist Gängige I2C-Busgeschwindigkeiten Pull-up-Widerstände in I2C-Schaltungen Verwendung von I2C auf Arduino und ESP32 Beliebte I2C-Komponenten in Maker-Projekten Fehlerbehebung bei I2C-Problemen

Einführung

I2C ist eines der am weitesten verbreiteten Kommunikationsprotokolle in der modernen eingebetteten Elektronik. Es findet sich in einer Vielzahl von Anwendungen, von kleinen Sensor-Breakout-Boards über Endgeräte bis hin zu industriellen Systemen und vielem mehr. Da es nur zwei Leitungen benötigt und mehrere Geräte am selben Bus unterstützt, hat sich I2C zur Standardwahl für Mikrocontroller wie Arduino, ESP32, STM32, Raspberry Pi und viele andere entwickelt.

Egal ob Sie ein Smart-Home-Gerät, eine Umweltüberwachungsstation oder ein Robotikprojekt entwickeln – das Verständnis der Funktionsweise von I2C wird Ihnen helfen, sauberere und zuverlässigere Schaltungen zu entwerfen.

Was ist I2C?

I2C steht für Inter Integrated Circuit . Es handelt sich um ein synchrones serielles Kommunikationsprotokoll, das es digitalen Geräten ermöglicht, Daten über zwei gemeinsame Leitungen auszutauschen:

  • SDA: Serielle Daten
  • SCL: Serielle Uhr

Alle Geräte am I2C-Bus sind parallel geschaltet und teilen sich daher diese beiden Leitungen. Jedes Gerät besitzt eine eigene Adresse, wodurch ein einzelner Mikrocontroller gleichzeitig mit vielen Sensoren und Modulen kommunizieren kann. Dies macht I2C ideal für Projekte mit geringem Stromverbrauch, bei denen die Datenübertragungsgeschwindigkeit nicht so wichtig ist, wie beispielsweise Sensor-Hubs, kompakte Platinen, Wearables und vieles mehr.

So funktioniert der I2C-Bus

Der I2C-Bus unterstützt mehrere Master und Slaves, obwohl in den meisten Projekten nur ein Master verwendet wird. Der Master generiert das Taktsignal und initiiert die Kommunikation. Slaves antworten nur, wenn sie angesprochen werden.

Adress- und Geräteidentifizierung

Die meisten I2C-Geräte verwenden eine 7-Bit-Adresse. Einige fortschrittlichere Komponenten nutzen 10-Bit-Adressierung, diese sind jedoch weniger verbreitet. Die Adresse identifiziert das Gerät auf dem gemeinsamen Bus. Wenn der Master Daten lesen oder schreiben möchte, sendet er die Adresse zusammen mit einem Bit, das angibt, ob es sich um einen Lese- oder Schreibvorgang handelt.

Wichtig: Wenn zwei angeschlossene Geräte die gleiche Adresse verwenden, können sie nicht zuverlässig auf demselben Bus funktionieren , es sei denn, eine der Adressen kann mithilfe von Jumpern oder Konfigurationspins geändert werden.

Start- und Stoppbedingungen

Jeder Kommunikationsrahmen beginnt mit einer Startbedingung. Dieses Ereignis signalisiert allen Geräten im Bus, dass eine neue Transaktion beginnt. Nachdem die Adress- und Datenbytes ausgetauscht wurden, sendet der Master eine Stoppbedingung, um den Bus freizugeben.

Bits bestätigen

Nach jedem übertragenen Byte sendet das empfangende Gerät ein Bestätigungsbit. Dadurch erfährt der Master, ob die Daten korrekt empfangen wurden. Wird kein Bestätigungsbit zurückgesendet, kann der Master die Kommunikation wiederholen oder abbrechen.

Es gibt mehrere Gründe, warum Hersteller auf die Verwendung von I2C setzen:

  • Die Kommunikation erfolgt unabhängig von der Anzahl der Geräte über nur zwei Drähte.
  • Geringer Stromverbrauch
  • Universell unterstützt von allen Mikrocontroller-Plattformen
  • Ideal für Sensoren, Konfigurationsregister und Displaysteuerung


Gängige I2C-Busgeschwindigkeiten

I2C unterstützt verschiedene Kommunikationsmodi:

  • Standardmodus, Busgeschwindigkeit bis zu 100 kHz
  • Schnellmodus, Busgeschwindigkeit bis zu 400 kHz
  • Fast-Mode Plus, Busgeschwindigkeit bis zu 1 MHz
  • Hochgeschwindigkeitsmodus, Busgeschwindigkeit bis zu 3,4 MHz

Im Bereich der Hobbyelektronik sind 100 kHz und 400 kHz am gebräuchlichsten. Viele Arduino-Boards arbeiten standardmäßig mit 100 kHz, während ESP32 und modernere Mikrocontroller je nach angeschlossener Hardware mit 400 kHz oder höher betrieben werden können.

Pull-up-Widerstände in I2C-Schaltungen

Die SDA- und SCL-Leitungen benötigen Pull-up-Widerstände. Ohne diese kann der Bus nicht korrekt funktionieren. Sendet ein Gerät ein Low-Signal, zieht es die Leitung aktiv auf Low-Pegel. Soll die Leitung auf High-Pegel wechseln, sorgt der Pull-up-Widerstand dafür, dass sie wieder auf High-Pegel zurückkehrt.

Typische Widerstandswerte liegen zwischen 2,2 kΩ und 10 kΩ. Viele Sensor-Breakout-Boards verfügen über Pull-up-Widerstände auf der Leiterplatte. Werden mehrere Module angeschlossen, kann der Gesamtwiderstand zu niedrig werden, was zu Kommunikationsfehlern führt. In solchen Fällen sollten überflüssige Pull-up-Widerstände entfernt oder deaktiviert werden.

Verwendung von I2C auf Arduino und ESP32

Arduino-Boards enthalten die Wire-Bibliothek, die die Kommunikation mit I2C-Geräten vereinfacht. Die Bibliothek bietet Funktionen zum Scannen des Busses, zum Auslesen von Werten und zum Senden von Konfigurationsbefehlen. Die meisten Arduino-Boards verwenden dedizierte Pins für SDA und SCL.

ESP32-Boards bieten zusätzliche Flexibilität, da sie zwei unabhängige I2C-Busse unterstützen und die Neubelegung der Pins ermöglichen. Dies vereinfacht die Entwicklung komplexer Systeme mit vielen Peripheriegeräten.

Umweltsensor BME680 [Link zum Produkt]

LSM6DSO Beschleunigungs- und Gyroskopsensor [Link zum Produkt]

PCF85063A Echtzeituhr [Link zum Produkt]

ADS1115 16-Bit 4-Kanal-ADC [Link zum Produkt]

SSD1306 OLED-Display [Link zum Produkt]

Fehlerbehebung bei I2C-Problemen

Auch wenn I2C als einfach gilt, können einige Probleme häufiger auftreten.

Falsche Adressen

Verschiedene Hersteller verwenden mitunter unterschiedliche Standardadressen für denselben Sensortyp. Reagiert ein Gerät nicht, ermitteln Sie mithilfe eines I2C-Scanners dessen tatsächliche Adresse.

Fehlende oder übermäßige Klimmzüge

Wenn der Bus sich unvorhersehbar verhält oder Geräte Befehle nicht bestätigen, überprüfen Sie die Pull-up-Widerstände. Mehrere Module mit integrierten Widerständen können den Gesamtwiderstand zu stark verringern.

Kabellänge

I2C ist für kurze Distanzen ausgelegt. Lange Kabel erhöhen die Kapazität, was das Signal verschlechtert. Kurze Kabel oder eine reduzierte Übertragungsgeschwindigkeit können dieses Problem beheben.

Adresskonflikte

Wenn zwei Module dieselbe Adresse verwenden und diese nicht geändert werden kann, können die Geräte nicht am selben Bus betrieben werden. Viele der verlöteten Breakout-Boards bieten Lötbrücken zur Adressauswahl.

In diesem Artikel erwähnte Produkte

Verwandte Artikel

Using Qwiic devices with Raspberry Pi
Verwendung von QWIC-Geräten mit Raspberry Pi

Raspberry-Pi-I2C-Tutorial mit dem Qwiic-System. Enthält benötigte Hardware, I2C aktivieren, BME680 und SSD1306 OLED anschließen, Tools/Bibliotheken installieren, i2cdetect prüfen und ein Python-Beispiel, das Temperatur liest und am OLED anzeigt.

 

Mehr lesen
Portable GPS tracker: GNSS + OLED + Battery
Tragbarer GPS-Tracker: GNSS + OLED + Akku

Der Artikel erklärt, wie das GNSS-GPS-Modul L86-M33 funktioniert und wie man es mit einem ESP32 verwendet. Er zeigt die grundlegende Initialisierung mit einer Arduino-Bibliothek, das Auslesen und Dekodieren von GNSS-Daten über UART/I2C sowie ein tragbares GPS-Tracker-Projekt mit OLED-Anzeige für Position, Zeit, Geschwindigkeit und Richtung.

Mehr lesen
What is the UART communication protocol?
Was ist das UART-Kommunikationsprotokoll?

Dieser Artikel erklärt, was UART ist, wie es funktioniert, was Baudrate und Frames sind, wie Start-, Daten-, Paritäts- und Stopbits arbeiten und wo UART eingesetzt wird.

Mehr lesen
What is SPI?
Was ist SPI?

Der Artikel erklärt, was das SPI-Kommunikationsprotokoll ist und wie es funktioniert. Er beschreibt die Signale MOSI, MISO, SCLK und CS, das Senden und Empfangen von Daten, den Betrieb mit mehreren Geräten (Normal- und Daisy-Chain-Modus) sowie die Vor- und Nachteile und typische Anwendungen.

 

Mehr lesen