Hur man använder TCA9548A I2C multiplexer med Arduino

How to Use the TCA9548A I2C Multiplexer with Arduino

TCA9548A är en I2C -multiplexer som låter dig ansluta flera enheter med samma I2C -adress till en enda Arduino. Det uppnår detta genom att skapa upp till åtta separata I2C -bussar, som kan nås individuellt. Denna handledning kommer att leda dig genom gränssnitt och använda TCA9548A med Arduino för att hantera flera I2C -enheter.


Vad du behöver

  1. TCA9548A I2C multiplexormodul
  2. Arduino Board (t.ex. Uno, Mega, Nano)
  3. I2C -enheter (t.ex. sensorer, skärmar)
  4. Breadboard och jumpertrådar
  5. En dator med Arduino Ide installerad

Steg 1: Förstå TCA9548A

TCA9548A kan styra upp till 8 oberoende I2C -bussar (kanaler). Varje kanal kan slås på eller av för att isolera enheter med samma adress.

Pinout

Stift Fungera
Vcc Strömförsörjning (3.3V/5V)
Gard Jord
SDA I2C -datalinjen
SCL I2c klocklinje
SDX/SCX Individuella I2C-bussar (0-7)
A0, A1, A2 Adresskonfiguration

I2c adresskonfiguration

  • TCA9548A: s I2C -adress bestäms av A0, A1 och A2 -stift:
    • Alla stift till GND: 0x70 (Standardadress)
    • Kombinationer av höga och låga kan ställa in adresser från 0x70 till 0x77.

Steg 2: Kopplar TCA9548A till Arduino

Anslut TCA9548A till Arduino

TCA9548A -stift Arduinosnål
Vcc 5V
Gard Gard
SDA A4
SCL A5

Anslut I2C -enheter till TCA9548A

  • Anslut SDA- och SCL -linjerna för dina I2C -enheter till motsvarande SDX- och SCX -stift på TCA9548A.
  • Se till att VCC- och GND -stiften på enheterna också är anslutna.

Steg 3: Installera det nödvändiga biblioteket

För att förenkla arbetet med TCA9548A, installera "Wire" -biblioteket (förinstallerat i Arduino IDE).

Om du föredrar ett bibliotek för enklare hantering kan du använda Adafruit TCA9548A bibliotek:

Steg för att installera:

  1. Öppna Arduino IDE.
  2. Gå till Skiss > Inkludera bibliotek > Hantera bibliotek.
  3. Sök efter "Adafruit TCA9548A" och klicka Installera.

Steg 4: Ladda upp koden

Följande exempel visar hur man väljer en specifik I2C -buss och kommunicerar med en enhet:

Exempelkod

#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
}
Arduino

Steg 5: Kommunicera med enheter på varje kanal

För att kommunicera med en enhet på en specifik kanal, ring tcaSelect(bus) Funktion innan I2C -kommunikation inleds. Till exempel:

Läser data från sensorer

#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);
  }
}
Arduino

Applikationer av TCA9548A

  1. Hantera flera identiska I2C -enheter (t.ex. flera sensorer med samma adress).
  2. Utöka I2C -enheter i ett projekt.
  3. Minska ledningskomplexiteten i stora system.

Felsökning

  • Inget svar från enheter: Se till att rätt I2C -buss är vald och kontrollera ledningarna.
  • Adresskonflikter: Kontrollera I2C -adresserna för anslutna enheter för att undvika konflikter.
  • Fel bussbyte: Se till att TCA9548A: s adress är korrekt konfigurerad och matchar koden.

Slutsats

Du har framgångsrikt interfogat TCA9548A I2C multiplexer med Arduino. Denna kraftfulla modul låter dig ansluta och styra flera I2C -enheter med samma adress, vilket gör det till ett värdefullt verktyg för komplexa projekt. Experimentera med olika enheter och konfigurationer för att låsa upp sin fulla potential!

2 Minute Read

Lämna en kommentar

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.