Introduction: Arduino 2 Channel Relay

Picture of Arduino 2 Channel Relay

This instructable is for connecting your Arduino to a 2 Channel relay module and using your sketch to control the switches.

I bought the 2 Relay Module on eBay (for $9.50) to drive a couple of 240V parts (a vacuum cleaner and a rotary engraving tool) that I'm using with my CNC Etching mill (still under construction). The idea was that the controller of the CNC etching mill would turn both of these devices on when the machine was etching, one to do the etch, while the other sucked up all of the detritus from the etch.

In this instructable, I'm using:

  • Arduino UNO
  • 2 Relay Module
  • 2 LED
  • 2 220 ohm resistors
  • some jumper wires (7 actually)
    • 4 of the jumpers are Male to Female
    • 3 of the jumpers are Male to Male

This instructable does not connect anything to the relays, it just runs them.

Step 1: Wire the Circuit Up

Picture of Wire the Circuit Up
I'm connecting the relay to Analog pins on the Arduino because in my circuit, I'm running low on Digital pins. Analog pins on the Arduino can be used as Digital simply by setting the pinMode appropriately and using digitalWrite to ... digitally write to the pin :p
  • Relay GND > Arduino GND
  • Relay IN1 > Arduino A0
  • Relay IN2 > Arduini A1
  • Relay Vcc > Arduino 5V

I've connected some LED to the circuit to use as indicators, which is a little redundant as the Relay Module also has indicator LED on the board. You can leave these out of the circuit if you want ... although I plan to mount the LED on the project box and I'm not going to use light pipes on the SMD LED.

The LED are connecting to digital 12 and 13. These are connected to ground via 220 ohm resistors.

And there you have it, the Relay module is connected to the Arduino and you are good to go.

Step 2: Sketch It Up

The sketch is downloadable on this page.

The two relays are dimensioned in the top of the sketch:

int RELAY1 = A0;
int RELAY2 = A1;

Note that I am passing A0, A1 as integers ... neat, huh?

In setup() the relays are prepared using pinMode:

pinMode(RELAY1, OUTPUT);

and then set to HIGH using digitalWrite:

digitalWrite(LED1, HIGH);

Depending on how you are connecting your load to the relay NO = Normally Open or NC = Normally Closed, it's a pretty safe idea to ensure that the relay is initially OFF (in my case, that's HIGH).

Test your relay and don't just believe that it's either ON or OFF ... prove it to yourself.

In the loop() we are just switching the state from HIGH to LOW for both of the relays. The relays can be operated independently, so you can use the 2 Relay Module to control two devices independently, maybe in response to 2 different sensors?

In this configuration, the relays are not supplying a load, but they are working. When the relay toggles OPEN and CLOSED, there will be an audible *CLICK* for each transition.

When you have connected the module to the Arduino, uploaded the sketch and powered it up, you'll get a click a second ... unless you change the value of "delayValue" of course.

As mentioned earlier, this is a very simple instructable without many parts and with a fairly terse description.

I'm going to make a garden watering system for my vegetable patch using this circuit with a 120L/hour pump and a simple hygrometer ... I'll show the relay in action in that later instructable.

Good luck and happy/safe play!

Step 3: Relay With Load

Picture of Relay With Load

After a little bit of effort, I cut up an old 5V DC wall wart to make a simple power supply on the relay side of the circuit. To do that, I simply cut the connection from the end of the wall wart, soldered an extension onto the negative lead (to make it longer and with a heat shrink shield). Then I tinned the positive lead and put it into the normally open (NO) screw terminal on the relay (channel 1).

I cut another piece of wire and tinned both ends and put it into the common (C) screw terminal on the relay (channel 1).

The Common lead and the Negative lead were then connected to an 8V lamp (something that I use for circuit testing as it is a good indication of load). Finally, I provided power to the Arduino and, yay, an 8V lamp blinky was born ... "Hello World!"

You may (or may not) notice that I disconnected the redundant LED from the circuit. This circuit has so many applications in home automation and for internet of things jiggery-pokery. Because the relay can handle up to 250V it will be able to control power to any 240V device in the house from lights to audio equipment.

