TCA9548A on I2C -multiplekseri, jonka avulla voit yhdistää useita laitteita, joilla on sama I2C -osoite yhdeksi Arduinolle. Se saavuttaa tämän luomalla jopa kahdeksan erillistä I2C -linja -autoa, joihin pääsee erikseen. Tämä opetusohjelma opastaa sinua Interfacking and käyttämällä TCA9548A: n kanssa Arduinon kanssa useiden I2C -laitteiden hallitsemiseksi.
Mitä tarvitset
- TCA9548A I2C -multiplekserimoduuli
- Arduino Board (esim. UNO, Mega, Nano)
- I2C -laitteet (esim. Anturit, näytöt)
- Leipälevy- ja hyppyjohdot
- Tietokone, jossa Arduino IDE on asennettu
Vaihe 1: TCA9548A: n ymmärtäminen
TCA9548A voi hallita jopa 8 riippumatonta I2C -väylää (kanavaa). Jokainen kanava voidaan kytkeä päälle tai pois päältä eristääksesi laitteet, joilla on sama osoite.
Pinot
Nasta | Funktio |
---|---|
VCC | Virtalähde (3,3 V/5 V) |
Hölynpöly | Pohja |
SDA | I2C -datalinja |
SCL | I2C -kellolinja |
SDX/SCX | Yksittäiset I2C-väylät (0-7) |
A0, A1, A2 | Osoitteen kokoonpano |
I2C -osoitteen kokoonpano
- TCA9548A: n I2C -osoitteen määräävät A0-, A1- ja A2 -nastat:
- Kaikki nastat GND: lle:
0x70
(Oletusosoite) - Korkean ja matalan yhdistelmät voivat asettaa osoitteita
0x70
-lla0x77
.
- Kaikki nastat GND: lle:
Vaihe 2: TCA9548A: n johdotus Arduinolle
Yhdistä TCA9548A Arduino
TCA9548A -nasta | Arduino -nasta |
---|---|
VCC | 5V |
Hölynpöly | Hölynpöly |
SDA | A4 |
SCL | A5 |
Yhdistä I2C -laitteet TCA9548A: een
- Yhdistä I2C -laitteiden SDA- ja SCL -viivat vastaaviin SDX- ja SCX -nastaihin TCA9548A: lla.
- Varmista, että laitteiden VCC- ja GND -nastat ovat myös kytkettynä.
Vaihe 3: Asenna vaadittu kirjasto
Yksinkertaistaaksesi työskentelyä TCA9548A: n kanssa, asenna "Wire" -kirjasto (esiasennettu Arduino IDE: hen).
Jos haluat kirjastoa helpompaa käsittelyä varten, voit käyttää Adafruit TCA9548a kirjasto:
Asennettava vaiheet:
- Avaa Arduino IDE.
- Mennä jhk Luonnos > Sisällytä kirjasto > Hallitse kirjastoja.
- Etsi "Adafruit TCA9548A" ja napsauta Asentaa.
Vaihe 4: Lataa koodi
Seuraava esimerkki osoittaa, kuinka valita tietty I2C -väylä ja kommunikoida laitteen kanssa:
Esimerkkikoodi
#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
}
Vaihe 5: Kommunikointi jokaisen kanavan laitteiden kanssa
Kommunikoidaksesi tietyn kanavan laitteen kanssa, soita tcaSelect(bus)
Toiminto ennen I2C -viestinnän aloittamista. Esimerkiksi:
Antureiden tietojen lukeminen
#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);
}
}
TCA9548A: n sovellukset
- Useiden identtisten I2C -laitteiden hallinta (esim. Useat anturit, joilla on sama osoite).
- I2C -laitteiden laajentaminen projektissa.
- Johdotuksen monimutkaisuuden vähentäminen suurissa järjestelmissä.
Vianetsintä
- Ei vastausta laitteista: Varmista, että oikea I2C -väylä on valittu ja tarkista johdotus.
- Osoita konflikteja: Varmista kytkettyjen laitteiden I2C -osoitteet konfliktien välttämiseksi.
- Väärä väylän kytkentä: Varmista, että TCA9548A: n osoite on määritetty oikein ja vastaa koodia.
Johtopäätös
Olet onnistuneesti liitetty TCA9548A I2C -multiplekseriin Arduinon kanssa. Tämän tehokkaan moduulin avulla voit yhdistää ja hallita useita I2C -laitteita samalla osoitteella, mikä tekee siitä arvokkaan työkalun monimutkaisille projekteille. Kokeile erilaisia laitteita ja kokoonpanoja sen koko potentiaalin avaamiseksi!