Go Down

Topic: Self-made seven segment LED display query (Read 2328 times) previous topic - next topic


Hi. I'm making a football (the regular football, not soccer) scoreboard for my school, consisting of 2 seven-segment displays. I used LED strips as each of my 7 segments and I have made two such displays, made of 14 such segments. I designed it as a common anode display and the Fritzing model is as shown. The Fritzing schematic shows only 2 of the corresponding segments in the display. The transistors used are all TIP122s.

The code for it is in the regular Persistence of Vision (POV) way, switching the GND terminals HIGH and LOW alternately. My problem is, it shows the same digits when the GNDs are connected together, without the transistor (obviously), but refuses to work at all when I connect them to the TIP122 and even fried/bricked my ATMega328.



If you want to have a common Ground for all 7 segments of a digit, that would be a Common Cathode (-) configuration, not Common Anode (+).

The high-side switch (per segment position) would be a PNP transistor.  The only way to turn that off would be to raise the Base of the transistor to 12V.  You can use a pull-up resistor to bias the Base to +12 and then use a small NPN transistor to drag the Base to Ground to turn on the PNP transistor.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


There are a few points of confusion here.  We do not actually know what sort of "LED strips" you are using, but presumably 12V.  Using Darlingtons as emitter followers, or using them at all on a 5V supply is going to be pretty hopeless due to their relatively high saturation and base drive voltages.

Presuming the segments are in fact 12V, and use no more than 300 mA, you would be much better off using four TPIC6B595s and no other components (except the obligatory bypass capacitors).  You can shift data in to all of them using only three Arduino pins and you would not need to arrange multiplexing.  It is hardly worth discussing all the design problems with what you are describing so far.


Aug 09, 2014, 06:14 pm Last Edit: Aug 09, 2014, 09:24 pm by popoya Reason: 1
Yeah, these LED strips are rated at 12V.

I actually followed this website http://blog.dcxn.com/2013/03/03/dimming-a-12v-led-strip-with-an-arduino/ while designing the scoreboard, so I assumed that using the TIP122 wouldn't be such a bad idea. Unfortunately, I only have a limited number of components at hand and have also soldered the board, so I'd really appreciate it if someone would give me a solution involving basic NPN or PNP transistors, or point out where I could make a change in my current schematic itself.

Also, could someone tell me why my Arduino died?

I'm sorry for the stupid questions. I'm really just a noob at all this. Thanks everyone!


Aug 12, 2014, 01:13 pm Last Edit: Aug 12, 2014, 01:18 pm by dave-in-nj Reason: 1
that site clearly shows the LED is connected directly to +VDC and not to a transistor.

without seeing the entire schematic, we are only guessing, but I assume you have each segment on a TIP.   do you have a TIP on each individual segment ? or do you have all the top bars on one TIP and rely on supplying power to each of the 4 arrays ?

a TIP 120/121/122  are  NPN, TIP 125/126/127 are  PNP.  

your solution may be as simple as swapping out the 122 for a PNP.   but you would need to post the entire schematic for us to help you.


Also, could someone tell me why my Arduino died?

you have a whole different problem here.  there is no clear reason to burn up your outputs. what is the resistor you are using ?
anything else connected ?

disconnect everything, load the blink sketch and watch for the led on pin 13 to blink.   


I offer a board that drives up to 12 such digits from 12V source.
'328P for Uno functionality. Plug on a FTDI Basic for code downloading/debugging. Easy to use.
Available as a kit or assembled.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up