Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use RelayModule14ChannelI2C: Examples, Pinouts, and Specs

Image of RelayModule14ChannelI2C
Cirkit Designer LogoDesign with RelayModule14ChannelI2C in Cirkit Designer

Introduction

The RelayModule14ChannelI2C is a versatile 14-channel relay module designed for controlling high-voltage devices through a low-voltage microcontroller interface. It features an I2C communication interface, making it easy to integrate with popular microcontrollers like Arduino, Raspberry Pi, and others. Each relay can independently switch devices such as lights, motors, or other high-power appliances, making it ideal for home automation, industrial control, and robotics applications.

Explore Projects Built with RelayModule14ChannelI2C

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Wi-Fi Controlled Smart Relay Switch with ESP8266 and MCP23017
Image of Bed Room: A project utilizing RelayModule14ChannelI2C in a practical application
This circuit is designed to control an 8-channel relay module via an ESP8266 microcontroller, which interfaces with an MCP23017 I/O expander over I2C. The ESP8266 connects to a WiFi network and subscribes to MQTT topics to receive commands for toggling the relays. Additionally, there are toggle switches connected to the MCP23017 that allow manual control of the relays, with the system's state being reported back via MQTT.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
Image of Indoor Lounge: A project utilizing RelayModule14ChannelI2C in a practical application
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled Smart Relay with APDS-9960 Gesture Sensor
Image of contactless smart switch: A project utilizing RelayModule14ChannelI2C in a practical application
This circuit features an Arduino Nano microcontroller interfaced with an Adafruit APDS-9960 sensor and a 2-channel relay module. The APDS-9960 sensor, which is capable of gesture detection, is connected to the Arduino via I2C communication lines (SCL, SDA) and powered by the Arduino's 3.3V output. The relay module is controlled by the Arduino through a digital pin (D7) and is used to switch an AC-powered bulb on and off, with the relay's common (COM) terminal connected to the AC source and the normally open (NO1) terminal connected to the bulb.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Automated Plant Watering System with Soil Moisture Sensing and RTC Scheduling
Image of penyiraman otomatis: A project utilizing RelayModule14ChannelI2C in a practical application
This circuit features an ESP32 microcontroller connected to a soil moisture sensor, a DS1307 real-time clock (RTC), and a 5V relay module. The ESP32 reads the soil moisture level and can control the relay based on time or moisture data, while the RTC provides accurate timekeeping. The relay can be used to switch external devices, potentially for plant watering systems, and the ESP32 communicates with the RTC via I2C protocol (SDA/SCL lines).
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with RelayModule14ChannelI2C

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Bed Room: A project utilizing RelayModule14ChannelI2C in a practical application
Wi-Fi Controlled Smart Relay Switch with ESP8266 and MCP23017
This circuit is designed to control an 8-channel relay module via an ESP8266 microcontroller, which interfaces with an MCP23017 I/O expander over I2C. The ESP8266 connects to a WiFi network and subscribes to MQTT topics to receive commands for toggling the relays. Additionally, there are toggle switches connected to the MCP23017 that allow manual control of the relays, with the system's state being reported back via MQTT.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Indoor Lounge: A project utilizing RelayModule14ChannelI2C in a practical application
ESP32 and MCP23017-Based Smart Relay Control System with DHT22 Sensors
This circuit is a control system that uses an ESP32 microcontroller to manage multiple relays and read data from DHT22 temperature and humidity sensors. The DFRobot Gravity MCP23017 I2C module expands the GPIO capabilities of the ESP32, allowing it to control additional relays for switching high-power devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of contactless smart switch: A project utilizing RelayModule14ChannelI2C in a practical application
Arduino Nano Controlled Smart Relay with APDS-9960 Gesture Sensor
This circuit features an Arduino Nano microcontroller interfaced with an Adafruit APDS-9960 sensor and a 2-channel relay module. The APDS-9960 sensor, which is capable of gesture detection, is connected to the Arduino via I2C communication lines (SCL, SDA) and powered by the Arduino's 3.3V output. The relay module is controlled by the Arduino through a digital pin (D7) and is used to switch an AC-powered bulb on and off, with the relay's common (COM) terminal connected to the AC source and the normally open (NO1) terminal connected to the bulb.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of penyiraman otomatis: A project utilizing RelayModule14ChannelI2C in a practical application
ESP32-Based Automated Plant Watering System with Soil Moisture Sensing and RTC Scheduling
This circuit features an ESP32 microcontroller connected to a soil moisture sensor, a DS1307 real-time clock (RTC), and a 5V relay module. The ESP32 reads the soil moisture level and can control the relay based on time or moisture data, while the RTC provides accurate timekeeping. The relay can be used to switch external devices, potentially for plant watering systems, and the ESP32 communicates with the RTC via I2C protocol (SDA/SCL lines).
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Home automation systems (e.g., controlling lights, fans, or appliances)
  • Industrial equipment control
  • Robotics and mechatronics
  • Smart agriculture systems
  • IoT projects requiring multiple high-voltage device control

