PCA9548A 8-Channel I2C Switch Multiplexer Arduino

Posted on


PCA9548A I2C Multiplexer

IC PCA9548A adalah sebuah switch I2C 8 saluran yang memungkinkan kita untuk menggunakan banyak perangkat I2C, meskipun menggunakan alamat yang sama. Dalam artikel ini, kita akan belajar cara menggunakan IC PCA9548A 8-Channel I2C Switch yang di kontrol oleh Arduino board serta memberikan contoh kodingannya.

Spesifikasi IC PCA9548A

  • Jumlah Saluran: 8 saluran
  • Protokol Komunikasi: I2C (Inter-Integrated Circuit)
  • Tegangan Kerja: 2.3V hingga 5.5V
  • Arus Keluaran Saluran: 10mA


PCA9548A Pinout dan Alamat

GambarPenjelasan
PCA9548A 8-Channel I2C Switch dengan Arduino

SD0, SC0 hingga SD7, SC7
Pin-pin ini adalah saluran data (SD) dan saluran clock (SC) untuk masing-masing saluran 0 hingga 7 pada IC PCA9548A. Pin-pin ini terhubung ke perangkat slave yang ingin Anda kendalikan menggunakan saluran yang sesuai.
VIN
Pin ini untuk memberikan tegangan operasional ke IC, biasanya sekitar 2.3V hingga 5.5V.

GND
Pin ini terhubung ke ground (tanah) dan merupakan referensi tegangan nol untuk IC.

SDA SCL
Pin-pin ini adalah saluran komunikasi I2C. SDA (Serial Data) sedangkan SCL (Serial Clock).

RST (opsional)
Pin ini adalah pin reset, yang dapat digunakan untuk mereset atau mengaktifkan kembali IC PCA9548A.

A0, A1, A2
Pin-pin berfungsi untuk menentukan alamat IC PCA9548A. Konfigurasi alamat sebagai berikut:

PCA9548A 8-Channel I2C Switch dengan Arduino


Rangkaian Dasar

Untuk menggunakan IC PCA9548A dengan Arduino, berikut ini adalah rangkaian yang diperlukan:

Pin IC PCA9548AKoneksi ke ArduinoPerangkat I2C
VCC5VVCC
GNDGNDGND
SDASDA
SCLSCL
RSTPin Reset
A0Low
A1Low
A2Low
SD0 – SD7SDA
SC0 – SC7SCL


Kode Program

Contoh Penggunaan dengan Arduino Berikut adalah contoh penggunaan IC PCA9548A dengan Arduino untuk mengontrol dua perangkat slave, masing-masing terhubung ke saluran 0 dan saluran 1:

#include <Wire.h>

byte pca9548aAddress = 0x70;

void setup() {
  Wire.begin(); // Inisialisasi Wire library
}

void loop() {
  // Memilih saluran 0
  selectChannel(0);
  // Tambahkan kode program untuk mengambil dari atau kirim data ke Perangkat I2C
  // yang terhubung ke saluran SDA0 SCL0

 // Memilih saluran 1
  selectChannel(1);
  // Tambahkan kode program untuk mengambil dari atau kirim data ke Perangkat I2C
  // yang terhubung ke saluran SDA1 SCL1

selectChannel(2);

selectChannel(3);

selectChannel(4);

selectChannel(5);

selectChannel(6);

selectChannel(7);
}

void selectChannel(byte channel) {
  Wire.beginTransmission(pca9548aAddress);
  Wire.write(1 << channel);
  Wire.endTransmission();
}

Sekarang silahkan uploda kode diatas ke Arduino board anda. Dengan menggunakan IC ini, kitaa dapat mengontrol multiple slave devices dengan menggunakan saluran I2C yang berbeda-beda.

Catatan: Pastikan untuk mengacu pada dokumentasi resmi IC PCA9548A dan Arduino serta melakukan pengujian untuk memastikan kecocokan dengan konfigurasi dan kebutuhan spesifik Anda.