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
- Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
- TCA9548A I2C multiplexormodul
- I2C -enheter (t.ex. sensorer eller kringutrustning)
- Breadboard och jumpertrådar
- 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
- Öppna Raspberry PI -konfigurationsverktyget:
sudo raspi-config
- Navigera till Gränssnittsalternativ> i2c och aktivera det.
- Starta om Raspberry Pi:
sudo reboot
Steg 3: Installera obligatoriska bibliotek
- 
Uppdatera din Raspberry Pis paketlista: sudo apt update && sudo apt upgrade -y
- 
Installera I2C -verktygen och Python -bibliotek: sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
- 
Kontrollera att TCA9548A upptäcks på i2C -bussen: sudo i2cdetect -y 1Multiplexeraren 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
- Undvika i2c adresskonflikter: Använd multiplexern för att isolera enheter med samma I2C -adress.
- Utvidga I2C -enheter: Anslut upp till 8 bussar, var och en som stödjer flera enheter.
- IoT -projekt: Använd TCA9548A i smarta hem- eller miljöövervakningssystem där flera sensorer krävs.
- Komplex robotik: Hantera flera sensorer eller ställdon i avancerade robotprojekt.
Felsökning
- 
Enheten inte upptäckt: - Kontrollera ledningarna och se till att SDA/SCL -stiften är korrekt anslutna.
- Bekräfta att TCA9548A drivs och dess adress (0x70Som standard) visas i I2C -skanningen.
 
- 
Felaktig kanaldata: - Se till att sensorn är ansluten till rätt kanal och lämpligt bibliotek används i ditt Python -skript.
 
- 
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!
 
            
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  