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
    
    Bash
  2. Navigeren naar Interface -opties> I2C en schakel het in.
  3. Start de Raspberry Pi opnieuw op:
    sudo reboot
    
    Bash

Stap 3: Installeer vereiste bibliotheken

  1. Update de pakketlijst van uw Raspberry Pi:

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

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

    sudo i2cdetect -y 1
    
    Bash

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

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

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!

3 minuten lezen

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.