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
0x70
Zu0x77
.
- 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!