Le TCA9548A est un multiplexeur I2C qui vous permet de connecter plusieurs appareils avec la même adresse I2C à un seul Arduino. Il y parvient en créant jusqu'à huit bus I2C séparés, qui peuvent être accessibles individuellement. Ce tutoriel vous guidera à travers l'interfaçage et l'utilisation du TCA9548A avec Arduino pour gérer plusieurs appareils I2C.
Ce dont vous aurez besoin
- Module multiplexeur TCA9548A I2C
- Board Arduino (par exemple, Uno, Mega, Nano)
- Appareils I2C (par exemple, capteurs, affichages)
- Fils de planche à pain et de cavalier
- Un ordinateur avec l'ide Arduino installé
Étape 1: Comprendre le TCA9548A
Le TCA9548A peut contrôler jusqu'à 8 bus I2C indépendants (canaux). Chaque canal peut être activé ou désactivé pour isoler les appareils avec la même adresse.
Brochage
Épingle | Fonction |
---|---|
VCC | Alimentation (3,3 V / 5V) |
GND | Sol |
SDA | Ligne de données I2C |
SCL | Ligne d'horloge i2c |
SDX / SCX | Bus I2C individuels (0-7) |
A0, A1, A2 | Configuration d'adresse |
Configuration d'adresse I2C
- L'adresse I2C du TCA9548A est déterminée par les broches A0, A1 et A2:
- Toutes les broches à GND:
0x70
(adresse par défaut) - Des combinaisons de haut et de bas peuvent définir des adresses
0x70
à0x77
.
- Toutes les broches à GND:
Étape 2: Câblage du TCA9548A à Arduino
Connectez le TCA9548A à Arduino
TCA9548A PIN | Épingle arduino |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
Connectez les appareils I2C au TCA9548A
- Connectez les lignes SDA et SCL de vos appareils I2C aux broches SDX et SCX correspondantes sur le TCA9548A.
- Assurez-vous que les broches VCC et GND des appareils sont également connectées.
Étape 3: Installez la bibliothèque requise
Pour simplifier le travail avec le TCA9548A, installez la bibliothèque "Wire" (préinstallé dans le Arduino IDE).
Si vous préférez une bibliothèque pour une manipulation plus facile, vous pouvez utiliser le Adafruit TCA9548A bibliothèque:
Étapes à installer:
- Ouvrez l'ide Arduino.
- Aller à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques.
- Recherchez "Adafruit TCA9548A" et cliquez Installer.
Étape 4: Téléchargez le code
L'exemple suivant montre comment sélectionner un bus I2C spécifique et communiquer avec un appareil:
Exemple de 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
}
Étape 5: Communiquer avec les appareils sur chaque canal
Pour communiquer avec un appareil sur un canal spécifique, appelez le tcaSelect(bus)
fonction avant de lancer la communication I2C. Par exemple:
Lire les données des capteurs
#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);
}
}
Applications du TCA9548A
- Gérer plusieurs dispositifs I2C identiques (par exemple, plusieurs capteurs avec la même adresse).
- Élargir les appareils I2C dans un projet.
- Réduire la complexité du câblage dans les grands systèmes.
Dépannage
- Aucune réponse des appareils: Assurez-vous que le bus I2C correct est sélectionné et vérifiez le câblage.
- Aborder les conflits: Vérifiez les adresses I2C des appareils connectés pour éviter les conflits.
- Commutation de bus incorrecte: Assurez-vous que l'adresse du TCA9548A est correctement configurée et correspond au code.
Conclusion
Vous avez réussi à interfacer le multiplexeur TCA9548A I2C avec Arduino. Ce module puissant vous permet de connecter et de contrôler plusieurs appareils I2C avec la même adresse, ce qui en fait un outil précieux pour des projets complexes. Expérimentez avec différents appareils et configurations pour déverrouiller son plein potentiel!