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
- TCA9548A I2C Multiplexer Module
- Arduino Board (hal., Uno, Mega, Nano)
- Mga aparato ng I2C (hal., Mga Sensor, Pagpapakita)
- Mga wire ng tinapay at jumper
- 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
sa0x77
.
- Lahat ng mga pin sa GND:
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:
- Buksan ang Arduino IDE.
- Pumunta sa Sketch > Isama ang library > Pamahalaan ang mga aklatan.
- 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
- Pamamahala ng maraming magkaparehong mga aparato ng I2C (hal., Maramihang mga sensor na may parehong address).
- Pagpapalawak ng mga aparato ng I2C sa isang proyekto.
- 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!