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á
- Módulo multiplexador TCA9548A I2C
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Dispositivos I2C (por exemplo, sensores, displays)
- Fios de pão e jumper
- 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 0x70para0x77.
 
- Todos os pinos para GND: 
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:
- Abra o Arduino IDE.
- Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
- 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
- Gerenciando vários dispositivos I2C idênticos (por exemplo, vários sensores com o mesmo endereço).
- Expandindo os dispositivos I2C em um projeto.
- 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!
 
            
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  