Multiplexor TCA9548A I2c 1 a 8 canales compatible Arduino Raspberry ....

Escribe una opinión
$4.25 (3.32)
Ask a question
MTEIT8
En stock
+
Comprar ahora con 1-clic

El TCA9548A es un multiplexor I2C que permite conectar hasta 8 dispositivos I2C con la misma dirección en un solo bus I2C. Esto es útil cuando tienes varios sensores o dispositivos I2C con direcciones fijas y necesitas acceder a ellos desde un microcontrolador como Arduino o Raspberry Pi.

Características principales del TCA9548A:

  • 8 canales I2C: Puede manejar hasta 8 dispositivos I2C.
  • Dirección I2C configurable: La dirección base del TCA9548A es 0x70, pero se puede cambiar usando los pines A0, A1 y A2.
  • Bajo consumo: Ideal para proyectos con restricciones de energía.
  • Compatible con 3.3V y 5V: Funciona tanto con Arduino (5V) como con Raspberry Pi (3.3V).

Conexión con Arduino:

  1. Alimentación:
    • Conecta VCC del TCA9548A a 5V de Arduino.
    • Conecta GND del TCA9548A a GND de Arduino.
  2. Comunicación I2C:
    • Conecta SCL del TCA9548A a SCL (A5 en Arduino Uno).
    • Conecta SDA del TCA9548A a SDA (A4 en Arduino Uno).
  3. Pines de selección de dirección (A0, A1, A2):
    • Conecta estos pines a GND o VCC para cambiar la dirección I2C del multiplexor si es necesario.

Conexión con Raspberry Pi:

  1. Alimentación:
    • Conecta VCC del TCA9548A a 3.3V de Raspberry Pi.
    • Conecta GND del TCA9548A a GND de Raspberry Pi.
  2. Comunicación I2C:
    • Conecta SCL del TCA9548A a SCL (GPIO 3) de Raspberry Pi.
    • Conecta SDA del TCA9548A a SDA (GPIO 2) de Raspberry Pi.
  3. Pines de selección de dirección (A0, A1, A2):
    • Conecta estos pines a GND o 3.3V para cambiar la dirección I2C del multiplexor si es necesario.

Uso con Arduino:

Para usar el TCA9548A con Arduino, puedes utilizar la librería Wire para comunicarte con el multiplexor y seleccionar el canal deseado.

cpp
Copy

#include <Wire.h>
#define TCAADDR 0x70
void tcaSelect(uint8_t channel) {  if (channel > 7) return;  Wire.beginTransmission(TCAADDR);  Wire.write(1 << channel);  Wire.endTransmission();
}
void setup() {  Wire.begin();  Serial.begin(9600);
}
void loop() {  for (uint8_t i = 0; i < 8; i++) {    tcaSelect(i);    Serial.print("Canal ");    Serial.println(i);
    // Aquí puedes comunicarte con el dispositivo I2C en el canal seleccionado    // Ejemplo: leer un sensor    Wire.requestFrom(0x50, 2); // Cambia la dirección y el número de bytes según tu dispositivo    while (Wire.available()) {      byte data = Wire.read();      Serial.print(data, HEX);      Serial.print(" ");    }    Serial.println();    delay(500);  }
}

Uso con Raspberry Pi:

En Raspberry Pi, puedes usar la librería smbus en Python para controlar el TCA9548A.

python
Copy

import smbus
TCAADDR = 0x70
def tca_select(channel):    if channel > 7:        return    bus.write_byte(TCAADDR, 1 << channel)
bus = smbus.SMBus(1)  # Usar el bus I2C 1 en Raspberry Pi
for i in range(8):    tca_select(i)    print(f"Canal {i} seleccionado")        # Aquí puedes comunicarte con el dispositivo I2C en el canal seleccionado    # Ejemplo: leer un sensor    try:        data = bus.read_i2c_block_data(0x50, 0, 2)  # Cambia la dirección y el número de bytes según tu dispositivo        print(f"Datos: {data}")    except:        print("No se detectó dispositivo en este canal")

Consideraciones:

  • Direcciones I2C: Asegúrate de que los dispositivos conectados a cada canal no tengan direcciones I2C conflictivas.
  • Pull-up resistors: El bus I2C necesita resistencias pull-up en SDA y SCL. Algunos dispositivos ya las incluyen, pero si no, añade resistencias de 4.7kΩ a 10kΩ.

Con el TCA9548A, puedes expandir significativamente la cantidad de dispositivos I2C que puedes controlar desde un solo microcontrolador. ¡Es una herramienta muy útil para proyectos complejos!

Main features

3D support:
HD support:

Multimedia

Video playback:

No se encontraron opiniones