Kuinka käyttää TCA9548A I2C -multiplekseriä Arduinon kanssa

How to Use the TCA9548A I2C Multiplexer with Arduino

TCA9548A on I2C -multiplekseri, jonka avulla voit yhdistää useita laitteita, joilla on sama I2C -osoite yhdeksi Arduinolle. Se saavuttaa tämän luomalla jopa kahdeksan erillistä I2C -linja -autoa, joihin pääsee erikseen. Tämä opetusohjelma opastaa sinua Interfacking and käyttämällä TCA9548A: n kanssa Arduinon kanssa useiden I2C -laitteiden hallitsemiseksi.


Mitä tarvitset

  1. TCA9548A I2C -multiplekserimoduuli
  2. Arduino Board (esim. UNO, Mega, Nano)
  3. I2C -laitteet (esim. Anturit, näytöt)
  4. Leipälevy- ja hyppyjohdot
  5. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: TCA9548A: n ymmärtäminen

TCA9548A voi hallita jopa 8 riippumatonta I2C -väylää (kanavaa). Jokainen kanava voidaan kytkeä päälle tai pois päältä eristääksesi laitteet, joilla on sama osoite.

Pinot

Nasta Funktio
VCC Virtalähde (3,3 V/5 V)
Hölynpöly Pohja
SDA I2C -datalinja
SCL I2C -kellolinja
SDX/SCX Yksittäiset I2C-väylät (0-7)
A0, A1, A2 Osoitteen kokoonpano

I2C -osoitteen kokoonpano

  • TCA9548A: n I2C -osoitteen määräävät A0-, A1- ja A2 -nastat:
    • Kaikki nastat GND: lle: 0x70 (Oletusosoite)
    • Korkean ja matalan yhdistelmät voivat asettaa osoitteita 0x70 -lla 0x77.

Vaihe 2: TCA9548A: n johdotus Arduinolle

Yhdistä TCA9548A Arduino

TCA9548A -nasta Arduino -nasta
VCC 5V
Hölynpöly Hölynpöly
SDA A4
SCL A5

Yhdistä I2C -laitteet TCA9548A: een

  • Yhdistä I2C -laitteiden SDA- ja SCL -viivat vastaaviin SDX- ja SCX -nastaihin TCA9548A: lla.
  • Varmista, että laitteiden VCC- ja GND -nastat ovat myös kytkettynä.

Vaihe 3: Asenna vaadittu kirjasto

Yksinkertaistaaksesi työskentelyä TCA9548A: n kanssa, asenna "Wire" -kirjasto (esiasennettu Arduino IDE: hen).

Jos haluat kirjastoa helpompaa käsittelyä varten, voit käyttää Adafruit TCA9548a kirjasto:

Asennettava vaiheet:

  1. Avaa Arduino IDE.
  2. Mennä jhk Luonnos > Sisällytä kirjasto > Hallitse kirjastoja.
  3. Etsi "Adafruit TCA9548A" ja napsauta Asentaa.

Vaihe 4: Lataa koodi

Seuraava esimerkki osoittaa, kuinka valita tietty I2C -väylä ja kommunikoida laitteen kanssa:

Esimerkkikoodi

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

Vaihe 5: Kommunikointi jokaisen kanavan laitteiden kanssa

Kommunikoidaksesi tietyn kanavan laitteen kanssa, soita tcaSelect(bus) Toiminto ennen I2C -viestinnän aloittamista. Esimerkiksi:

Antureiden tietojen lukeminen

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

TCA9548A: n sovellukset

  1. Useiden identtisten I2C -laitteiden hallinta (esim. Useat anturit, joilla on sama osoite).
  2. I2C -laitteiden laajentaminen projektissa.
  3. Johdotuksen monimutkaisuuden vähentäminen suurissa järjestelmissä.

Vianetsintä

  • Ei vastausta laitteista: Varmista, että oikea I2C -väylä on valittu ja tarkista johdotus.
  • Osoita konflikteja: Varmista kytkettyjen laitteiden I2C -osoitteet konfliktien välttämiseksi.
  • Väärä väylän kytkentä: Varmista, että TCA9548A: n osoite on määritetty oikein ja vastaa koodia.

Johtopäätös

Olet onnistuneesti liitetty TCA9548A I2C -multiplekseriin Arduinon kanssa. Tämän tehokkaan moduulin avulla voit yhdistää ja hallita useita I2C -laitteita samalla osoitteella, mikä tekee siitä arvokkaan työkalun monimutkaisille projekteille. Kokeile erilaisia ​​laitteita ja kokoonpanoja sen koko potentiaalin avaamiseksi!

Jätä kommentti

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.