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
}

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

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!

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.