Electronic – Arduino Uno with 12V pump: transistor or optocoupler+12V relay

12varduinoopto-isolatortransistors

I'm not a real expert in electronics but I'm going to start a new project that has completely captured me.

I need to drive a 12V pump with my Arduino Uno. The pump is "Dp0102" (12V, 0.7A). To power up the pump I wish to use an external switching power supply (12V – 88W) connected to a 12V relay and an optocoupler (maybe 4n35).

I was inspired by a project found on the web (Link), regarding driving a 12V fan. I would like to know whether it possible to modify and and use this circuit to drive a pump? Note that the fan's power consumption is about 1.2-1.7W but for the pump it is 8.4W. Should I use a transistor (instead of the optocoupler + 12V relay)? Can you help me choosing the right one?

Best Answer

The first choice to make is whether you want to switch the input to the 12 V power supply, or switch the 12 V to the pump. If the pump spends a lot of time off, then powering down everything is probably a good idea. The 12 V supply will take some idle current, which is a waste if the 12 V isn't used for long periods of time. On the other hand, if the pump is on a lot and is turned on and off a lot, it will be easier to switch the 12 V to the pump. You could then even run the microcontroller off of the 12V, perhaps even with a linear regulator if you can keep its current down.

To switch the line power into the power supply, a plain old relay would be the simplest choice. There are plenty of relays that can be controlled from 5V that are intended to switch line power. Your supply will take well under 1 A, so there will be a wide choice of relays.

To switch the 12 V power to the pump, I'd probably use a transistor as a low side switch. Since the 12 V is already isolated from the line, you can tie the - side of the 12 V supply to the processor ground and use a direct connection. Lots of stuff can switch 1 A at 12 V. Here is a simple circuit: