Använda TCA9548A med Raspberry Pi

Using the TCA9548A with the Raspberry Pi

TCA9548A är en I2C -multiplexer som låter dig ansluta flera enheter med samma I2C -adress till en enda Raspberry Pi. Det fungerar genom att isolera varje I2C -enhet på sin egen buss, vilket gör att Raspberry Pi kan kommunicera med dem en åt gången. Detta är särskilt användbart i komplexa projekt där adresskonflikter kan uppstå.


Vad du behöver

  1. Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
  2. TCA9548A I2C multiplexormodul
  3. I2C -enheter (t.ex. sensorer eller kringutrustning)
  4. Breadboard och jumpertrådar
  5. Python installerad på Raspberry Pi

Steg 1: Koppling av TCA9548A till Raspberry Pi

TCA9548A ansluter till Raspberry PI med I2C -protokollet.

Anslutningar

TCA9548A -stift Hallon pi
Vin 3.3V (stift 1)
Gard Mark (stift 6)
SDA SDA (stift 3, GPIO2)
SCL SCL (stift 5, GPIO3)

Anslut dina I2C -enheter till TCA9548A: s numrerade I2C -bussar (t.ex. SD0/SCL0, SD1/SCL1).


Steg 2: Aktivera I2C -gränssnittet

  1. Öppna Raspberry PI -konfigurationsverktyget:
    sudo raspi-config
    
  2. Navigera till Gränssnittsalternativ> i2c och aktivera det.
  3. Starta om Raspberry Pi:
    sudo reboot
    

Steg 3: Installera obligatoriska bibliotek

  1. Uppdatera din Raspberry Pis paketlista:

    sudo apt update && sudo apt upgrade -y
    
  2. Installera I2C -verktygen och Python -bibliotek:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. Kontrollera att TCA9548A upptäcks på i2C -bussen:

    sudo i2cdetect -y 1
    

    Multiplexeraren kommer vanligtvis att dyka upp på adressen 0x70.


Steg 4: Python -kod för att använda TCA9548A

Här är ett Python -skript för att aktivera en specifik I2C -kanal på TCA9548A och läsa data från en ansluten sensor.

Python -kodexempel

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

Förklaring:

  • tca[0] Avser den första I2C -kanalen på TCA9548A.
  • Byt ut sensorbiblioteket (t.ex. adafruit_bme280) med biblioteket för din specifika sensor eller enhet.

Steg 5: Växling mellan kanaler

TCA9548A låter dig växla mellan flera I2C -enheter anslutna till olika kanaler. Här är ett exempel på att iterera via kanaler att läsa från flera enheter:

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

Du kan använda den här metoden för att hantera flera sensorer eller kringutrustning anslutna till multiplexern.


Applikationer av TCA9548A

  1. Undvika i2c adresskonflikter: Använd multiplexern för att isolera enheter med samma I2C -adress.
  2. Utvidga I2C -enheter: Anslut upp till 8 bussar, var och en som stödjer flera enheter.
  3. IoT -projekt: Använd TCA9548A i smarta hem- eller miljöövervakningssystem där flera sensorer krävs.
  4. Komplex robotik: Hantera flera sensorer eller ställdon i avancerade robotprojekt.

Felsökning

  1. Enheten inte upptäckt:

    • Kontrollera ledningarna och se till att SDA/SCL -stiften är korrekt anslutna.
    • Bekräfta att TCA9548A drivs och dess adress (0x70 Som standard) visas i I2C -skanningen.
  2. Felaktig kanaldata:

    • Se till att sensorn är ansluten till rätt kanal och lämpligt bibliotek används i ditt Python -skript.
  3. I2C -kommunikationsfel:

    • Kontrollera om de är lösa anslutningar eller motstridiga I2C -adresser på samma kanal.

Slutsats

TCA9548A I2C multiplexer är ett mångsidigt verktyg för att utöka din Raspberry PI: s I2C -kapacitet och lösa adresskonflikter. Genom att följa den här guiden kan du effektivt hantera flera I2C -enheter i komplexa projekt som väderövervakningssystem, smarta hem och robotik. Experimentera med olika enheter och kanaler för att fullt ut utforska dess kapacitet!

Lämna en 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.