Raspi: Wie Sie mit Python I2C-Komponenten ansteuern

Am Beispiel eines Projekts erklären wir, wie Sie verschiedene Komponente über einen I2C-Bus kommunizieren lassen, ohne problematische Bibliotheken einzusetzen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
dddd, Moritz Reichartz

dddd

(Bild: Moritz Reichartz)

Lesezeit: 16 Min.
Inhaltsverzeichnis

Die zahlreichen Python-Bibliotheken für die verschiedensten Experimentierplatinen und Elektronikkomponenten machen es leicht, auf dem Raspberry Pi in die Hardware-Programmierung einzusteigen. Damit genügen wenige Zeilen Code, um den Servo eines Roboterarms zu bewegen oder ein Display anzusteuern. Doch die Bibliotheken unterschiedlicher Anbieter oder Entwickler sind meist nicht aufeinander abgestimmt und kommen sich ins Gehege, wenn man sie in einem Python-Projekt gemeinsam einsetzen möchte.

Besonders häufig kommen solche Probleme bei Komponenten mit I2C-Bus (Inter-Integrated Circuit) zum Tragen. Die Auswahl an Sensoren, Treibern und Displays hierfür ist besonders groß und zumeist werden die verschiedenen Module gleichzeitig betrieben.

Der I2C-Bus wurde für die Kommunikation verschiedener Elektronikkomponenten innerhalb eines Geräts entwickelt und kommt mit nur zwei Leitungen aus: der Datenleitung, meist SDA genannt, und der Taktleitung SCL oder SCK. Der ebenfalls notwendige Masseanschluss wird üblicherweise nicht gezählt, weil alle Chips ohnehin eine Masseleitung besitzen. Unterm Strich benötigt man also trotzdem mindestens drei Kabel, um eine Komponente per I2C-Bus anzuschließen.