

The RelayModule14ChannelI2C is a versatile 14-channel relay module designed to interface with microcontrollers via the I2C communication protocol. This module allows users to control up to 14 high-power devices, such as lights, motors, or appliances, with minimal wiring and efficient communication. Each relay can handle high current loads, making it ideal for home automation, industrial control systems, and robotics applications.








| Pin Name | Description |
|---|---|
| SDA | I2C Data Line |
| SCL | I2C Clock Line |
| VCC | 5V Power Supply Input |
| GND | Ground |
| Channel | Terminal Name | Description |
|---|---|---|
| 1-14 | COM | Common terminal for the relay |
| 1-14 | NO | Normally Open terminal |
| 1-14 | NC | Normally Closed terminal |
| Jumper Name | Description |
|---|---|
| A0, A1, A2 | Used to set the I2C address (binary configuration) |
#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 Test Starting...");
}
void loop() {
// Turn on all relays
Wire.beginTransmission(RELAY_MODULE_ADDRESS);
Wire.write(0xFF); // Send 0xFF to turn on all relays
Wire.endTransmission();
Serial.println("All relays ON");
delay(2000); // Wait for 2 seconds
// Turn off all relays
Wire.beginTransmission(RELAY_MODULE_ADDRESS);
Wire.write(0x00); // Send 0x00 to turn off all relays
Wire.endTransmission();
Serial.println("All relays OFF");
delay(2000); // Wait for 2 seconds
}
Relays Not Responding:
Relays Clicking but No Load Control:
Microcontroller Not Detecting the Module:
Overheating Relays:
Can I use this module with a 3.3V microcontroller?
How do I change the I2C address?
Can I control individual relays?
Is the module safe for inductive loads?