I have seen this thread but it wasn't helpful.

Is it possible to connect four 12v/4a motors to one Arduino and control them independently? I'm a beginner to circuits and such - that's the part that's worrying me, not the Arduino code. The Arduino has only one 12v output. How should I go about this?

Edit: Whoops sorry. It has only one 5v output, noob error :/

Also, what if I need to control three of these instead? 12v 500ma Solenoid valves.... should I still be using relays? http://www.ebay.in/itm/1-4-Electric-Solenoid-Valve-12-volt-Air-Water-BBTF-/290578532901

  • \$\begingroup\$ Which type of motors do you want to control: DC, AC, steppers (unipolar/bipolar)? \$\endgroup\$
    – m.Alin
    Jan 15, 2012 at 21:29

2 Answers 2


Your real question is how to control a 12V 4A motor from a 0-5V logic output such as from a arduino.

Probably the simplest way is to use a relay. Use a relay with a 5V coil and a low side NPN to drive it:

This can support relays that take up to 100mA or so to drive, which should be more than enough for relay run from 5V that can switch what you want. The other side of the relay is just like a ordinary switch. You put it in series with the 12V supply and the motor.

There are fancier ways to drive the motor, but this is simple, robust, and meets all the specs you provided.


You now say you want to control a 12V 500mA solenoid in stead of a 12V 4A motor. That is just like driving a relay, except in this case the current is higher and it will be powered from the 12V supply instead of the 5V supply. For the different supply the only change is to connect the high side of the coil and diode to the new supply.

The higher current procludes the relay drive circuit shown above. If bipolar transistors are used, more current gain is required than you can reasonably expect from a single part. This can be dealt with by using two transistors. I would just use a single logic level FET:

However, there are lots of ways to implement a low side switch for 12V and 500mA that is driven from a logic output.

  • \$\begingroup\$ @OllinLathrop Would this method also work with solenoid valves? \$\endgroup\$
    – David
    Jan 15, 2012 at 22:14
  • \$\begingroup\$ @David: Energizing a solenoid is just like energizing a relay, except that your solenoids will require more current and run from 12V. In that case, I'd replace R1 and Q1 with a single logic level FET like IRLML2502, and the top node would be tied to the 12V supply instead of the 5V supply. \$\endgroup\$ Jan 15, 2012 at 22:17
  • \$\begingroup\$ @OllinLathrop Ok. They require 12v, 500ma each though, not 4A each. So I have to buy the IRLML2502 chip as well to control the solenoids :( I can only find a 20v version of that chip on ebay. Is it absolutely required? \$\endgroup\$
    – David
    Jan 15, 2012 at 22:22
  • \$\begingroup\$ @David: As I said, the IRLML2502 is just a FET. It happens to be pretty convenient for what you want to do since it switches very well with 0-5V on the gate and has good on characteristics. It's max voltage is 20V, which is good enough since you want to switch 12V. There are lots of other low side switch options though. \$\endgroup\$ Jan 15, 2012 at 23:01
  • \$\begingroup\$ @OllinLathrop Allright. With this, I'd still need the relay and diode though.. Anyways, thanks for your help. Hope you could recommend some other low side switch option. \$\endgroup\$
    – David
    Jan 15, 2012 at 23:07

The Arduino doesn't have any 12V outputs. It does have a recommended input voltage of 7-12V which appears to be regulated to 5V and 3.3V, which are available on the header.

In any case, the 12V adaptor that would be used with the Arduino is not usable to power the motors, since it will not rated for anywhere near 4A.

So first you will need a power supply capable of supplying 12V and at least 4A (which can also be used for the Arduino if you like), then you will need some way of driving the motors. The Sabertooth drivers mentioned in the other thread would work fine for this, or something like them (or design your own circuit)

  • \$\begingroup\$ I think that also a good op-amp could work... \$\endgroup\$
    – clabacchio
    Jan 15, 2012 at 21:34
  • \$\begingroup\$ That's expensive! Isn't a relay cheaper for the purpose? \$\endgroup\$
    – David
    Jan 15, 2012 at 21:57
  • \$\begingroup\$ Yes, a relay can be used if all you want is simple on/off control - see Olin's example. If you need speed control and forward/reverse (or if you are driving e.g. stepper motors) then you will need something a little more complex. \$\endgroup\$
    – Oli Glaser
    Jan 15, 2012 at 22:05
  • \$\begingroup\$ Thanks, I understand better now. So this will be better, for example when creating a remote controlled car? \$\endgroup\$
    – David
    Jan 15, 2012 at 22:15
  • \$\begingroup\$ Yes. If you want a cheaper option than the board linked to above then you can look into designing your own driver circuit. This requires some knowledge of the components involved though, so it may be better to leave that option till you are a bit further on. Having said that there are plenty of example circuits and help around on the net. I'm sure there are some cheaper driver boards too if you shop around a bit (eBay from e.g. china will almost certainly have some cheap options) \$\endgroup\$
    – Oli Glaser
    Jan 15, 2012 at 23:07

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.