Der TCA9548A ist ein I2C -Multiplexer, mit dem Sie mehrere Geräte mit derselben I2C -Adresse an einen einzelnen Arduino anschließen können. Es erreicht dies, indem bis zu acht separate I2C -Busse erstellt werden, auf die einzeln zugegriffen werden kann. In diesem Tutorial führt Sie die Schnittstelle und verwenden Sie die TCA9548A mit Arduino, um mehrere I2C -Geräte zu verwalten.
Was Sie brauchen werden
- TCA9548A I2C Multiplexer -Modul
- Arduino Board (z. B. Uno, Mega, Nano)
- I2C -Geräte (z. B. Sensoren, Anzeigen)
- Breadboard- und Jumper -Drähte
- Ein Computer mit der Arduino -IDE installiert
Schritt 1: Verständnis des TCA9548a
Der TCA9548A kann bis zu 8 unabhängige I2C -Busse (Kanäle) kontrollieren. Jeder Kanal kann ein- oder ausgeschaltet werden, um Geräte mit derselben Adresse zu isolieren.
Pinout
| Stift | Funktion | 
|---|---|
| VCC | Stromversorgung (3,3 V/5 V) | 
| GND | Boden | 
| SDA | I2C -Datenzeile | 
| Scl | I2C -Uhr -Linie | 
| SDX/SCX | Einzelne I2C-Busse (0-7) | 
| A0, A1, A2 | Adresskonfiguration | 
I2C -Adresskonfiguration
- Die I2C -Adresse des TCA9548A wird durch A0-, A1- und A2 -Stifte bestimmt:
- Alle Stifte zu GND: 0x70(Standardadresse)
- Kombinationen von hohen und niedrigen Den können Adressen von festlegen 0x70Zu0x77.
 
- Alle Stifte zu GND: 
Schritt 2: Verkabelung des TCA9548A mit Arduino
Schließen Sie die TCA9548A an Arduino an
| TCA9548a Pin | Arduino Pin | 
|---|---|
| VCC | 5v | 
| GND | GND | 
| SDA | A4 | 
| Scl | A5 | 
Schließen Sie I2C -Geräte mit dem TCA9548A an
- Schließen Sie die SDA- und SCL -Zeilen Ihrer I2C -Geräte an die entsprechenden SDX- und SCX -Stifte der TCA9548A an.
- Stellen Sie sicher, dass die VCC- und GND -Stifte der Geräte ebenfalls verbunden sind.
Schritt 3: Installieren Sie die erforderliche Bibliothek
Um die Arbeit mit der TCA9548A zu vereinfachen, installieren Sie die "Draht" -Bibliothek (vorinstalliert in der Arduino-IDE).
Wenn Sie eine Bibliothek für die einfachere Handhabung bevorzugen, können Sie die verwenden Adafruit TCA9548A Bibliothek:
Schritte zu installieren:
- Öffnen Sie die Arduino -IDE.
- Gehen zu Skizzieren > Bibliothek einbeziehen > Bibliotheken verwalten.
- Suchen Sie nach "Adafruit TCA9548A" und klicken Sie auf Installieren.
Schritt 4: Laden Sie den Code hoch hoch
Das folgende Beispiel zeigt, wie Sie einen bestimmten I2C -Bus auswählen und mit einem Gerät kommunizieren:
Beispielcode
#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
}
Schritt 5: Kommunikation mit Geräten auf jedem Kanal kommunizieren
Rufen Sie die auf, um mit einem Gerät auf einem bestimmten Kanal zu kommunizieren tcaSelect(bus) Funktion vor der Initiierung von I2C -Kommunikation. Zum Beispiel:
Daten von Sensoren lesen
#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);
  }
}
Anwendungen der TCA9548A
- Verwalten mehrerer identischer i2C -Geräte (z. B. mehrere Sensoren mit derselben Adresse).
- Erweiterung von I2C -Geräten in einem Projekt.
- Reduzierung der Verkabelungskomplexität in großen Systemen.
Fehlerbehebung
- Keine Antwort von Geräten: Stellen Sie sicher, dass der richtige I2C -Bus ausgewählt ist, und überprüfen Sie die Verkabelung.
- Konflikte ansprechen: Überprüfen Sie die I2C -Adressen von verbundenen Geräten, um Konflikte zu vermeiden.
- Falsche Busschaltung: Stellen Sie sicher, dass die Adresse des TCA9548A korrekt konfiguriert ist und dem Code entspricht.
Abschluss
Sie haben den TCA9548A I2C -Multiplexer mit Arduino erfolgreich miteinander verbunden. Mit diesem leistungsstarken Modul können Sie mehrere I2C -Geräte mit derselben Adresse anschließen und steuern, sodass es zu einem wertvollen Werkzeug für komplexe Projekte ist. Experimentieren Sie mit verschiedenen Geräten und Konfigurationen, um das volle Potenzial auszuschalten!
 
            
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  