Skip to content

All items ship from our office in Colorado USA - $4.95 Flat-Rate US shipping & free shipping on orders over $75!

4-Channel 5V 10A SPDT Power Relay Module User Guide

4-Channel 5V 10A SPDT Power Relay Module User Guide - Envistia Mall

📋 Overview

This 4-channel 5V relay module lets you use a low-power microcontroller — like an Arduino, Raspberry Pi, ESP32, or PIC — to switch high-power AC or DC loads up to 250V AC at 10A per channel. Each channel uses a Single-Pole Double-Throw (SPDT) relay, giving you access to both Normally Open (NO) and Normally Closed (NC) contacts for maximum wiring flexibility.

This is the direct-drive model without optocoupler isolation. It has a single 6-pin input header (GND, IN1, IN2, IN3, IN4, VCC) and does not include a JD-VCC jumper or optoisolator circuitry. The control pins connect through a transistor driver directly to the relay coils, making wiring simple — just connect your microcontroller's digital output pins to IN1–IN4, and you're ready to switch loads.

The inputs are active low, meaning you pull a control pin LOW (to ground) to energize the relay and turn it ON. Each channel has a red status LED that lights up when its relay is activated.

⚠️ Safety Warning: This module can switch mains-level AC voltages (up to 250V AC). High-voltage AC can cause serious injury or death. If you are not experienced with high-voltage wiring, please consult a qualified electrician. Always disconnect power before making or changing any high-voltage connections.


⭐ Key Features

  • 4 Independent Channels: Control up to four separate high-power devices from a single module
  • SPDT Relay Contacts: Each relay provides COM, NO (Normally Open), and NC (Normally Closed) terminals for flexible wiring
  • Active Low Inputs: Pull the input pin LOW to activate the relay — compatible with most microcontrollers
  • High-Power Switching: Each channel rated for 250V AC / 10A, 125V AC / 15A, or 30V DC / 10A
  • 5V Control Logic: Powered and controlled directly from a 5V microcontroller — no external relay power supply needed
  • LED Status Indicators: Each channel has a red LED that illuminates when the relay is activated
  • Simple 6-Pin Interface: Single input header with GND, VCC, IN1, IN2, IN3, IN4 — easy to wire
  • Screw Terminals: Secure, tool-tightened connections for high-power load wiring
  • Mounting Holes: Four 3.1mm mounting holes for secure installation

📊 Specifications

Parameter Value
Number of Channels 4
Relay Type SPDT (Single-Pole Double-Throw)
Control Signal Active Low (LOW = relay ON)
Control Voltage 5V DC
Control Current 50–60 mA per channel
Max Switching Voltage (AC) 250V AC
Max Switching Voltage (DC) 30V DC
Max Switching Current 10A (250V AC / 30V DC), 15A (125V AC)
Relay Contacts COM, NO (Normally Open), NC (Normally Closed)
Optocoupler Isolation No (direct transistor drive)
Status Indicators 4 × Red LEDs (one per channel, lit when relay is active)
Input Connector 6-pin header (GND, VCC, IN1, IN2, IN3, IN4)
Mounting Holes 4 × 3.1mm diameter
Board Dimensions Approx. 76 × 56 × 17 mm (3.0 × 2.2 × 0.67 inches) L × W × H
Weight Approx. 60g

📌 Pinout

Input Header (6-Pin)

The input side of the module has a single 6-pin header for connecting to your microcontroller:

Pin Label Description
1 GND Ground — connect to your microcontroller's GND
2 VCC 5V power input — powers the relay coils and control circuitry
3 IN1 Control input for Relay 1 (active low)
4 IN2 Control input for Relay 2 (active low)
5 IN3 Control input for Relay 3 (active low)
6 IN4 Control input for Relay 4 (active low)

Output Terminals (Per Relay Channel)

Each of the four relays has a 3-position screw terminal block on the output side:

Terminal Label Description
1 COM Common — connect your power source or load here
2 NO Normally Open — disconnected from COM when relay is OFF; connected when relay is ON
3 NC Normally Closed — connected to COM when relay is OFF; disconnected when relay is ON

💡 Tip: Most projects use the NO (Normally Open) terminal. In this configuration, your load is OFF by default and turns ON when you activate the relay. Use the NC (Normally Closed) terminal if you need the load to be ON by default and turn OFF when the relay is activated.


🔧 How It Works

Active Low Logic

This module uses active low logic. Here's what that means in practice:

  • Input pin HIGH (5V or floating): The relay is OFF — the NO contact is open (disconnected from COM)
  • Input pin LOW (0V / GND): The relay is ON — the NO contact closes (connects to COM), and the channel's red LED lights up

This works because the indicator LED and the transistor driver on each channel are connected to VCC on one side. When you pull the input pin LOW, current flows through the LED and transistor base, which switches the transistor ON and energizes the relay coil.

SPDT Relay Operation

Each relay is a Single-Pole Double-Throw (SPDT) switch with three terminals:

  • Relay OFF (input HIGH): COM is connected to NC, and NO is disconnected
  • Relay ON (input LOW): COM switches to NO, and NC is disconnected

You'll hear an audible "click" when the relay switches states — that's the mechanical armature moving inside the relay. This is completely normal.


🔌 Wiring to Arduino

Basic Wiring

Connect the relay module to your Arduino as follows:

Relay Module Pin Arduino Pin
GND GND
VCC 5V
IN1 Digital Pin 7
IN2 Digital Pin 6
IN3 Digital Pin 5
IN4 Digital Pin 4

⚠️ Important: Each relay channel draws 50–60 mA from the 5V supply. With all four channels active simultaneously, the module draws approximately 200–240 mA. If you're powering the Arduino via USB, this is within the USB port's current capacity, but it's close to the limit. For reliable operation with all four relays active at once, consider powering the Arduino with an external 7–12V power supply through the barrel jack, which provides more current through the 5V regulator.

Load Wiring (Output Side)

To connect a load (such as a lamp, fan, or motor) to a relay channel:

  1. Connect one wire from your power source to the COM terminal of the relay
  2. Connect a wire from the NO terminal to one terminal of your load
  3. Connect the other terminal of your load back to the other wire of your power source, completing the circuit

⚠️ Safety Warning: When wiring AC mains loads (110V/220V), always ensure the power is completely disconnected before making any connections. Use properly rated wire gauges for the current you're switching. Secure all screw terminal connections tightly to prevent arcing. If you're unsure, consult a qualified electrician.


🔋 Power Requirements

This module is powered entirely from the 5V VCC pin on the input header. There is no separate relay power supply pin or jumper on this model.

Condition Current Draw
All relays OFF ~10 mA (LEDs and logic only)
1 relay ON ~60–70 mA
2 relays ON ~120–130 mA
3 relays ON ~180–190 mA
4 relays ON ~240–250 mA

💡 Tip: If you experience unreliable relay switching or your microcontroller resets when relays activate, the most common cause is insufficient power. Use an external 5V power supply rated for at least 500 mA connected to the module's VCC and GND pins, and also connect the GND to your microcontroller's GND to maintain a common ground reference.


🚀 Getting Started with Arduino

Example 1: Basic Relay Toggle

This sketch turns each relay ON and OFF in sequence, one at a time, with a 1-second delay between each. It's a great way to verify that all four channels are working correctly.

// 4-Channel Relay Module - Basic Toggle Test
// Active LOW: digitalWrite(pin, LOW) = Relay ON
// Active LOW: digitalWrite(pin, HIGH) = Relay OFF

const int relay1 = 7;
const int relay2 = 6;
const int relay3 = 5;
const int relay4 = 4;

void setup() {
  // Set relay pins as outputs
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);

  // Start with all relays OFF (HIGH = OFF for active low)
  digitalWrite(relay1, HIGH);
  digitalWrite(relay2, HIGH);
  digitalWrite(relay3, HIGH);
  digitalWrite(relay4, HIGH);
}

void loop() {
  // Turn each relay ON one at a time
  digitalWrite(relay1, LOW);   // Relay 1 ON
  delay(1000);
  digitalWrite(relay1, HIGH);  // Relay 1 OFF
  delay(500);

  digitalWrite(relay2, LOW);   // Relay 2 ON
  delay(1000);
  digitalWrite(relay2, HIGH);  // Relay 2 OFF
  delay(500);

  digitalWrite(relay3, LOW);   // Relay 3 ON
  delay(1000);
  digitalWrite(relay3, HIGH);  // Relay 3 OFF
  delay(500);

  digitalWrite(relay4, LOW);   // Relay 4 ON
  delay(1000);
  digitalWrite(relay4, HIGH);  // Relay 4 OFF
  delay(500);
}

Example 2: Control Relays via Serial Monitor

This sketch lets you turn individual relays ON or OFF by sending commands through the Arduino Serial Monitor. Send 1ON to turn on Relay 1, 1OFF to turn it off, and so on for relays 2–4. Send ALLON or ALLOFF to control all relays at once.

// 4-Channel Relay Module - Serial Control
// Open Serial Monitor at 9600 baud
// Commands: 1ON, 1OFF, 2ON, 2OFF, 3ON, 3OFF, 4ON, 4OFF, ALLON, ALLOFF

const int relayPins[] = {7, 6, 5, 4};
const int numRelays = 4;

void setup() {
  Serial.begin(9600);

  for (int i = 0; i < numRelays; i++) {
    pinMode(relayPins[i], OUTPUT);
    digitalWrite(relayPins[i], HIGH);  // All relays OFF
  }

  Serial.println("4-Channel Relay Controller Ready");
  Serial.println("Commands: 1ON, 1OFF, 2ON, 2OFF, 3ON, 3OFF, 4ON, 4OFF");
  Serial.println("          ALLON, ALLOFF");
}

void loop() {
  if (Serial.available() > 0) {
    String command = Serial.readStringUntil('\n');
    command.trim();
    command.toUpperCase();

    if (command == "ALLON") {
      for (int i = 0; i < numRelays; i++) {
        digitalWrite(relayPins[i], LOW);
      }
      Serial.println("All relays ON");
    }
    else if (command == "ALLOFF") {
      for (int i = 0; i < numRelays; i++) {
        digitalWrite(relayPins[i], HIGH);
      }
      Serial.println("All relays OFF");
    }
    else {
      // Parse relay number and state
      int relayNum = command.charAt(0) - '0';
      String state = command.substring(1);

      if (relayNum >= 1 && relayNum <= 4) {
        if (state == "ON") {
          digitalWrite(relayPins[relayNum - 1], LOW);
          Serial.print("Relay ");
          Serial.print(relayNum);
          Serial.println(" ON");
        }
        else if (state == "OFF") {
          digitalWrite(relayPins[relayNum - 1], HIGH);
          Serial.print("Relay ");
          Serial.print(relayNum);
          Serial.println(" OFF");
        }
        else {
          Serial.println("Invalid command. Use: 1ON, 1OFF, etc.");
        }
      }
      else {
        Serial.println("Invalid relay number. Use 1-4.");
      }
    }
  }
}

🎯 Typical Applications

  • Home Automation: Control lights, fans, heaters, and appliances from a microcontroller or IoT platform
  • Irrigation Systems: Switch solenoid valves for automated watering schedules
  • Industrial Control: Activate motors, pumps, or solenoids in automation projects
  • Robotics: Control high-power motors or actuators from a low-power controller
  • IoT Projects: Combine with Wi-Fi modules (ESP8266/ESP32) for remote control of appliances
  • Automotive: Switch 12V accessories like lights, horns, or cooling fans
  • Lab & Test Equipment: Automate switching of test loads or power supplies
  • Security Systems: Control door locks, alarms, or sirens

💡 Tips & Best Practices

  • Initialize pins HIGH in setup(): Since the module is active low, setting all relay pins HIGH in your setup() function ensures all relays start in the OFF state when your microcontroller boots up
  • Use a flyback diode for inductive loads: If you're switching motors, solenoids, or other inductive loads on the DC side, add a flyback diode across the load to protect against voltage spikes. The relay module has built-in flyback diodes across the relay coils, but your external load may need its own protection
  • Keep high-voltage and low-voltage wiring separated: Route your AC mains wiring away from the low-voltage control wiring to reduce electromagnetic interference
  • Don't exceed the rated current: The relays are rated for 10A at 250V AC. Exceeding this can damage the relay contacts or cause overheating. For higher-current loads, use a contactor controlled by the relay
  • Secure your screw terminal connections: Loose connections on the high-voltage side can cause arcing, overheating, and fire. Tighten all screw terminals firmly
  • Consider relay contact bounce: Mechanical relays exhibit contact bounce (rapid on/off transitions) for a few milliseconds when switching. For most applications this doesn't matter, but for sensitive timing circuits, add a small delay after switching
  • Use external power for multiple relays: If you're running all four relays simultaneously, an external 5V supply (500 mA or more) is recommended to avoid overloading your microcontroller's voltage regulator

