TCA9548A adalah multiplexer I2C yang memungkinkan Anda untuk menghubungkan beberapa perangkat dengan alamat I2C yang sama ke ARDUINO tunggal. Ini mencapai ini dengan membuat hingga delapan bus I2C terpisah, yang dapat diakses secara individual. Tutorial ini akan memandu Anda melalui antarmuka dan menggunakan TCA9548A dengan Arduino untuk mengelola beberapa perangkat I2C.
Apa yang Anda Butuhkan
- Modul multiplexer TCA9548A I2C
- Dewan Arduino (mis., Uno, mega, nano)
- Perangkat I2C (mis., Sensor, tampilan)
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan IDE Arduino diinstal
Langkah 1: Memahami TCA9548A
TCA9548A dapat mengendalikan hingga 8 bus I2C independen (saluran). Setiap saluran dapat dihidupkan atau dimatikan untuk mengisolasi perangkat dengan alamat yang sama.
Pinout
Pin | Fungsi |
---|---|
Vcc | Catu daya (3.3V/5V) |
Gnd | Tanah |
SDA | Jalur data I2C |
Scl | I2C Clock Line |
SDX/SCX | Bus I2C individu (0-7) |
A0, A1, A2 | Konfigurasi alamat |
Konfigurasi Alamat I2C
- Alamat I2C TCA9548A ditentukan oleh pin A0, A1, dan A2:
- Semua pin untuk GND:
0x70
(alamat default) - Kombinasi tinggi dan rendah dapat mengatur alamat dari
0x70
ke0x77
.
- Semua pin untuk GND:
Langkah 2: Kabel TCA9548A ke Arduino
Hubungkan TCA9548A ke Arduino
Pin TCA9548A | Pin Arduino |
---|---|
Vcc | 5v |
Gnd | Gnd |
SDA | A4 |
Scl | A5 |
Hubungkan perangkat I2C ke TCA9548A
- Hubungkan garis SDA dan SCL dari perangkat I2C Anda ke pin SDX dan SCX yang sesuai di TCA9548A.
- Pastikan pin VCC dan GND perangkat juga terhubung.
Langkah 3: Instal perpustakaan yang diperlukan
Untuk menyederhanakan bekerja dengan TCA9548A, instal Perpustakaan "Kawat" (diinstal sebelumnya dalam IDE Arduino).
Jika Anda lebih suka perpustakaan agar lebih mudah ditangani, Anda dapat menggunakan Adafruit TCA9548A perpustakaan:
Langkah untuk menginstal:
- Buka Ide Arduino.
- Pergi ke Sketsa > Sertakan perpustakaan > Kelola Perpustakaan.
- Cari "Adafruit TCA9548A" dan klik Memasang.
Langkah 4: Unggah kode
Contoh berikut menunjukkan cara memilih bus I2C tertentu dan berkomunikasi dengan perangkat:
Kode contoh
#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
}
Langkah 5: Berkomunikasi dengan perangkat di setiap saluran
Untuk berkomunikasi dengan perangkat di saluran tertentu, hubungi tcaSelect(bus)
Fungsi sebelum memulai komunikasi I2C. Misalnya:
Membaca Data dari Sensor
#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);
}
}
Aplikasi TCA9548A
- Mengelola beberapa perangkat I2C yang identik (mis., Beberapa sensor dengan alamat yang sama).
- Memperluas perangkat I2C dalam suatu proyek.
- Mengurangi kompleksitas kabel dalam sistem besar.
Pemecahan masalah
- Tidak ada tanggapan dari perangkat: Pastikan bus I2C yang benar dipilih dan periksa kabelnya.
- Mengatasi konflik: Verifikasi alamat I2C perangkat yang terhubung untuk menghindari konflik.
- Pergantian bus yang salah: Pastikan alamat TCA9548A dikonfigurasi dengan benar dan cocok dengan kode.
Kesimpulan
Anda telah berhasil menghubungkan multiplexer TCA9548A I2C dengan Arduino. Modul yang kuat ini memungkinkan Anda untuk menghubungkan dan mengontrol beberapa perangkat I2C dengan alamat yang sama, menjadikannya alat yang berharga untuk proyek yang kompleks. Bereksperimenlah dengan perangkat dan konfigurasi yang berbeda untuk membuka kunci potensi penuhnya!