









TCA9548A I2C Multiplexer Module 1-to-8 Channel PCA9548A IIC Expansion Board
$7.95 Inc. GST
You save (%)
- Description
- Code Examples
- Additional information
- Reviews (0)
Description
🧩 TCA9548A I2C Multiplexer Module – 1-to-8 Channel I²C Expansion Board PCA9548A | AuscomTech
Expand your I²C bus the right way with the TCA9548A 1-to-8 Channel I2C Multiplexer Module, perfect for projects where multiple devices share the same I²C address.
This module allows you to connect up to 8 identical I²C sensors or peripherals to a single microcontroller, completely eliminating address conflicts and bus overload.
Whether you’re working with Arduino, ESP32, Raspberry Pi, STM32, or MicroPython, the TCA9548A makes advanced multi-sensor setups far simpler and more reliable.
⚙️ Key Features
🔀 1-to-8 Channel I2C Expansion
-
Routes I²C communication to any of 8 selectable downstream channels
-
Only one I²C device is active on the bus at a time → prevents address conflicts
-
Perfect for:
-
Multiple OLED displays
-
Arrays of sensors (e.g., multiple BME280, MPU6050, MLX90614, ADS1115, etc.)
-
Robotics & automation
-
Data acquisition systems
-
🧠 Simple Control via I²C
The multiplexer itself uses address 0x70–0x77 (configurable via A0–A2).
Just write one byte to choose which downstream channel to enable.
Example:
Write 0x04 → activates channel SC2/SD2
Write 0x80 → activates channel SC7/SD7
🔧 Technical Specifications
| Parameter | Details |
|---|---|
| Chipset | TCA9548A / PCA9548A compatible |
| Supply Voltage | 1.65V–5.5V |
| Logic Level | 3.3V / 5V compatible |
| I²C Address Range | 0x70 – 0x77 |
| Frequency | Up to 400 kHz I²C Fast-Mode |
| Channels | 8 completely isolated downstream buses |
| Reset Pin | Yes (RST pin available) |
| Size | 31.5 × 21.7 mm |
| Weight | 4.20 g |
🌟 Why Use a TCA9548A Multiplexer?
✔ Solve I²C address conflicts
✔ Run long cables with reduced noise
✔ Clean bus management for large sensor networks
✔ Expand up to 64 devices using 8 multiplexers
✔ Compatible with almost every microcontroller platform
If you need more sensors than your microcontroller can natively support — this is the module you want.
🧩 Compatible With
-
Arduino UNO / Mega / Nano
-
ESP8266 / ESP32
-
Raspberry Pi (all models)
-
STM32 / Blue Pill / RP2040
-
BeagleBone
-
MicroPython & CircuitPython
-
Home Assistant (via ESPHome)
📦 Package Includes
-
1 × TCA9548A 1-to-8 I2C Expansion Board (PCA9548A Compatible)
📌 Code Examples – TCA9548A I²C Multiplexer Module
🔧 Overview
The TCA9548A I²C Multiplexer lets you connect up to 8 I²C devices with the same address to a single microcontroller by switching between channels.
-
Uses only 1 I²C bus (SDA/SCL)
-
Each channel can be enabled or disabled independently
-
Works with Arduino, ESP32, Raspberry Pi, etc.
🔌 Wiring (Basic)
| Module Pin | Connect To |
|---|---|
| VCC | 3.3V / 5V (match your board and devices) |
| GND | GND |
| SDA | SDA (e.g., A4 on Arduino Uno) |
| SCL | SCL (e.g., A5 on Arduino Uno) |
| RESET | Optional — tie to 3.3V/5V or GPIO |
Connect your I2C sensor/device outputs to the corresponding pins on each channel.
🛠 Arduino Example (Using Wire)
#include <Wire.h>
// I2C address of TCA9548A (usually 0x70 – check your board)
#define TCAADDR 0x70
// Select the desired channel (0–7)
void tcaSelect(uint8_t channel) {
if (channel > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << channel);
Wire.endTransmission();
}
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
// Example: Read a device on channel 2
Serial.println("Switching to channel 2...");
tcaSelect(2);
// Now your I2C device on channel 2 can be accessed normally.
// Example: scan I2C bus on this channel
Serial.println("I2C Scan for devices:");
for (byte addr = 1; addr < 120; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print("Found device at 0x");
Serial.println(addr, HEX);
}
}
delay(5000);
}
How it works
-
tcaSelect(n)activates channel n (0–7). -
Only one channel can be active at a time.
-
After selecting a channel, your microcontroller will talk to I2C devices connected to that channel.
⚡ ESP32 Example (Using Wire)
#include <Wire.h>
#define TCAADDR 0x70
void tcaSelect(uint8_t channel) {
if (channel > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << channel);
Wire.endTransmission();
}
void setup() {
Serial.begin(115200);
Wire.begin(); // default SDA/SCL pins on ESP32
}
void loop() {
// Cycle through all 8 channels
for (uint8_t ch = 0; ch < 8; ch++) {
Serial.print("Selecting channel ");
Serial.println(ch);
tcaSelect(ch);
delay(500);
}
}
💡 Example: Read Multiple Identical Sensors
If you have multiple sensors with the same I²C address, you can:
-
Select channel 0, read sensor A
-
Select channel 1, read sensor B
-
…and so on
This solves the classic I²C address conflict problem.
📟 Quick I²C Scan Function
You can add this helper to test which devices are present on the selected channel:
void scanI2C() {
Serial.println("Scanning I2C bus...");
for (byte addr = 1; addr < 120; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print("I2C device found at 0x");
Serial.println(addr, HEX);
}
}
Serial.println("Scan complete");
}
📌 Notes & Tips
✔ Make sure your microcontroller and devices share a common GND
✔ Multiplexer VCC should match the sensor voltage levels
✔ Use pull-ups on SDA/SCL if your board/module doesn’t include them
✔ Works great with displays, IMUs, RTC modules, etc.
📎 Example Use Cases
-
Multiple OLED displays with the same address
-
Multiple identical I²C sensors (e.g., BME280/BMP280)
-
Large sensor arrays
-
Plug-and-play robotics / automation systems
Additional information
| Weight | 40 g |
|---|---|
| Dimensions | 260 × 160 × 20 mm |
Only logged in customers who have purchased this product may leave a review.































Reviews
There are no reviews yet.