# Making Solenoid valve work with Arduino and TIP120 transistor

I am trying to turn off an on 12 solenoid valves using Arduino and TIP120 TO-220 Darlington Transistors NPN. I connected everything as I show in the diagram but my solenoid valve wont work since when its connected and I checked the voltage, it only shows 10.8 Volts, but when I check the voltage without the solenoid valve, it shows 11.98 volts.

I am not an Electrical Engineer and have minimal knowledge in the field so sorry if this is a stupid question. I was wondering what causes this voltage drop that prevents solenoid valve from working. Also what is the role of the resistor here and am I using the correct one if its needed ?

I will provide the links for all the parts in case if it is needed. TIP transistor

Solenoid Valve

• People here rather look at an electronic circuits diagram than a visual diagram. Commented Aug 3, 2016 at 0:41
• My friend I wish I could do that, but like I said I do not have much knowledge from field of Electrical Engineering so I cannot provide you with an electronic circuit. Commented Aug 3, 2016 at 0:48
• Well so far I cannot see anything wrong with the circuit. Can your power supply produce enough current? Commented Aug 3, 2016 at 1:11
• Also is your problem turning on the solenoid or turning off? Commented Aug 3, 2016 at 1:12
• Bradman I am using normally closed solenoid, and when the signal arrives I only get 10.8 Volts at the wires instead of close to 12 so solenoid does not work. I am using the following transistor to get my 12 volts amazon.com/gp/product/B01AUIM5D6/… Commented Aug 3, 2016 at 1:23

Your major problem is that Darlington transistors, such as the TIP120, are very sensitive but not very good when turned on. If you look at the data sheet, on page 2 you'll find Vce(sat), which is the voltage across the transistor when it is fully on. At 3 amps of current and 12 mA of base current, the voltage is 2 volts.

Now, it's true that you have not specified your solenoid current, but it's also true that your base current will be no more than about 1 1/2 mA. Try measuring the on voltage across your base resistor, and you'll find it in the vicinity of 3 volts.

So, the first thing you need to do is increase your solenoid voltage by about 2 volts in order to compensate for the voltage drop you know you'll get. The second thing is possibly to decrease your base resistor in order to increase base current.

EDIT - A more complete circuit will look like

simulate this circuit – Schematic created using CircuitLab

It's true that a power MOSFET will produce less voltage drop, so you could stick with 12 volts, but there is a caveat. Arduino output voltages are not high enough to reliably drive the gate of a "regular" MOSFET. If you do decide to try this, you must be careful to get a "logic level gate" FET. If you don't, you may well find that the FET drops even more voltage than the TIP120, and it may vary wildly from unit to unit, with Murphy's Law dictating that you'll end up with one of the bad ones.

Regardless of what you use as a switch, you MUST include the diode. If you don't, the transistor will die sooner or later.

Also, you have never specified your solenoid current (I mentioned this before). If the current is more than (let's say) 1/2 amp, you'll need to provide a heat sink for your TIP120. Using the data sheet Vce(sat) numbers as an example, if the transistor is drawing 3 amps and dropping 2 volts, it will dissipate 2 x 3, or 6 watts, and without a heatsink it will self-destruct. The actual dissipation, of course, will depend on your current, as determined by the solenoid, and the voltage, which will depend in part on how hard you drive the base.

• My friend, will this MOSFET work for my purposes ? amazon.com/BT138-600E-Triacs-Logic-Level-Thyristor/dp/… Also do I need to use a diode with mosfet in order not to kill the mosfet ? Commented Aug 3, 2016 at 2:46
• @DavidKarakolyan - No way. Those are not MOSFETs, they are thyristors, and will not work. You can turn them on, but you can't turn them off. And whatever you use, a diode across the solenoid is vital. Commented Aug 3, 2016 at 3:21
• So even if I use Solid state relay to control solenoid I still need a diode ? Also my solenoid does not have V+ and V- wires(I think both way will work) How will I connect the diode ? Thank you. Commented Aug 3, 2016 at 4:12
• @DavidKarakolyan - See edit. Commented Aug 3, 2016 at 14:37
• Thank you very much for the info. Like I mentioned I am new to these types of electronics (I am a CS major working on a startup company with my dad :) ) So the info you provided is very helpful to me since I did not knew about most of this specific problems and such. Commented Aug 3, 2016 at 21:54

The voltage drop you are seeing under load is normal for this type of transistor. Internally the TIP120 is actually two transistors, with the Emitter of the first one connected to Base of the second one. In this configuration the total current gain is very high, but the saturation voltage is also quite high (up to 2V at 3A), because it is the sum of the first transistor's Collector-Emitter and second transistor's Base-Emitter junctions.

In many circuits this higher voltage drop isn't a problem. However your solenoid valve is only specified to work on 12V +-10%, which means it will just work (or not!) at 10.8V. A device will often still work outside of its specifications, but apparently yours doesn't. Therefore you have 3 options:-

1. Use a higher voltage power supply (eg. 13.2V) to compensate for the voltage drop in the Darlington transistor.

2. Replace the TIP120 with a device that has lower voltage drop, eg. a 'Logic Level' power MOSFET.

3. Use a valve that is specified to work at 10V or less.

Note: Solenoid coils have very high inductance. When switching off this generates a high voltage spike as the magnetic field collapses, which can kill your transistor. To prevent this you should wire a diode (eg 1N4001) across the solenoid, with Cathode to the positive power supply connection so it doesn't normally conduct. Don't get the polarity wrong or the diode will short circuit the solenoid!