Technical Specifications

Key Technical Details

  • Number of Channels: 14
  • Control Interface: I2C (2-wire communication)
  • Operating Voltage: 5V DC
  • Relay Voltage Rating: 250V AC / 30V DC (max)
  • Relay Current Rating: 10A (max)
  • I2C Address Range: Configurable via jumpers (default: 0x20)
  • Power Consumption: ~70mA per active relay
  • Dimensions: 140mm x 90mm x 20mm
  • Isolation: Optocoupler isolation for each relay channel
  • Operating Temperature: -40°C to 85°C

Pin Configuration and Descriptions

I2C Interface Pins

Pin Name Description
SDA I2C Data Line
SCL I2C Clock Line
VCC Power Supply (5V DC)
GND Ground

Relay Output Terminals

Each relay channel has three terminals:

Terminal Name Description
NO (Normally Open) Open circuit when the relay is inactive. Closes when activated.
COM (Common) Common terminal for the relay switch.
NC (Normally Closed) Closed circuit when the relay is inactive. Opens when activated.

Address Configuration Jumpers

Jumper Name Description
A0, A1, A2 Used to set the I2C address of the module.

Usage Instructions

How to Use the Component in a Circuit

  1. Power the Module: Connect the VCC and GND pins to a 5V DC power source.
  2. Connect the I2C Interface: Connect the SDA and SCL pins to the corresponding I2C pins on your microcontroller.
  3. Set the I2C Address: Configure the address using the A0, A1, and A2 jumpers. For example:
    • Leave all jumpers open for the default address (0x20).
    • Close A0 for address 0x21, A1 for 0x22, and so on.
  4. Connect the Load: Attach the high-voltage device to the relay terminals (NO, COM, NC) as per your switching requirements.
  5. Control the Relays: Use I2C commands from your microcontroller to activate or deactivate specific relays.

Important Considerations and Best Practices

  • Ensure the total current drawn by the relays does not exceed the power supply's capacity.
  • Use proper insulation and safety precautions when working with high-voltage devices.
  • Avoid switching inductive loads (e.g., motors) without proper flyback diodes or snubber circuits to protect the relays.
  • Double-check the I2C address to avoid conflicts with other devices on the same bus.

Example Code for Arduino UNO

#include <Wire.h> // Include the Wire library for I2C communication

#define RELAY_MODULE_ADDRESS 0x20 // Default I2C address of the relay module

void setup() {
  Wire.begin(); // Initialize I2C communication
  Serial.begin(9600); // Initialize serial communication for debugging
  Serial.println("Relay Module 14-Channel I2C Example");
}

void loop() {
  // Activate relay 1
  activateRelay(1);
  delay(1000); // Wait for 1 second
  
  // Deactivate relay 1
  deactivateRelay(1);
  delay(1000); // Wait for 1 second
}

// Function to activate a specific relay
void activateRelay(uint8_t relayNumber) {
  if (relayNumber < 1 || relayNumber > 14) {
    Serial.println("Invalid relay number! Must be between 1 and 14.");
    return;
  }
  Wire.beginTransmission(RELAY_MODULE_ADDRESS);
  Wire.write(1 << (relayNumber - 1)); // Set the corresponding relay bit
  Wire.endTransmission();
  Serial.print("Relay ");
  Serial.print(relayNumber);
  Serial.println(" activated.");
}

// Function to deactivate a specific relay
void deactivateRelay(uint8_t relayNumber) {
  if (relayNumber < 1 || relayNumber > 14) {
    Serial.println("Invalid relay number! Must be between 1 and 14.");
    return;
  }
  Wire.beginTransmission(RELAY_MODULE_ADDRESS);
  Wire.write(0); // Clear all relay bits (turn off all relays)
  Wire.endTransmission();
  Serial.print("Relay ");
  Serial.print(relayNumber);
  Serial.println(" deactivated.");
}

Troubleshooting and FAQs

Common Issues Users Might Face

  1. Relays Not Activating:

    • Cause: Incorrect I2C address or wiring.
    • Solution: Verify the I2C address and ensure proper connections for SDA, SCL, VCC, and GND.
  2. High-Voltage Device Not Switching:

    • Cause: Incorrect wiring of the relay terminals.
    • Solution: Double-check the connections to NO, NC, and COM terminals.
  3. Microcontroller Not Detecting the Module:

    • Cause: I2C bus conflict or incorrect pull-up resistors.
    • Solution: Ensure no address conflicts and add 4.7kΩ pull-up resistors to SDA and SCL lines if needed.
  4. Overheating Relays:

    • Cause: Exceeding the relay's current or voltage rating.
    • Solution: Ensure the load does not exceed 10A or 250V AC / 30V DC.

Solutions and Tips for Troubleshooting

  • Use an I2C scanner sketch to confirm the module's address.
  • Test each relay individually to isolate faulty channels.
  • Use a multimeter to verify continuity and proper switching of the relay terminals.
  • Ensure the power supply provides sufficient current for all active relays.