El TCA9548A es un multiplexor I2C que te permite conectar múltiples dispositivos con la misma dirección I2C a una sola Raspberry Pi. Funciona aislando cada dispositivo I2C en su propio bus, lo que permite que la Raspberry Pi se comunique con ellos uno a la vez. Esto es especialmente útil en proyectos complejos donde pueden ocurrir conflictos de direcciones.
Qué necesitarás
- Raspberry Pi (cualquier modelo con soporte GPIO, p. ej., Pi 3, Pi 4)
- Módulo multiplexor I2C TCA9548A
- Dispositivos I2C (p. ej., sensores o periféricos)
- Protoboard y cables jumper
- Python instalado en la Raspberry Pi
Paso 1: Conectar el TCA9548A a la Raspberry Pi
El TCA9548A se conecta a la Raspberry Pi usando el protocolo I2C.
Conexiones
| TCA9548A Pin | Raspberry Pi Pin |
|---|---|
| VIN | 3.3V (Pin 1) |
| GND | GND (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Conecta tus dispositivos I2C a los buses numerados del TCA9548A (p. ej., SD0/SCL0, SD1/SCL1).
Paso 2: Habilitar la interfaz I2C
- Abre la herramienta de configuración de Raspberry Pi:
sudo raspi-config - Navega a Interface Options > I2C y actívala.
- Reinicia la Raspberry Pi:
sudo reboot
Paso 3: Instalar las bibliotecas necesarias
-
Actualiza la lista de paquetes de tu Raspberry Pi:
sudo apt update && sudo apt upgrade -y -
Instala las herramientas I2C y las bibliotecas de Python:
sudo apt install -y i2c-tools python3-pip pip3 install adafruit-circuitpython-tca9548a -
Verifica que el TCA9548A sea detectado en el bus I2C:
sudo i2cdetect -y 1El multiplexor normalmente aparecerá en la dirección
0x70.
Paso 4: Código Python para usar el TCA9548A
Aquí tienes un script en Python para habilitar un canal I2C específico en el TCA9548A y leer datos de un sensor conectado.
Ejemplo de código Python
import board
import busio
from adafruit_tca9548a import TCA9548A
# Inicializar I2C y el multiplexor TCA9548A
i2c = busio.I2C(board.SCL, board.SDA)
tca = TCA9548A(i2c)
# Acceder a un canal I2C específico (p. ej., canal 0)
channel_0 = tca[0]
# Ejemplo: Interfaz con un dispositivo I2C en el canal 0
import adafruit_bme280 # Reemplaza con la librería de tu sensor
sensor = adafruit_bme280.Adafruit_BME280_I2C(channel_0)
# Leer datos del sensor
print(f"Temperatura: {sensor.temperature:.2f} °C")
print(f"Humedad: {sensor.humidity:.2f} %")
Explicación:
-
tca[0]se refiere al primer canal I2C en el TCA9548A. - Reemplaza la librería del sensor (p. ej.,
adafruit_bme280) por la librería de tu sensor o dispositivo específico.
Paso 5: Cambiar entre canales
El TCA9548A te permite cambiar entre múltiples dispositivos I2C conectados a diferentes canales. Aquí tienes un ejemplo de cómo iterar por los canales para leer de múltiples dispositivos:
for i in range(8): # TCA9548A tiene 8 canales (0-7)
if tca[i].try_lock():
print(f"Accediendo al dispositivo en el canal {i}")
tca[i].unlock()
Puedes usar este enfoque para gestionar múltiples sensores o periféricos conectados al multiplexor.
Aplicaciones del TCA9548A
- Evitar conflictos de direcciones I2C: Usa el multiplexor para aislar dispositivos con la misma dirección I2C.
- Ampliación de dispositivos I2C: Conecta hasta 8 buses, cada uno soportando múltiples dispositivos.
- Proyectos IoT: Usa el TCA9548A en sistemas de hogar inteligente o monitorización ambiental donde se requieren múltiples sensores.
- Robótica compleja: Gestiona múltiples sensores o actuadores en proyectos de robótica avanzada.
Solución de problemas
-
Dispositivo no detectado:
- Verifica el cableado y asegúrate de que los pines SDA/SCL estén correctamente conectados.
- Confirma que el TCA9548A está alimentado y que su dirección (
0x70por defecto) aparece en el escaneo I2C.
-
Datos incorrectos en el canal:
- Asegúrate de que el sensor esté conectado al canal correcto y de que se use la librería apropiada en tu script Python.
-
Errores de comunicación I2C:
- Revisa que no haya conexiones sueltas o direcciones I2C en conflicto en el mismo canal.
Conclusión
El TCA9548A I2C multiplexer es una herramienta versátil para ampliar las capacidades I2C de tu Raspberry Pi y resolver conflictos de direcciones. Siguiendo esta guía, puedes gestionar eficientemente múltiples dispositivos I2C en proyectos complejos como sistemas de monitorización meteorológica, hogares inteligentes y robótica. ¡Experimenta con diferentes dispositivos y canales para explorar completamente sus capacidades!



