Current & overheating problem


I’m running two 12V 7-segment led-displays with arduino. Between arduino and the displays I have 2N222-transistors. So, there is 14 transistors connected to arduino’s digital pins. Both the displays and arduino use the same 12V external power source, before arduino there is an extra voltage regulator which drops the 12V to 7V.

The problem is that soon (few minutes) after starting the system arduino overheats and resets itself, which quite is annoying.

Am I drawing too much current through arduino?
Should I chance the transistors (to which type, I’m noob in electronics)?
Might a shift register (or two) help?

Earlier I used a half-fried arduino for the setup. The external power plug was fried, but usb-power and Vin-pin worked ok. I did use the Vin-pin for power supply (with 5V voltage regulator). The system worked ok up to few hours, but was sometimes unstable, which was the reason to chance arduino to new one.

Thanks for help - already in advance :wink:

arduino overheats and resets itself, which quite is annoying.

Well, think how the Arduino feels, being fried like that.

A few words about the type of transistors you are using and how they are connected, or a picture of two, would be better than this hand-waving and complaining for getting helpful suggestions.

You should use a small current limiting resistor between each transistor and its corresponding Arduino pin.

Another problem could be that the powersupply can not supply enough current for both the Arduino and the LED displays.

Thanks for the answers,

I should have attached an image of my setup, but being hurry i didn't have time to make one (which is readable). Now there is one attached. At least should be, it's my first try to attach image at this forum.

C:\Users\Public\2x7-segment led_bb.jpg

The problem with my setup is most propably that the transistors (type 2N2222) are drawing too much current from Arduino pins. So I'll try the current limiting resistors or if that doesn't work chance the transistors. My power supply should be ok, it's a adjustable lab type and can deliver 2 amps.

If there is any other ideas to solve this, please let me know.

edit: attaching image didn't work.

the transistors (type 2N2222) are drawing too much current from Arduino pins.............. chance the transistors

Changing the transistor is not going to solve your problem.

Now there is one attached.


For advice on power dissipation issues see:- and

Thanks Mike,

I have been reading your tutorials (even earlier...) and agree that adding the current limiting resistor is the way to go. There are calculators for current limiting resistors for leds, but how to figure out the right resistor for a transistor? The suggestions I have seen are quite different, varying from 330 ohms to 2.2 kilo-ohms. If I understand right, it's not so precise which resistor you choose?

Adding the image didn't work, but it's doesn't matter any more. These answers are already helping me.

but how to figure out the right resistor for a transistor?

To do this properly you need to know the gain of the transistor. The data sheet might say something like Gain 100 to 350 or give a minimum gain. So let's say the minimum gain is 150, and the load in the transistor's collector is 200mA then the base current needs to be AT LEAST 200 / 150 = 1.3 mA.

There is a 0.7V drop across the base / emitter junction so if you are feeding the base with a 5V signal you need a resistor that will drop 4.3V when passing 1.3mA, Ohms law gives you this as 3K3. BUT that is only the minimum to saturate (fully turn on) the transistor. Any more current doesn't do much harm (it slightly slows down the switch off time due to charge storage in the transistor's base). There are a lot of assumptions in that and as long as the minimum base current is achieved it is not too critical. Hence the blanket advice of 1K should cover 99.99% of uses you will find here.

Hope that helps.

Thanks again Mike,

Your answer gives enough information to fix this project and also helps me to learn more for future projects. It's so strange that I didn't find this information anywhere else.