Basic question about Arduino and relays

Hey all,

I want to use an Ardunio with relays to switch 120VAC lightbulbs on and off. However, on the "constants" page of the "Learning" section on the Arduino site, it says, "The amount of current provided by an Atmega pin is also not enough to power most relays or motors, and some interface circuitry will be required." Its true, I can't find a 120VAC relay that has a turn-on voltage of less than 10VDC.

What is the best way to do this? Should I use two relays, one to step up from the Arduino voltage (5VDC) to somewhere around 30VDC, and then from 30 VDC to 120VAC? In some old posts I searched up, I also saw a lot about power supplies. Am I correct in saying I would need a power supply to supply the 30VDC for the intermediate relay?


Use a transistor - I'm pretty sure there is stuff over at the playground about driving relays via transistors.

There are plenty of 6VDC to 120VAC relays. I Googled "relay 6vdc 120vac" and got pages of hits including this one for $8:,or.r_gc.r_pw.&biw=1280&bih=843&wrapid=tlif130935939299610&um=1&ie=UTF-8&tbm=shop&cid=4117669293599785985&sa=X&ei=LD0LTtPyHcfSiALphvnMAQ&ved=0CHEQ8wIwAw#

if you need more info:

Hi Alexhsia

Another possibility is to look at Solid State Relays (SSR)

Controlled by low voltage. No moving parts.

Search for SSR with 120Vac



Do you have experience with working with mains voltage? If you don’t - then STOP. You need to learn more about what you will be working with, because mains voltage is anything -but- forgiving (true, it isn’t as dangerous as say 440V 3-phase - but we ain’t talking industrial automation, either).

Regardless of whether you have the experience or not, and regardless of whether you use regular relays or solid-state relays - make sure you keep the low-voltage and mains-voltage sections of your wiring (or PCB traces) as separated and well-marked (and color-coded!) as possible. Use standard color coding for the mains-voltage section (look up the colors for the country you are in - it varies) for neutral/common, hot and ground/earth. For the low-voltage (control) side of things, use a different color code (there isn’t a real standard - you could apply the PC color coding of black=ground, red=+5V, yellow=+12 volts, and green/other colors=signal or other uses) - and stick with it for everything.

Believe me - it is no fun hooking things up only to find yourself accidentally grabbing the mains wire that is energized (though why it should be is another issue - never work on a circuit with -any- voltage running through it!) - or plugging in a wire and having mains voltage blowing up (and catching on fire) your Arduino.

Also - are you familiar with the “one-handed” rule when it comes to troubleshooting a circuit? If not, familiarize yourself with it. See this article, under “Safety Basics”:

Lastly - with SSRs, if you want them to handle their rated current, they -will- need to be mounted on a heatsink, if they are designed to be - and generally, any of the SSRs that can handle more than a few amps are designed to be mounted to a heatsink…just something to keep in mind. Electromechanical relays don’t need heatsinks.

Its true, I can't find a 120VAC relay that has a turn-on voltage of less than 10VDC.

Relays have two voltage ratings. The first voltage rating is what the relay coil requires to operate and common choices for DC operated relays are 5vdc, 6vdc, 12vdc, 24vdc and 48vdc. There are also AC operated voltages at 6vac, 12vac, 24vac, 120vac, 220vac.

The second relay voltage rating is for the relay contacts that do the actual switching on and off of the wired load, like your lamp. This second rating is a maximum rating and you need to make sure the contact ratings at at or better yet higher then any load you plan on using. Here is a suitable relay: