Hogyan kell használni a TCA9548A I2C multiplexerrel az Arduino -val

How to Use the TCA9548A I2C Multiplexer with Arduino

A TCA9548A egy I2C multiplexer, amely lehetővé teszi, hogy több eszközt csatlakozzon ugyanazzal az I2C címmel egyetlen Arduino -hoz. Ezt eléri, ha akár nyolc különálló I2C busz létrehozhat, amely külön -külön lehet elérni. Ez az oktatóanyag vezeti Önt a TCA9548A interfésze és használata az Arduino -val több I2C eszköz kezelésére.


Mire lesz szüksége

  1. TCA9548a i2c multiplexer modul
  2. Arduino Board (például Uno, Mega, Nano)
  3. I2C eszközök (például érzékelők, kijelzők)
  4. Kenyérlemez és jumper vezetékek
  5. Egy számítógép, amelyen az Arduino IDE telepített

1. lépés: A TCA9548a megértése

A TCA9548A akár 8 független I2C busz (csatorna) irányítását képes vezérelni. Minden csatorna be- vagy kikapcsolható, hogy ugyanazzal a címmel rendelkező eszközöket izoláljon.

Poggyász

Csap Funkció
VCC Tápegység (3,3 V/5 V)
GND Föld
SDA I2C adatsor
SCL I2C óravonal
SDX/SCX Egyéni I2C buszok (0-7)
A0, A1, A2 Címkonfiguráció

I2C címkonfiguráció

  • A TCA9548A I2C címét A0, A1 és A2 csapok határozzák meg:
    • Minden csap a GND -hez: 0x70 (Alapértelmezett cím)
    • A magas és az alacsony kombinációk beállíthatják a címeket 0x70 -hoz 0x77.

2. lépés: A TCA9548a vezetéke Arduino -hoz

Csatlakoztassa a TCA9548A -t az Arduino -hoz

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

Csatlakoztassa az I2C eszközöket a TCA9548A -hoz

  • Csatlakoztassa az I2C eszközök SDA és SCL vonalait a TCA9548A megfelelő SDX és SCX csapokhoz.
  • Győződjön meg arról, hogy az eszközök VCC és GND csapjai szintén csatlakoztatva vannak.

3. lépés: Telepítse a szükséges könyvtárat

A TCA9548A-val való munka egyszerűsítéséhez telepítse a "Wire" könyvtárat (az Arduino IDE-be előre telepítve).

Ha a könnyebb kezelést részesíti előnyben a könyvtárhoz, akkor a Adafrit TCA9548a könyvtár:

A telepítéshez szükséges lépések:

  1. Nyissa meg az Arduino IDE -t.
  2. Elindul Vázlat > Tartalmazza a könyvtárat > Könyvtárak kezelése.
  3. Keresse meg az "AdaFruit TCA9548a" -ot, és kattintson Beilleszt.

4. lépés: Töltse fel a kódot

A következő példa bemutatja, hogyan lehet kiválasztani egy specifikus I2C buszt és kommunikálni egy eszközzel:

Példakód

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

5. lépés: Kommunikáció az egyes csatornák eszközeivel

Hívja a tcaSelect(bus) Funkció az i2c kommunikáció megkezdése előtt. Például:

Adatok olvasása az érzékelőktől

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

A TCA9548a alkalmazásai

  1. Több azonos I2C eszköz kezelése (például több érzékelő azonos címmel).
  2. Az I2C eszközök bővítése egy projektben.
  3. A vezetékek bonyolultságának csökkentése a nagy rendszerekben.

Hibaelhárítás

  • Nincs válasz az eszközökről: Győződjön meg arról, hogy a helyes I2C busz kiválasztott -e, és ellenőrizze a vezetékeket.
  • Konfliktusok címe: Ellenőrizze a csatlakoztatott eszközök I2C címeit a konfliktusok elkerülése érdekében.
  • Helytelen buszváltás: Győződjön meg arról, hogy a TCA9548A címe helyesen van -e konfigurálva, és megegyezik a kóddal.

Következtetés

Sikeresen összekapcsolja a TCA9548A I2C multiplexert az Arduino -val. Ez a nagy teljesítményű modul lehetővé teszi több I2C eszköz csatlakoztatását és vezérlését ugyanazzal a címmel, így értékes eszközévé válik az összetett projektekhez. Kísérletezzen különböző eszközökkel és konfigurációkkal annak teljes potenciáljának felszabadításához!

Hagyj egy megjegyzést

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.