将TCA9548A与Raspberry Pi一起使用

Using the TCA9548A with the Raspberry Pi

TCA9548A是I2C多路复用器,可让您将具有相同I2C地址的多个设备连接到单个Raspberry Pi。它可以通过在自己的总线上隔离每个I2C设备,从而使Raspberry Pi一次与它们通信。这在可能发生冲突的复杂项目中特别有用。


你需要什么

  1. 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
  2. TCA9548A I2C多路复用器模块
  3. I2C设备 (例如,传感器或外围设备)
  4. 面包板和跳线电线
  5. 安装了Python 在覆盆子pi上

步骤1:将TCA9548A接线到Raspberry Pi

TCA9548A使用I2C协议连接到Raspberry Pi。

连接

TCA9548A PIN 覆盆子Pi Pin
vin 3.3V(引脚1)
gnd 地面(引脚6)
SDA SDA(引脚3,GPIO2)
SCL SCL(引脚5,GPIO3)

将您的I2C设备连接到TCA9548A编号的I2C总线(例如, SD0/SCL0,SD1/SCL1).


步骤2:启用I2C接口

  1. 打开Raspberry Pi配置工具:
    sudo raspi-config
    
  2. 导航到 接口选项> I2C 并启用它。
  3. 重新启动覆盆子Pi:
    sudo reboot
    

步骤3:安装所需库

  1. 更新您的Raspberry Pi的包装列表:

    sudo apt update && sudo apt upgrade -y
    
  2. 安装I2C工具和Python库:

    sudo apt install -y i2c-tools python3-pip
    pip3 install adafruit-circuitpython-tca9548a
    
  3. 确认在I2C总线上检测到TCA9548A:

    sudo i2cdetect -y 1
    

    多路复用器通常会出现在地址 0x70.


步骤4:使用TCA9548A的Python代码

这是一个Python脚本,可以在TCA9548A上启用特定的I2C频道,并读取连接传感器的数据。

Python代码示例

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

解释:

  • tca[0] 指TCA9548A上的第一个I2C频道。
  • 更换传感器库(例如, adafruit_bme280)带有特定传感器或设备的库。

步骤5:在频道之间切换

TCA9548A允许您在连接到不同通道的多个I2C设备之间切换。这是通过频道迭代以从多个设备读取的示例:

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

您可以使用此方法来管理连接到多路复用器的多个传感器或外围设备。


TCA9548A的应用

  1. 避免I2C解决冲突:使用多路复用器将具有相同I2C地址的设备隔离。
  2. 扩展I2C设备:连接多达8个总线,每个总线都支持多个设备。
  3. 物联网项目:在需要多个传感器的智能家庭或环境监控系统中使用TCA9548A。
  4. 复杂的机器人技术:管理高级机器人项目中的多个传感器或执行器。

故障排除

  1. 未检测到设备:

    • 验证接线并确保正确连接SDA/SCL引脚。
    • 确认TCA9548A已供电及其地址(0x70 默认情况下)出现在I2C扫描中。
  2. 错误的频道数据:

    • 确保传感器连接到正确的频道,并在Python脚本中使用适当的库。
  3. I2C通信错误:

    • 在同一频道上检查是否有松散的连接或冲突的I2C地址。

结论

TCA9548A I2C多路复用器是扩展Raspberry Pi的I2C功能和解决地址冲突的多功能工具。通过遵循本指南,您可以在复杂的项目中有效管理多个I2​​C设备,例如天气监控系统,智能家居和机器人技术。尝试不同的设备和频道,以充分探索其功能!

发表评论

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.