TCA9548A este un multiplexor I2C care vă permite să conectați mai multe dispozitive cu aceeași adresă I2C la un singur Arduino. Realizează acest lucru prin crearea a până la opt autobuze I2C separate, care pot fi accesate individual. Acest tutorial vă va ghida prin interfață și utilizarea TCA9548A cu Arduino pentru a gestiona mai multe dispozitive I2C.
Ce vei avea nevoie
- Modul multiplexor TCA9548A I2C
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Dispozitive I2C (de exemplu, senzori, afișaje)
- Tablă de pâine și jumper
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea TCA9548A
TCA9548A poate controla până la 8 autobuze I2C independente (canale). Fiecare canal poate fi pornit sau oprit pentru a izola dispozitivele cu aceeași adresă.
Pinout
Ac | Funcţie |
---|---|
VCC | Sursă de alimentare (3.3V/5V) |
GND | Sol |
SDA | Linia de date I2C |
SCL | Linia de ceas I2C |
SDX/SCX | Autobuze individuale I2C (0-7) |
A0, A1, A2 | Configurarea adresei |
Configurarea adresei I2C
- Adresa I2C a TCA9548A este determinată de pini A0, A1 și A2:
- Toți pinii către GND:
0x70
(adresa implicită) - Combinații de adrese mari și mici pot stabili de la
0x70
la0x77
.
- Toți pinii către GND:
Pasul 2: Cablarea TCA9548A către Arduino
Conectați TCA9548A la Arduino
TCA9548A PIN | Pinul Arduino |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
Conectați dispozitivele I2C la TCA9548A
- Conectați liniile SDA și SCL ale dispozitivelor dvs. I2C la pinii SDX și SCX corespunzători de pe TCA9548A.
- Asigurați -vă că pinii VCC și GND ale dispozitivelor sunt de asemenea conectate.
Pasul 3: Instalați biblioteca necesară
Pentru a simplifica lucrul cu TCA9548A, instalați biblioteca „Wire” (preinstalată în IDE Arduino).
Dacă preferați o bibliotecă pentru o manipulare mai ușoară, puteți utiliza Adafruit TCA9548A bibliotecă:
Pași pentru instalare:
- Deschideți IDE Arduino.
- Du -te la Schiţa > Include biblioteca > Gestionați bibliotecile.
- Căutați „Adafruit TCA9548A” și faceți clic pe Instala.
Pasul 4: Încărcați codul
Următorul exemplu demonstrează cum să selectați un autobuz I2C specific și să comunicați cu un dispozitiv:
Cod de exemplu
#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
}
Pasul 5: Comunicarea cu dispozitivele pe fiecare canal
Pentru a comunica cu un dispozitiv pe un canal specific, apelați tcaSelect(bus)
Funcție înainte de a iniția comunicarea I2C. De exemplu:
Citirea datelor de la senzori
#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);
}
}
Aplicațiile TCA9548A
- Gestionarea mai multor dispozitive I2C identice (de exemplu, mai mulți senzori cu aceeași adresă).
- Extinderea dispozitivelor I2C într -un proiect.
- Reducerea complexității cablurilor în sisteme mari.
Depanare
- Fără răspuns de la dispozitive: Asigurați -vă că este selectat autobuzul I2C corect și verificați cablarea.
- Adresa conflictelor: Verificați adresele I2C ale dispozitivelor conectate pentru a evita conflictele.
- Comutarea incorectă a autobuzului: Asigurați -vă că adresa TCA9548A este configurată corect și se potrivește cu codul.
Concluzie
Ați interfațat cu succes multiplexorul TCA9548A I2C cu Arduino. Acest modul puternic vă permite să conectați și să controlați mai multe dispozitive I2C cu aceeași adresă, ceea ce îl face un instrument valoros pentru proiecte complexe. Experimentați cu diferite dispozitive și configurații pentru a -și debloca potențialul maxim!