I have an air compressor that I often give difficult tasks, where the compressor needs to run longer than it was designed for. So it gets close to overheating, which requires periodically giving the compressor some "cool down" time, turned off.

Rather than walk into my garage every couple of minutes to turn the compressor on or off, I'd like to automate the process with a little arduino board.

The problem is the compressor is run by a 25A 12V DC line. Most relays I can find that are Arduino compatible (3.3v DC control) max out at 10A.

I'm curious if there is a smart way to do this efficiently. Two solutions that come to mind are:

  1. Control 3 or 4 10A relays with the Arduino, and parallelize the current heading to the compressor across multiple relays.

  2. Use one relay controlled by the Arduino, and use that relay to control a secondary big relay, that could control the 25A line.

Neither seems like a very efficient approach to the problem. I don't know for certain but I worry that perhaps with (1), one relay might be a better conductor than the others, so perhaps one might eventually see a cascade of overheating relays.

Perhaps someone here that's more familiar with circuit design could suggest a better approach.

edit: After a little digging it looks like option (2) is the standard route most often traveled.

enter image description here

This is an OMRON relay that is powered by a 12VDC supply (0.167A), and can switch a 28VDC 30A line. So I will double relay it, using an Adafruit featherwing to switch the 12VDC supply, which will then switch this big OMRON relay. In my pile of old AC/DC converters I found a 1A 12V supply that's sufficient to run the OMRON relay. Provided I haven't overlooked anything this is likely a decent solution.

  • 1
    (3) use some power mosfet + it's protection (but it might need some gate driver circut also)
    – KIIV
    Dec 10, 2021 at 8:11
  • The problem with (1) is actually that you will not be able to make all the relays close at the precise same moment, so one 10A relay will get the full 25A through it before the rest turn on. Baaaaaaaad! As KIIV says: use a MOSFET (or bank of MOSFETs).
    – Majenko
    Dec 10, 2021 at 10:45
  • Some folks sell a 30A logic level MOSFET RFP30N06LE or FQP30N06L for $0.95.
    – Dave X
    Dec 10, 2021 at 19:56
  • @DaveX: What is the role of the MOSFET? I'm guessing you are suggesting that it would effectively replace the intermediate relay. i.e. the arduino would trigger the MOSFET that would produce the 12V 0.167A signal to the big relay? If so, I think maybe a different MOSFET is in order. Dec 10, 2021 at 20:19
  • A MOSFET is an electronic switch that can replace a relay. The RFP30N06LE can replace a 30A 60V relay and be driven by the logic level produced by an arduino. The 'logic level' feature is important, because normal MOSFETs might only be partially on with a 5V or 3.3V output, while logic-level MOSFETs are fully on. Depending on the load, it might need a heatsink. Better MOSFETs have lower Rd_on, wasting lower heat.
    – Dave X
    Dec 10, 2021 at 21:11

1 Answer 1


Do not double relay it (at least not parallel aka Option 1). Relays have a tendancy to bounce or take time. This exposes you to a potential for only one relay to be connected for a time. Worse, if someone decides to use the relays as high, low instead of closed, open it will short high to low for a time.

The series relay solution is sound but not efficient. Relays are almost never the efficient approach (there are cases where infrequent switching occurs where a relay simply holding a position without power for long durations can be efficient). A relay module is essentially a mosfet and a relay. Mosfet controls the coil, and if you will have one of those, might as well go for a 12V mosfet of appropriate amperage. I used to have some arduino compatible 3D printer heat bed mosfets that went up to 25A (on paper) so I can't imagine they're impossible to obtain.

You also mention digging power supplies for your relay. If you are going so far as to need a 12V power supply, is there one providing for the compressor itself? If so, could you just control the wall outlet AC that powers the supply? Amperage would be a lot lower and AC can allow use of some rather nifty "Solid State Relay" devices (as well as relay modules, smart outlets, etc).

  • Thanks. I'll have to learn how to use mosfets. I think I knew more about circuits maybe 20-25 years ago. Re-learning things in my 40's. I find with little electronic devices like mosfets and transistors, it takes me a while to learn what the jargon means. There is the "signal" current, and the other current, I'm not sure what it's name is. But I'm slowly relearning the jargon. Dec 14, 2021 at 7:18
  • Now searching on Digi-Key I'm confronted with yet more jargon. "Drain to source" voltage and "Drive voltage" ... and N-channel and P-channel. Dec 14, 2021 at 7:24
  • Perhaps I could use a TIP120 to trip the 12V, 0.167A relay from my Arduino? Dec 14, 2021 at 8:10
  • Regarding "do not double relay it", that's exactly what I've been doing. As I mentioned, I'm using this to power an electric motor (4500 psi air pump). It was working great until my air tank got to about the 4200 psi range. At this point the pictured OMRON relay started turning on and off rapidly. Not certain what's going on there, but the current demand of the compressor was getting so high that I think there was some sort of feedback loop on the circuit, perhaps causing the smaller relay (connected to the arduino) to cut out. Dec 14, 2021 at 9:20
  • 1
    I went with the solid state relay. Seems to be working perfectly. Dec 28, 2021 at 19:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.