TCA9548A I2C Multiplexer Module 1-to-8 Channel PCA9548A IIC Expansion Board

$7.95 Inc. GST
You save (%)

Quantity Discount (%) Price
1 $7.95
2 - 4 5 % $7.55
5 - 9 7.5 % $7.35
10 - 19 10 % $7.16
20 - 49 12.5 % $6.96
50 - 99 15 % $6.76
100+ 17.5 % $6.56

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:

  1. Select channel 0, read sensor A

  2. Select channel 1, read sensor B

  3. …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

Reviews

There are no reviews yet.


Only logged in customers who have purchased this product may leave a review.