O TCA9548A é um multiplexador I2C que permite conectar vários dispositivos com o mesmo endereço I2C a um único Raspberry Pi. Ele funciona isolando cada dispositivo I2C em seu próprio barramento, permitindo que o Raspberry Pi se comunique com eles um de cada vez. Isso é especialmente útil em projetos complexos, onde podem ocorrer conflitos de endereço.
O que você precisará
- Raspberry Pi (Qualquer modelo com suporte GPIO, por exemplo, PI 3, PI 4)
- Módulo multiplexador TCA9548A I2C
- I2C DISPOSITIVOS (por exemplo, sensores ou periféricos)
- Fios de pão e jumper
- Python instalado No Raspberry Pi
Etapa 1: Fiação do TCA9548A para o Raspberry Pi
O TCA9548A se conecta ao Raspberry Pi usando o protocolo I2C.
Conexões
Pino TCA9548A | Pino de framboesa pi |
---|---|
Vin | 3.3V (pino 1) |
Gnd | Terra (pino 6) |
SDA | SDA (pino 3, gpio2) |
SCL | SCL (pino 5, gpio3) |
Conecte seus dispositivos I2C aos ônibus i2c numerados do TCA9548A (por exemplo, SD0/SCL0, SD1/SCL1).
Etapa 2: Ative a interface I2C
- Abra a ferramenta de configuração do Raspberry Pi:
sudo raspi-config
- Navegar para Opções de interface> i2c e ativá -lo.
- Reinicie o Raspberry Pi:
sudo reboot
Etapa 3: Instale as bibliotecas necessárias
-
Atualize a lista de pacotes do Raspberry Pi:
sudo apt update && sudo apt upgrade -y
-
Instale as ferramentas i2c e as bibliotecas Python:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a
-
Verifique se o TCA9548A é detectado no barramento i2C:
sudo i2cdetect -y 1
O multiplexador normalmente aparece no endereço
0x70
.
Etapa 4: Código Python para usar o TCA9548A
Aqui está um script python para ativar um canal I2C específico no TCA9548A e ler dados de um sensor conectado.
Exemplo de código 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} %")
Explicação:
-
tca[0]
refere -se ao primeiro canal I2C no TCA9548A. - Substitua a biblioteca do sensor (por exemplo,
adafruit_bme280
) com a biblioteca para seu sensor ou dispositivo específico.
Etapa 5: alternando entre canais
O TCA9548A permite alternar entre vários dispositivos I2C conectados a diferentes canais. Aqui está um exemplo de iteração através de canais para ler de vários dispositivos:
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()
Você pode usar essa abordagem para gerenciar vários sensores ou periféricos conectados ao multiplexador.
Aplicações do TCA9548a
- Evitando os conflitos do I2C abordar: Use o multiplexador para isolar dispositivos com o mesmo endereço I2C.
- Expandindo os dispositivos I2C: Conecte -se até 8 barramentos, cada um com suporte a vários dispositivos.
- Projetos de IoT: Use o TCA9548A em sistemas de monitoramento doméstico ou ambiental inteligentes, onde vários sensores são necessários.
- Robótica complexa: Gerencie vários sensores ou atuadores em projetos de robótica avançada.
Solução de problemas
-
Dispositivo não detectado:
- Verifique a fiação e verifique se os pinos SDA/SCL estão conectados corretamente.
- Confirme que o TCA9548A é alimentado e seu endereço (
0x70
por padrão) aparece na varredura i2C.
-
Dados incorretos do canal:
- Verifique se o sensor está conectado ao canal correto e a biblioteca apropriada é usada no seu script python.
-
Erros de comunicação i2c:
- Verifique se há conexões soltas ou endereços I2C conflitantes no mesmo canal.
Conclusão
O multiplexador TCA9548A I2C é uma ferramenta versátil para expandir os recursos I2C do Raspberry Pi e resolver conflitos. Seguindo este guia, você pode gerenciar com eficiência vários dispositivos I2C em projetos complexos, como sistemas de monitoramento climático, casas inteligentes e robótica. Experimente diferentes dispositivos e canais para explorar completamente seus recursos!