On the other side of the circuit, the Arduino is a 5V device and can interact with 5V (and 3.3V) sensors and digital equipment.

This combination gives rise to a many possibilities from turning the kettle on when the front door opens (who doesn't want a cup of tea or coffee when they get home), sending an email message (with an attached photograph) to you when someone goes into your workshop, watering your precious vegetable patch when the soil moisture level gets too low, how about an automatic alert to a carer when your blood sugar gets too low? You are only limited by your imagination, budget and (to some degree) the availability of sensors.

All Hail The Rise of the Mad Home Scientist!

Comments

JohanM55 (author)2017-06-04

Hi there,

I have a question: If you used only one relay, Why did you use a module with 2 relay? Would I use a only one relay module?

as well I want to know how many lamps Can I turn on/off with one relay module?

Thank you so much!

Pinnaclelarry​ (author)2017-05-02

Thanks for the instructable! Just what I was looking for. I plan on controlling my garden drip irrigation system with an arduino using 2 sensors, a soil moisture sensor and a rain detection sensor, along with a real-time clock module (I don't want it watering between certain hours, regardless of the other sensors). I want to use the relays to turn the sensors on and off, since I do not need them powered all the time, just when I need the data. All the program has to do is check the sensors, then activate a 12 volt water valve. This will be my very first home project, so I was looking for code to independently run the relays. Think this will help a great deal. Just have to find a way to manipulate the data the way it needs to be. Thanks again!

Thanks Pinnaclelarry, I'm only too pleased that you find the instructable useful for your project.

Let me know how you get on!

Cheers Baelzabubba

VasantJ1 (author)2016-12-26

I have a query. The output of the relay is not connected to LED's . The output lines NO and COM should be connected to LED's on breadboard right?. Please clarify.

MiguelR169 (author)VasantJ12017-03-18

for anyone searching for answer check link in instructables

http://www.geeetech.com/wiki/index.php/2-Channel_Relay_module

TimC211 (author)VasantJ12017-02-02

Do you want a follow?

@VasantJ1

excited,

prism_miner

baelza.bubba (author)VasantJ12016-12-27

The LED are connected to the Arduino and are merely indicators, they are not connected to the relay at all. The sketch turns the RELAY1 on and off at the same time that it turns the LED on and off.

I hope this helps!

Kind Regards

Baelzabubba

TimC211 (author)baelza.bubba2017-02-02

kk

TimC211 (author)VasantJ12017-02-02

dunno

TimC211 (author)2017-02-02

To baelza.bubba,

Why doesn't mine work???

Regards,

prism_miner

baelza.bubba (author)TimC2112017-02-02

well ... that's a good question, why doesn't it?

123d4 (author)2016-10-15

Hi,

nice guide, but maybe you want to add that the jumper must be set to JD-VCC to VCC, or nothing will happen with the relay.

TimC211 (author)123d42017-02-02

(no offense)

why are you called 123d4?

Regards,

prism_miner

123d4 (author)TimC2112017-02-02

there is no real reason, it is as good as John5777155 but shorter :)

baelza.bubba (author)123d42016-10-15

G'day 123d4,

Sure, you're right ... the jumper is indeed set to VCC as it needs to be.

SiddarthN (author)2016-10-31

Thanks for your instructable. I am planning to automate my room and this was very helpful. Cheers!

baelza.bubba (author)SiddarthN2016-11-01

Hey SiddarthN,

Excellent, good luck with the automation ;)

Cheers

imalan54 (author)2016-10-06

Great instructable. I just received a 2 relay module and needed to test it out before I put it to use. It works great, and this was a big help since I'm fairly new to Arduino. Buy the way I ran the code on a Arduino Nano V3 without a hitch.

baelza.bubba (author)imalan542016-10-07

Hi imalan54, thanks :) I'm glad to hear it worked out of the box for you! Starting out with Arduino is lots of fun.

Cheers

About This Instructable

45,867views

48favorites

Bio: I have been working in IT since the mid 1980's. Most of that has been database and application development. I've been working on ... More »
More by baelza.bubba:Simple Breadboard Switchable Power SupplyL293D Motor Direction Control for under $2.2012V NE555 PWM Controller Under $3
Add instructable to: