

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.








| Pin Name | Description |
|---|---|
| SDA | I2C Data Line |
| SCL | I2C Clock Line |
| VCC | Power Supply (5V DC) |
| GND | Ground |
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. |
| Jumper Name | Description |
|---|---|
| A0, A1, A2 | Used to set the I2C address of the module. |
#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.");
}
Relays Not Activating:
High-Voltage Device Not Switching:
Microcontroller Not Detecting the Module:
Overheating Relays: