Como usar o multiplexador TCA9548A I2C com Arduino

How to Use the TCA9548A I2C Multiplexer with Arduino

O TCA9548A é um multiplexador I2C que permite conectar vários dispositivos com o mesmo endereço I2C a um único Arduino. Ele alcança isso criando até oito ônibus i2c separados, que podem ser acessados ​​individualmente. Este tutorial o guiará através da interface e usando o TCA9548A com o Arduino para gerenciar vários dispositivos I2C.


O que você precisará

  1. Módulo multiplexador TCA9548A I2C
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Dispositivos I2C (por exemplo, sensores, displays)
  4. Fios de pão e jumper
  5. Um computador com o Arduino IDE instalado

Etapa 1: Compreendendo o TCA9548A

O TCA9548A pode controlar até 8 barramentos Idens I2C (canais). Cada canal pode ser ativado ou desativado para isolar dispositivos com o mesmo endereço.

Pinout

Alfinete Função
VCC Fonte de alimentação (3,3V/5V)
Gnd Chão
SDA I2C Linha de dados
SCL I2C Linha do relógio
SDX/SCX Buses I2C individuais (0-7)
A0, A1, A2 Configuração de endereço

Configuração do endereço I2C

  • O endereço I2C do TCA9548A é determinado por pinos A0, A1 e A2:
    • Todos os pinos para GND: 0x70 (endereço padrão)
    • Combinações de alto e baixo podem definir endereços de 0x70 para 0x77.

Etapa 2: Fiação do TCA9548A para Arduino

Conecte o TCA9548A ao Arduino

Pino TCA9548A Pino Arduino
VCC 5V
Gnd Gnd
SDA A4
SCL A5

Conecte os dispositivos I2C ao TCA9548A

  • Conecte as linhas SDA e SCL dos seus dispositivos I2C aos pinos SDX e SCX correspondentes no TCA9548A.
  • Verifique se os pinos VCC e GND dos dispositivos também estão conectados.

Etapa 3: Instale a biblioteca necessária

Para simplificar o trabalho com o TCA9548A, instale a biblioteca "Wire" (pré-instalada no Arduino IDE).

Se você preferir uma biblioteca para facilitar o manuseio, pode usar o Adafruit TCA9548a biblioteca:

Etapas para instalar:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. Pesquise "Adafruit TCA9548A" e clique Instalar.

Etapa 4: Faça o upload do código

O exemplo a seguir demonstra como selecionar um barramento I2C específico e se comunicar com um dispositivo:

Código de exemplo

#include <Wire.h>

#define TCA9548A_ADDR 0x70 // Default I2C address of TCA9548A

void tcaSelect(uint8_t bus) {
  if (bus > 7) return; // Ensure the bus number is valid
  Wire.beginTransmission(TCA9548A_ADDR);
  Wire.write(1 << bus); // Select the specific bus
  Wire.endTransmission();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();

  Serial.println("TCA9548A Test");

  // Test selecting each channel
  for (uint8_t i = 0; i < 8; i++) {
    tcaSelect(i);
    Serial.print("Channel ");
    Serial.print(i);
    Serial.println(" selected.");
    delay(500);
  }
}

void loop() {
  // Add specific I2C communication here
}

Etapa 5: Comunicação com dispositivos em cada canal

Para se comunicar com um dispositivo em um canal específico, ligue para o tcaSelect(bus) Função antes de iniciar a comunicação I2C. Por exemplo:

Lendo dados de sensores

#include <Wire.h>

#define TCA9548A_ADDR 0x70

void tcaSelect(uint8_t bus) {
  if (bus > 7) return;
  Wire.beginTransmission(TCA9548A_ADDR);
  Wire.write(1 << bus);
  Wire.endTransmission();
}

void setup() {
  Serial.begin(9600);
  Wire.begin();

  Serial.println("Reading from multiple sensors");
}

void loop() {
  for (uint8_t i = 0; i < 8; i++) {
    tcaSelect(i); // Select channel
    Serial.print("Reading from channel ");
    Serial.println(i);

    Wire.requestFrom(0x40, 1); // Replace 0x40 with the I2C address of your sensor
    if (Wire.available()) {
      int data = Wire.read();
      Serial.print("Data: ");
      Serial.println(data);
    }
    delay(500);
  }
}

Aplicações do TCA9548a

  1. Gerenciando vários dispositivos I2C idênticos (por exemplo, vários sensores com o mesmo endereço).
  2. Expandindo os dispositivos I2C em um projeto.
  3. Reduzindo a complexidade da fiação em grandes sistemas.

Solução de problemas

  • Nenhuma resposta dos dispositivos: Verifique se o barramento I2C correto está selecionado e verifique a fiação.
  • Abordar conflitos: Verifique os endereços I2C dos dispositivos conectados para evitar conflitos.
  • Comutação de barramento incorreta: Verifique se o endereço do TCA9548A está configurado corretamente e corresponde ao código.

Conclusão

Você interfigurou com sucesso o multiplexador TCA9548A I2C com o Arduino. Este módulo poderoso permite conectar e controlar vários dispositivos I2C com o mesmo endereço, tornando -o uma ferramenta valiosa para projetos complexos. Experimente diferentes dispositivos e configurações para desbloquear todo o seu potencial!

Deixe um comentário

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.