Pular para o conteúdo principal

Grove - Multiplexador I2C/Hub I2C de 8 Canais (TCA9548A)

Nós já lançamos o Grove - I2C Hub (4 Port) e o Grove - I2C Hub (6 Port). Espera, ainda não é suficiente? Bem, sabemos que você está buscando mais. Aqui está, apresentamos o Grove - 8 Channel I2C Hub.

Mais importante ainda, isto é mais do que apenas uma superposição da quantidade de portas. Como todos sabemos, dispositivos I2C devem usar endereços diferentes no mesmo barramento, mesmo usando o Grove I2C Hub (4 ou 6 portas), a regra continua valendo. Porém, com a ajuda do Grove - 8 Channel I2C Hub, você pode conectar até 8 dispositivos I2C com o mesmo endereço ao mesmo sistema Grove I2C. Tudo graças ao chip multiplexador I2C TCA9548A. Ele adota tecnologia de multiplexação por divisão de tempo para que o mesmo controlador possa controlar 8 dispositivos I2C com o mesmo endereço. Nunca mais se preocupe com conflitos de endereço.

Recursos

  • 8 portas Grove I2C
  • Suporta múltiplos dispositivos com o mesmo endereço I2C
  • Suporta sistema 3.3V/5V

Plataformas Suportadas

ArduinoRaspberry Pi

Primeiros Passos

Ler o endereço I2C dos dispositivos conectados ao Grove - 8 Channel I2C Hub

Materiais Necessários

Seeeduino XIAOGrove BreadboardGrove - 8 Channel I2C Multiplexer/I2C Hub (TCA9548A)
Adquira agoraAdquira agoraAdquira agora

Também precisamos de até 8 dispositivos I2C, clique aqui para encontrar os dispositivos Grove I2C de que você gostar. Neste exemplo, usamos três dispositivos I2C.

Conexão de hardware

Conecte o I2C Hub à interface I2C do Seeeduino XIAO e conecte cada dispositivo I2C a cada hub.

Código de software

#include "TCA9548A.h"

// if you use the software I2C to drive, you can uncommnet the define SOFTWAREWIRE which in TCA9548A.h.
#ifdef SOFTWAREWIRE
#include <SoftwareWIRE.h>
SoftwareWire myWIRE(3, 2);
TCA9548A<SoftwareWire> TCA;
#define WIRE myWIRE
#else
#include <Wire.h>
TCA9548A<TwoWire> TCA;
#define WIRE Wire
#endif

#define SERIAL Serial

void setup()
{
SERIAL.begin(115200);
while(!SERIAL){};

//WIRE.begin();
TCA.begin(WIRE);
//defaut all channel was closed
//TCA.openAll();
//TCA.closeAll();

// Select the channels you want to open. You can open as many channels as you want
TCA.openChannel(TCA_CHANNEL_0); //TCA.closeChannel(TCA_CHANNEL_0);
TCA.openChannel(TCA_CHANNEL_1); //TCA.closeChannel(TCA_CHANNEL_1);
TCA.openChannel(TCA_CHANNEL_2); //TCA.closeChannel(TCA_CHANNEL_2);
TCA.openChannel(TCA_CHANNEL_3); //TCA.closeChannel(TCA_CHANNEL_3);
TCA.openChannel(TCA_CHANNEL_4); //TCA.closeChannel(TCA_CHANNEL_4);
TCA.openChannel(TCA_CHANNEL_5); //TCA.closeChannel(TCA_CHANNEL_5);
TCA.openChannel(TCA_CHANNEL_6); //TCA.closeChannel(TCA_CHANNEL_6);
TCA.openChannel(TCA_CHANNEL_7); //TCA.closeChannel(TCA_CHANNEL_7);

}

void loop()
{

uint8_t error, i2cAddress, devCount, unCount;

SERIAL.println("Scanning...");

devCount = 0;
unCount = 0;
for(i2cAddress = 1; i2cAddress < 127; i2cAddress++ )
{
WIRE.beginTransmission(i2cAddress);
error = WIRE.endTransmission();

if (error == 0)
{
SERIAL.print("I2C device found at 0x");
if (i2cAddress<16) SERIAL.print("0");
SERIAL.println(i2cAddress,HEX);
devCount++;
}
else if (error==4)
{
SERIAL.print("Unknow error at 0x");
if (i2cAddress<16) SERIAL.print("0");
SERIAL.println(i2cAddress,HEX);
unCount++;
}
}

if (devCount + unCount == 0)
SERIAL.println("No I2C devices found\n");
else {
SERIAL.print(devCount);
SERIAL.print(" device(s) found");
if (unCount > 0) {
SERIAL.print(", and unknown error in ");
SERIAL.print(unCount);
SERIAL.print(" address");
}
SERIAL.println();
}
SERIAL.println();
delay(1000);
}
  • Passo 1 Baixe a biblioteca a partir do recurso e adicione a biblioteca "zip" à sua IDE do Arduino. Consulte How to install an Arduino Library.

  • Passo 2 Encontre o código de exemplo e faça o upload para sua placa. Consulte How to upload code.

  • Passo 3 Após enviar o código, você verá o endereço I2C de cada dispositivo no monitor serial. O endereço 0x70 é o endereço I2C do I2C Hub.

Visualizador de Esquemático Online

Recursos

Suporte Técnico e Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para lhe fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...