Met behulp van de TCA9548A met de Raspberry Pi

Using the TCA9548A with the Raspberry Pi

De TCA9548A is een I2C -multiplexer waarmee u meerdere apparaten kunt aansluiten met hetzelfde I2C -adres met een enkele Raspberry Pi. Het werkt door elk I2C -apparaat in zijn eigen bus te isoleren, waardoor de Raspberry Pi één voor één met hen kan communiceren. Dit is vooral handig in complexe projecten waar adresconflicten kunnen optreden.


Wat u nodig hebt

  1. Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
  2. TCA9548A I2C Multiplexer -module
  3. I2C -apparaten (bijv. Sensoren of randapparatuur)
  4. Breadboard en jumper draden
  5. Python geïnstalleerd Op de Raspberry Pi

Stap 1: De TCA9548A bedraden naar de Raspberry Pi

De TCA9548A maakt verbinding met de Raspberry Pi met behulp van het I2C -protocol.

Verbindingen

TCA9548A PIN Raspberry Pi Pin
Vin 3.3V (pin 1)
GND Grond (pin 6)
SDA SDA (Pin 3, GPIO2)
SCL SCL (Pin 5, GPIO3)

Verbind uw I2C -apparaten met de genummerde I2C -bussen van de TCA9548A (bijv. SD0/SCL0, SD1/SCL1).


Stap 2: Schakel de I2C -interface in

  1. Open de Raspberry Pi -configuratie -tool:
    sudo raspi-config
    
  2. Navigeren naar Interface -opties> I2C en schakel het in.
  3. Start de Raspberry Pi opnieuw op:
    sudo reboot
    

Stap 3: Installeer vereiste bibliotheken

  1. Update de pakketlijst van uw Raspberry Pi:

    sudo apt update && sudo apt upgrade -y
    
  2. Installeer de I2C -tools en Python -bibliotheken:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. Controleer of de TCA9548A wordt gedetecteerd op de I2C -bus:

    sudo i2cdetect -y 1
    

    De multiplexer verschijnt meestal op het adres 0x70.


Stap 4: Python -code om de TCA9548A te gebruiken

Hier is een Python -script om een ​​specifiek I2C -kanaal op de TCA9548A mogelijk te maken en gegevens van een verbonden sensor te lezen.

Python Code Voorbeeld

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} %")

Uitleg:

  • tca[0] Verwijst naar het eerste I2C -kanaal op de TCA9548A.
  • Vervang de sensorbibliotheek (bijv. adafruit_bme280) met de bibliotheek voor uw specifieke sensor of apparaat.

Stap 5: Schakelen tussen kanalen

Met de TCA9548A kunt u schakelen tussen meerdere I2C -apparaten die zijn aangesloten op verschillende kanalen. Hier is een voorbeeld van het itereren via kanalen om van meerdere apparaten te lezen:

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()

U kunt deze aanpak gebruiken om meerdere sensoren of randapparatuur te beheren die zijn aangesloten op de multiplexer.


Toepassingen van de TCA9548A

  1. I2C -adresconflicten vermijden: Gebruik de multiplexer om apparaten te isoleren met hetzelfde I2C -adres.
  2. I2C -apparaten uitbreiden: Verbind tot 8 bussen, die elk meerdere apparaten ondersteunen.
  3. IoT -projecten: Gebruik de TCA9548A in smart home of milieubewakingssystemen waar meerdere sensoren vereist zijn.
  4. Complexe robotica: Beheer meerdere sensoren of actuatoren in geavanceerde robotica -projecten.

Problemen oplossen

  1. Apparaat niet gedetecteerd:

    • Controleer de bedrading en zorg ervoor dat de SDA/SCL -pinnen correct zijn aangesloten.
    • Bevestig dat de TCA9548A wordt aangedreven en zijn adres (0x70 Standaard) verschijnt in de I2C -scan.
  2. Onjuiste kanaalgegevens:

    • Zorg ervoor dat de sensor is aangesloten op het juiste kanaal en de juiste bibliotheek wordt gebruikt in uw Python -script.
  3. I2C -communicatiefouten:

    • Controleer op losse verbindingen of tegenstrijdige I2C -adressen op hetzelfde kanaal.

Conclusie

De TCA9548A I2C -multiplexer is een veelzijdig hulpmiddel voor het uitbreiden van de I2C -mogelijkheden van uw Raspberry PI en het oplossen van adresconflicten. Door deze handleiding te volgen, kunt u meerdere I2C -apparaten efficiënt beheren in complexe projecten zoals weermonitoringsystemen, slimme huizen en robotica. Experimenteer met verschillende apparaten en kanalen om zijn mogelijkheden volledig te verkennen!

Laat een reactie achter

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.