I am trying to activate two solenoids (12V/350mA, connected to a 12V/1A adaptor) at the same time using the TIP120 NPN-transistor and 1kohm resistor using the UNO board. Using a simple program,

void loop()
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);

  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);

if I am using a big LED on the pin of the board, I am able to easily blink them but the solenoid is not working?

for powering the Arduino board, I am either using USB or a 12V/1A adaptor, and both result in the same output.

the schematic of the simple connections can be found here https://www.arrow.com/en/research-and-events/articles/arduino-solenoid-project-control-solenoid-with-arduino-board

can someone please suggest what can I do to start two solenoids at the same time?

I have tried increasing the voltage and current as well from an externally powered source as well. but it did not actuated two valves together enter image description here

  • 1
    Could you please add a schematic to your question? Mar 31 at 7:10
  • previous question about the same project arduino.stackexchange.com/questions/89073/…
    – Juraj
    Mar 31 at 8:04
  • @Juraj yes, but the question is different. and the circuit is also different, instead of relay, I am using transistor which solved previous problem Mar 31 at 8:07
  • @EdgarBonet the circuit is so simple that I don't add it here instead I have given the link. only transistor and resistor Mar 31 at 8:10
  • 1
    The TIP120 is a poor choice for this application. It's a "Darlington" transistor which means it will turn your 12V into just 10.4V. You'd be better with a simple BJT or even better still a MOSFET.
    – Majenko
    Mar 31 at 8:54

1 Answer 1


It will not work as you have it pictured. The ground of the 12V must be connected to the ground of the Arduino. You can put both resistors on the same pin of the Arduino, the one that is working (probably pin 13). Staying with what you have coded would be better. Since each of the solenoids require 1A each your power supply must supply at least 2 amps.

In your code setup() you need to define each pin you will use as an output, (int ledPin = 4; int ledPin = 5;) There are other ways but that follows the example. then use the pinmode to declare them as an output, pinMode(led1, OUTPUT); for each pin you want to drive the transistor. Then your code will work. Look at this link for an example: https://www.arduino.cc/en/Reference.digitalWrite. I used pins 4 and 5, no reason other then 13 blinks with the on board led when it is booting. It is pre defined as an output in the Arduino start code (you normally do not have access to that), that is why it worked.

If you elect to use a MOSFET TheSource becomes the emitter, The Drain becomes the collector and the gate becomes the gate. You would need to pick an avalanche rated one that can

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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