Hoe de TCA9548A I2C -multiplexer te gebruiken met Arduino

How to Use the TCA9548A I2C Multiplexer with Arduino

De TCA9548A is een I2C -multiplexer waarmee u meerdere apparaten kunt aansluiten met hetzelfde I2C -adres met één Arduino. Het bereikt dit door maximaal acht afzonderlijke I2C -bussen te maken, die afzonderlijk toegankelijk zijn. Deze zelfstudie zal u begeleiden door het interface te maken en de TCA9548A met Arduino te gebruiken om meerdere I2C -apparaten te beheren.


Wat u nodig hebt

  1. TCA9548A I2C Multiplexer -module
  2. Arduino Board (bijv. UNO, Mega, Nano)
  3. I2C -apparaten (bijv. Sensoren, displays)
  4. Breadboard en jumper draden
  5. Een computer met de Arduino Ide geïnstalleerd

Stap 1: Inzicht in de TCA9548A

De TCA9548A kan tot 8 onafhankelijke I2C -bussen (kanalen) regelen. Elk kanaal kan worden ingeschakeld of uitgeschakeld om apparaten met hetzelfde adres te isoleren.

Uitspraken

Pin Functie
VCC Voeding (3.3V/5V)
GND Grond
SDA I2C -gegevenslijn
SCL I2c kloklijn
SDX/SCX Individuele I2C-bussen (0-7)
A0, A1, A2 Adresconfiguratie

I2C -adresconfiguratie

  • Het I2C -adres van TCA9548A wordt bepaald door A0-, A1- en A2 -pinnen:
    • Alle pinnen naar GND: 0x70 (Standaardadres)
    • Combinaties van hoog en laag kunnen adressen instellen van 0x70 naar 0x77.

Stap 2: De TCA9548A bedraden aan Arduino

Verbind de TCA9548A met Arduino

TCA9548A PIN Arduino Pin
VCC 5V
GND GND
SDA A4
SCL A5

Verbind I2C -apparaten met de TCA9548A

  • Sluit de SDA- en SCL -lijnen van uw I2C -apparaten aan op de overeenkomstige SDX- en SCX -pennen op de TCA9548A.
  • Zorg ervoor dat de VCC- en GND -pennen van de apparaten ook zijn verbonden.

Stap 3: Installeer de vereiste bibliotheek

Installeer het werken met de TCA9548A de "draad" -bibliotheek (vooraf geïnstalleerd in de Arduino IDE).

Als u de voorkeur geeft aan een bibliotheek voor eenvoudiger hanteren, kunt u de Adafruit TCA9548A bibliotheek:

Stappen om te installeren:

  1. Open de Arduino Ide.
  2. Gaan naar Schetsen > Library innemen > Bibliotheken beheren.
  3. Zoek naar "Adafruit TCA9548A" en klik Installeren.

Stap 4: Upload de code

Het volgende voorbeeld laat zien hoe u een specifieke I2C -bus kunt selecteren en communiceert met een apparaat:

Voorbeeldcode

#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

Stap 5: Communiceren met apparaten op elk kanaal

Bel de tcaSelect(bus) Functie voordat u I2C -communicatie start. Bijvoorbeeld:

Gegevens lezen van sensoren

#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

Toepassingen van de TCA9548A

  1. Beheer van meerdere identieke I2C -apparaten (bijv. Meerdere sensoren met hetzelfde adres).
  2. I2C -apparaten uitbreiden in een project.
  3. Vermindering van de bedradingcomplexiteit in grote systemen.

Problemen oplossen

  • Geen reactie van apparaten: Zorg ervoor dat de juiste I2C -bus is geselecteerd en controleer de bedrading.
  • Adresconflicten: Controleer de I2C -adressen van verbonden apparaten om conflicten te voorkomen.
  • Onjuiste busschakelen: Zorg ervoor dat het adres van de TCA9548A correct is geconfigureerd en komt overeen met de code.

Conclusie

Je hebt met succes de TCA9548A I2C -multiplexer met Arduino gekoppeld. Met deze krachtige module kunt u meerdere I2C -apparaten met hetzelfde adres verbinden en besturen, waardoor het een waardevol hulpmiddel is voor complexe projecten. Experimenteer met verschillende apparaten en configuraties om het volledige potentieel ervan te ontgrendelen!

3 minuten lezen

Laat een reactie achter

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.