Paano gamitin ang TCA9548A I2C Multiplexer kasama si Arduino

How to Use the TCA9548A I2C Multiplexer with Arduino

Ang TCA9548A ay isang I2C multiplexer na nagbibigay -daan sa iyo upang ikonekta ang maraming mga aparato na may parehong I2C address sa isang solong Arduino. Nakamit ito sa pamamagitan ng paglikha ng hanggang sa walong magkahiwalay na mga bus ng I2C, na maaaring ma -access nang paisa -isa. Ang tutorial na ito ay gagabay sa iyo sa pamamagitan ng interface at gamit ang TCA9548A kasama si Arduino upang pamahalaan ang maraming mga aparato ng I2C.


Ano ang kakailanganin mo

  1. TCA9548A I2C Multiplexer Module
  2. Arduino Board (hal., Uno, Mega, Nano)
  3. Mga aparato ng I2C (hal., Mga Sensor, Pagpapakita)
  4. Mga wire ng tinapay at jumper
  5. Isang computer na may naka -install na Arduino IDE

Hakbang 1: Pag -unawa sa TCA9548A

Ang TCA9548A ay maaaring makontrol ang hanggang sa 8 independiyenteng mga bus ng I2C (mga channel). Ang bawat channel ay maaaring i -on o i -off upang ibukod ang mga aparato na may parehong address.

Pinout

Pin Function
VCC Power Supply (3.3V/5V)
Gnd Lupa
SDA I2C Data Line
SCL I2C linya ng orasan
SDX/SCX Mga Indibidwal na I2C Bus (0-7)
A0, A1, A2 Pag -configure ng Address

Ang pagsasaayos ng address ng I2C

  • Ang address ng I2C ng TCA9548A ay tinutukoy ng A0, A1, at A2 pin:
    • Lahat ng mga pin sa GND: 0x70 (default na address)
    • Ang mga kumbinasyon ng mataas at mababa ay maaaring magtakda ng mga address mula sa 0x70 sa 0x77.

Hakbang 2: Ang mga kable ng TCA9548A kay Arduino

Ikonekta ang TCA9548A sa Arduino

TCA9548A PIN Arduino Pin
VCC 5v
Gnd Gnd
SDA A4
SCL A5

Ikonekta ang mga aparato ng I2C sa TCA9548A

  • Ikonekta ang mga linya ng SDA at SCL ng iyong mga aparato ng I2C sa kaukulang SDX at SCX pin sa TCA9548A.
  • Tiyakin na ang VCC at GND pin ng mga aparato ay konektado din.

Hakbang 3: I -install ang kinakailangang library

Upang gawing simple ang pagtatrabaho sa TCA9548A, i-install ang library ng "wire" (pre-install sa Arduino IDE).

Kung mas gusto mo ang isang library para sa mas madaling paghawak, maaari mong gamitin ang Adafruit TCA9548A Library:

Mga hakbang upang mai -install:

  1. Buksan ang Arduino IDE.
  2. Pumunta sa Sketch > Isama ang library > Pamahalaan ang mga aklatan.
  3. Maghanap para sa "Adafruit TCA9548A" at i -click I -install.

Hakbang 4: Mag -upload ng code

Ang sumusunod na halimbawa ay nagpapakita kung paano pumili ng isang tukoy na bus ng I2C at makipag -usap sa isang aparato:

Halimbawa ng code

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

Hakbang 5: Nakikipag -usap sa mga aparato sa bawat channel

Upang makipag -usap sa isang aparato sa isang tukoy na channel, tawagan ang tcaSelect(bus) Pag -andar bago simulan ang komunikasyon ng I2C. Halimbawa:

Pagbabasa ng data mula sa mga sensor

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

Mga aplikasyon ng TCA9548A

  1. Pamamahala ng maraming magkaparehong mga aparato ng I2C (hal., Maramihang mga sensor na may parehong address).
  2. Pagpapalawak ng mga aparato ng I2C sa isang proyekto.
  3. Pagbabawas ng pagiging kumplikado ng mga kable sa malalaking sistema.

Pag -aayos

  • Walang tugon mula sa mga aparato: Tiyakin na ang tamang I2C bus ay napili at suriin ang mga kable.
  • Mga salungatan sa address: Patunayan ang mga address ng I2C ng mga konektadong aparato upang maiwasan ang mga salungatan.
  • Maling paglipat ng bus: Tiyakin na ang address ng TCA9548A ay tama na na -configure at tumutugma sa code.

Konklusyon

Matagumpay mong na -interface ang TCA9548A I2C Multiplexer kasama si Arduino. Ang malakas na module na ito ay nagbibigay -daan sa iyo upang kumonekta at makontrol ang maraming mga aparato ng I2C na may parehong address, ginagawa itong isang mahalagang tool para sa mga kumplikadong proyekto. Eksperimento sa iba't ibang mga aparato at mga pagsasaayos upang i -unlock ang buong potensyal nito!

Mag -iwan ng komento

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.