Raspberry Pi Pico: I2C verbinden und testen
I2C oder I²C (I-Quadrat-C) ist die Abkürzung für Inter-Integrated Circuit. Das ist ein synchroner serieller Zweidraht-Bus der Firma Philips Semiconductors. Der Zweidraht-Bus verwendet bidirektionale Daten- und Taktleitungen und wird typischerweise für die Kommunikation zwischen Komponenten auf der selben Platine oder zwischen Platinen benutzt.
Bei der Datenübertragung zwischen Komponenten muss oft mit parallelen Bussen oder Signalleitungen gearbeitet werden, was erheblichen Verkabelungsaufwand bedeutet. Auf einer Platine wird dadurch viel Platz verschwendet. Der I2C reduziert den Aufwand, die Fehlerhäufigkeit und den Platzbedarf auf ein Minimum.
Geräte mit dem I2C verbinden
Der Raspberry Pi Pico hat mehrere I2C-Busse, die statt der digitalen GPIOs konfiguriert werden können. Hierbei ist die Belegung der GPIOs zu beachten, da es auch noch Doppelbelegungen mit SPI und UART gibt.
Der I2C kennt zwei Leitungen. Eine für die Daten, SDA genannt. Die andere ist die Taktleitung, SCL genannt. Desweiteren benötigen die beteiligten Geräte eine Betriebsspannung und eine Verbindung zu Ground (GND).
I2C testen (scannen)
Der folgende Programmcode zum Testen bzw. Scannen des I2C ist sehr einfach. Zuerst werden die GPIO-Pins für I2C und der I2C initialisiert. Und dann wird der I2C-Scan gestartet und das Ergebnis auf dem Display ausgegeben.
# Bibliotheken laden from machine import Pin, I2C # Initialisierung I2C i2c = I2C(0, sda=Pin(20), scl=Pin(21)) # I2C-Bus-Scan ausgeben print(i2c.scan())
Das Ergebnis ist ein Array mit den Adressen (dezimale Schreibweise) der Geräte, die mit diesem I2C-Bus verbunden sind.
I2C-Geräte mit Adresse anzeigen
Der folgende Programmcode zum Testen bzw. Scannen des I2C-Busses ein wenig komplexer. Allerdings liefert er zusätzliche Informationen.
Zuerst werden die GPIO-Pins für I2C und der I2C initialisiert. Und dann wird der I2C-Scan gestartet und das Ergebnis auf dem Display ausgegeben.
# Bibliotheken laden from machine import Pin, I2C # Initialisierung I2C-Pins i2c_sda = Pin(20) i2c_scl = Pin(21) # Initialisierung I2C i2c = I2C(0,sda=i2c_sda,scl=i2c_scl,freq=100000) # I2C-Bus-Scan print('Scan I2C Bus...') devices = i2c.scan() # Scanergebnis ausgeben if len(devices) == 0: print('Kein I2C-Gerät gefunden!') else: print('I2C-Geräte gefunden:', len(devices)) for device in devices: print('Dezimale Adresse:', device, '| Hexadezimale Adresse:', hex(device))
Das eigentliche Scan-Ergebnis ist ein Array mit den Adressen der Geräte, die mit diesem I2C-Bus verbunden sind. Die dezimale Schreibweise der Adresse ist bei der Initialisierung der I2C-Geräte selten hilfreich. Deshalb wird zusätzlich noch in die hexadezimale Schreibweise umgerechnet.
Hinweis: Die hexadezimale Adresse wird benötigt, wenn man das Gerät am I2C initialisieren will.
Anwendungen mit dem I2C
Was kann man mit dem I2C alles machen? Grundsätzlich geht es immer darum, externe Komponenten mit dem Raspberry Pi Pico zu verbinden.
- LCD-1602-Display mit I2C-Modul programmieren
- Digitales Thermometer mit Display
- Display-Steuerung mit Anwesenheitserkennung
Weitere verwandte Themen:
- Raspberry Pi Pico
- Raspberry Pi Pico: Erste Schritte
- Raspberry Pi Pico: Anschlüsse und Schnittstellen
- Raspberry Pi Pico: Grundlagen zu ADC
- Raspberry Pi Pico: GPIO-Belegung (Pinout)
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen
Online-Workshop
Programmieren mit dem Raspberry Pi Pico
Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.
- Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
- Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
- Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen
Elektronik-Set Pico Edition
Hardware-nahes Programmieren mit dem Raspberry Pi Pico
Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen