Verwenden der TCA9548A mit dem Raspberry Pi

Using the TCA9548A with the Raspberry Pi

Der TCA9548A ist ein I2C -Multiplexer, mit dem Sie mehrere Geräte mit derselben I2C -Adresse an einen einzelnen Raspberry Pi anschließen können. Es funktioniert, indem es jedes I2C -Gerät in seinem eigenen Bus isoliert und es dem Himbeer -Pi ermöglicht, einzeln mit ihnen zu kommunizieren. Dies ist insbesondere in komplexen Projekten nützlich, bei denen Adresskonflikte auftreten können.


Was Sie brauchen werden

  1. Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
  2. TCA9548A I2C Multiplexer -Modul
  3. I2C -Geräte (z. B. Sensoren oder Peripheriegeräte)
  4. Breadboard- und Jumper -Drähte
  5. Python installiert Auf dem Raspberry Pi

Schritt 1: Verkabelung des TCA9548A mit dem Raspberry Pi

Der TCA9548A verbindet sich mit dem I2C -Protokoll mit dem Raspberry PI.

Verbindungen

TCA9548a Pin Raspberry Pi Pin
Vin 3,3 V (Pin 1)
GND Masse (Pin 6)
SDA SDA (Pin 3, gpio2)
Scl SCL (Pin 5, gpio3)

Schließen Sie Ihre I2C -Geräte an die nummerierten I2C -Busse des TCA9548A an (z. B., SD0/SCL0, SD1/SCL1).


Schritt 2: Aktivieren Sie die I2C -Schnittstelle

  1. Öffnen Sie das Raspberry PI -Konfigurationstool:
    sudo raspi-config
    
  2. Navigieren zu Schnittstellenoptionen> i2c und es aktivieren.
  3. Starten Sie den Raspberry Pi neu:
    sudo reboot
    

Schritt 3: Installieren Sie die erforderlichen Bibliotheken

  1. Aktualisieren Sie die Paketliste Ihres Raspberry Pi:

    sudo apt update && sudo apt upgrade -y
    
  2. Installieren Sie die I2C -Tools und Python -Bibliotheken:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. Stellen Sie sicher, dass der TCA9548A im I2C -Bus erkannt wird:

    sudo i2cdetect -y 1
    

    Der Multiplexer wird normalerweise unter der Adresse angezeigt 0x70.


Schritt 4: Python -Code zur Verwendung des TCA9548A

Hier ist ein Python -Skript, mit dem ein bestimmtes i2C -Kanal auf dem TCA9548A und Daten eines vernetzten Sensors gelesen werden kann.

Beispiel für Python -Code

import board
import busio
from adafruit_tca9548a import TCA9548A

# Initialize I2C and TCA9548A multiplexer
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)

# Access a specific I2C channel (e.g., channel 0)
channel_0 = tca[0]

# Example: Interfacing with an I2C device on channel 0
import adafruit_bme280  # Replace with your sensor library
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)

# Read data from the sensor
print(f"Temperature: {sensor.temperature:.2f} °C")
print(f"Humidity: {sensor.humidity:.2f} %")

Erläuterung:

  • tca[0] Bezieht sich auf den ersten I2C -Kanal des TCA9548A.
  • Ersetzen Sie die Sensorbibliothek (z. B., adafruit_bme280) mit der Bibliothek für Ihren spezifischen Sensor oder Gerät.

Schritt 5: Wechsel zwischen Kanälen

Mit dem TCA9548A können Sie zwischen mehreren I2C -Geräten wechseln, die mit verschiedenen Kanälen verbunden sind. Hier ist ein Beispiel für das Iterieren über Kanäle, um aus mehreren Geräten aus zu lesen:

for i in range(8):  # TCA9548A has 8 channels (0-7)
    if tca[i].try_lock():
        print(f"Accessing device on channel {i}")
        tca[i].unlock()

Sie können diesen Ansatz verwenden, um mehrere Sensoren oder Peripheriegeräte zu verwalten, die mit dem Multiplexer verbunden sind.


Anwendungen der TCA9548A

  1. Vermeiden Sie I2C -Adresskonflikte: Verwenden Sie den Multiplexer, um Geräte mit derselben I2C -Adresse zu isolieren.
  2. Erweiterung von I2C -Geräten: Schließen Sie bis zu 8 Busse an, die jeweils mehrere Geräte unterstützen.
  3. IoT -Projekte: Verwenden Sie die TCA9548A in Smart Home- oder Umweltüberwachungssystemen, in denen mehrere Sensoren erforderlich sind.
  4. Komplexe Robotik: Verwalten Sie mehrere Sensoren oder Aktuatoren in fortschrittlichen Robotikprojekten.

Fehlerbehebung

  1. Gerät nicht erkannt:

    • Überprüfen Sie die Verkabelung und stellen Sie sicher, dass die SDA/SCL -Stifte ordnungsgemäß verbunden sind.
    • Bestätigen Sie, dass der TCA9548A angetrieben wird und seine Adresse (Adresse (0x70 standardmäßig) wird im i2c -Scan angezeigt.
  2. Falsche Kanaldaten:

    • Stellen Sie sicher, dass der Sensor mit dem richtigen Kanal verbunden ist und die entsprechende Bibliothek in Ihrem Python -Skript verwendet wird.
  3. I2C -Kommunikationsfehler:

    • Überprüfen Sie, ob Sie lose Verbindungen oder widersprüchliche I2C -Adressen auf demselben Kanal haben.

Abschluss

Der TCA9548A I2C Multiplexer ist ein vielseitiges Tool zur Erweiterung der I2C -Funktionen Ihres Raspberry Pi und der Lösung von Adresskonflikten. Wenn Sie diesem Leitfaden folgen, können Sie mehrere I2C -Geräte in komplexen Projekten wie Wetterüberwachungssystemen, Smart Homes und Robotics effizient verwalten. Experimentieren Sie mit verschiedenen Geräten und Kanälen, um seine Funktionen vollständig zu erforschen!

Hinterlasse einen Kommentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.