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
- TCA9548a i2c multiplexer modul
- Arduino Board (például Uno, Mega, Nano)
- I2C eszközök (például érzékelők, kijelzők)
- Kenyérlemez és jumper vezetékek
- 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
-hoz0x77
.
- Minden csap a GND -hez:
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:
- Nyissa meg az Arduino IDE -t.
- Elindul Vázlat > Tartalmazza a könyvtárat > Könyvtárak kezelése.
- 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
- Több azonos I2C eszköz kezelése (például több érzékelő azonos címmel).
- Az I2C eszközök bővítése egy projektben.
- 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!