So my issue is that I am making a circuit that is able to control a light switch remotely. The items I am using are:

-Arduino Uno Rev 3

-TIP31c NPN Transistor

-PS2 wireless controller and dongle

-100W LED

-4x 9V batteries (in series)

I have used the controller and dongle before with no issue, and I am receiving commands from the controller so that is not an issue. The LED does light up when connecting the batteries directly to them so that takes care of any power issues. The arduino does do its job by sending voltage to the designated pin where the supposed base of the transistor is suppose to be. So that leaves me with the issue of whether I am wiring up the transistor wrong, or if the issue lies in another place.

The link to where I purchased the transistor is; www.amazon.com/gp/product/B01N9N1RZG/ref=ox_sc_act_title_2?ie=UTF8&psc=1&smid=A26TJE9XKYYNGN

The other part that may be an issue is the grounds but I am unsure, this is the schematic of the current circuit:

enter image description here

Should it be like this ^^

enter image description here

or like this^^

Another theory that I have is, if the arduino is being powered by a computer, would it be able to deliver enough voltage/current to the base to allow the electricity to flow? Any advice would be much appriciated, as I need to complete this project by March 21st, 2017. Thank you for your time!


You should tie the grounds together as you showed in the second image, but you need to move the LED to between the positive terminal of the battery and the collector of the transistor. Otherwise the transistor can't turn on.

EDIT: As Passerby noted and I missed, you also need a resistor between the Arduino and the base.

But given the LED is 100W, even if we assume it gets a full 9V (I'm assuming the LED in the schematic represents an array or driver module, etc.) it would be over 10A. That transistor you selected is only rated for 3A. You should select a different main power transistor, and probably should use another transistor stage between the Arduino and that output transistor to not overload the Arduino pin, as shown below.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ 27 volts. 4x 9V in series. \$\endgroup\$ – Passerby Mar 11 '17 at 21:11
  • \$\begingroup\$ Whoops, sorry again, somehow I read parallel. \$\endgroup\$ – AngeloQ Mar 11 '17 at 21:15
  • \$\begingroup\$ Also I'd suggest a weak pull-up. 10k maybe. \$\endgroup\$ – Passerby Mar 11 '17 at 21:17

Assuming the led has its own current control. You need a few changes. One, a resistor between the Arduino GPIO and the base. Or you risk burning out the arduino. Two, move the led between the Battery V+ and the collector. A NPN transistor as a switch is typically a low side driver. Connect emitter to ground. And yes, tie the grounds of the battery and arduino together.

The other issues is that 9V batteries will not last long with a 100 Watt led. And your arduino may not be turning the transistor on hard enough so you may cause it to work in the linear region and it may overheat. The 20 mA recommended max output of the GPIO is not enough for a high amp current load of the tip31c. The HFE is 10. So 20 mA * 10 means it can only pass 200 mA.

  • \$\begingroup\$ so how do you suggest I turn on the transistor? \$\endgroup\$ – John A Bonilla Mar 11 '17 at 20:36
  • \$\begingroup\$ @JohnABonilla first we need to know the actual led or at least the current being carried. \$\endgroup\$ – Passerby Mar 11 '17 at 21:12
  • \$\begingroup\$ @JohnABonilla 100 Watt LED seems unlikely. Did you mean 1 Watt or 10 Watt? \$\endgroup\$ – Passerby Mar 11 '17 at 21:13

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.