🛠️ Troubleshooting

Problem Possible Cause Solution
Relay doesn't click or LED doesn't light Input pin is HIGH instead of LOW Remember this module is active LOW — use digitalWrite(pin, LOW) to turn the relay ON
Relay doesn't click or LED doesn't light No power to the module Verify 5V is connected to VCC and GND is connected to your microcontroller's GND
Relay clicks but load doesn't switch Load wiring issue Check that your load is wired to COM and NO (or NC) terminals. Verify the load's power source is connected and working
Arduino resets when relay activates Insufficient power supply current Use an external 5V power supply for the relay module, or power the Arduino via the barrel jack with a 7–12V adapter
Relay turns ON at startup Pin not initialized to HIGH Add digitalWrite(pin, HIGH) in your setup() function before or immediately after pinMode(pin, OUTPUT)
Intermittent relay operation Loose connections Check all jumper wire connections on the input header and tighten all screw terminals on the output side
LED lights but relay doesn't click Insufficient current from VCC The relay coil needs 50–60 mA per channel. Ensure your 5V source can supply enough current for all active channels
Electrical noise or interference Inductive load back-EMF Add a snubber circuit or flyback diode across inductive loads (motors, solenoids). Keep high-voltage wiring away from signal wires

⚠️ Important Notes

  • This module does NOT have optocoupler isolation. The control inputs are connected to the relay driver transistors without galvanic isolation. This means electrical noise from the relay coils or high-voltage loads could potentially affect your microcontroller. For applications where isolation is critical, consider the optocoupler-isolated version of this module.
  • Active Low operation: This is the most common point of confusion. LOW = ON, HIGH = OFF. If your relays seem to work "backwards," double-check that you're using the correct logic in your code.
  • Not suitable for PWM or rapid switching: Mechanical relays have a limited switching lifespan (typically 100,000 cycles) and a switching speed of about 10ms. Do not use PWM signals to control these relays. For high-speed or high-frequency switching, use solid-state relays (SSRs) or MOSFETs instead.
  • Relay coil voltage spikes: The module includes flyback diodes across the relay coils to suppress voltage spikes when the coils de-energize. No external protection is needed for the coil side.
  • Maximum ratings are absolute maximums: For long-term reliability, operate the relays at no more than 80% of their rated current (8A at 250V AC). Continuous operation at maximum ratings will shorten relay contact life.
  • 3.3V microcontrollers: This module is designed for 5V logic. While some 3.3V microcontrollers (like ESP32 or Raspberry Pi) may be able to trigger the relay through the transistor driver, reliable operation is not guaranteed at 3.3V. If using a 3.3V controller, test thoroughly or use a logic level shifter.

📡 Compatible With

  • Arduino Uno, Mega, Nano, Leonardo, and other 5V Arduino boards
  • Raspberry Pi (via 5V pin and GPIO — note: Pi GPIO is 3.3V, may need level shifting)
  • ESP32 / ESP8266 (3.3V logic — test reliability or use a level shifter)
  • STM32, PIC, AVR, ARM, MSP430, and other 5V-compatible microcontrollers
  • Any digital output capable of sinking current to ground at 5V logic levels

🏪 Where to Buy the 4 Channel SPDT Power Relay Module

This 4-Channel 5V Relay Module can be purchased at the Envistia Mall website:

250V/10A 4 Channel SPDT Power Relay Module 5V Control →

  • 📦 Fast US Shipping
  • 🔄 Hassle-Free Returns
  • 📧 Responsive Customer Support

📚 Resources & Downloads


This guide is provided by Envistia Mall for educational and technical reference purposes. The manufacturer and Envistia LLC (dba Envistia Mall) are not responsible for any damages or losses resulting from the use of this product. Always follow proper electrical safety practices when working with electronic components. Specifications are based on manufacturer data and are subject to change without notice.

Share this guide:
in

🛒 Related Products

Find the components mentioned in this guide in our store.

Browse Products →