SparkFun 6" 7 Segment LED


I'm new to Arduino and this forum, and loving it so far. I'm starting work on a DIY SkeeBall machine.

I'm looking for a 7 segment LED to use for the score (about 6" tall), and these look perfect:

However, I can't find any information on interfacing with them.

3 of them will be the score (no decimal points), and 1 will tell how many balls have been used (0 - 9).

Can someone point me in the right direction? Everything I've found so far is about driving an LED matrix or the hc4led, which appear to be different.


I am not sure what you mean by "interface with them".

If you mean how to drive a single 7 segment LED, each bar or "segment" is just a single LED you would light up like any regular LED however you would use combinations to make characters. Check the data sheet for the specific display, one for the display you are using is available on the link you provided, to see which segment is connected to which bar.

If you are looking for how to drive multiple 7 segment displays you can try using a Max 7219 or 7221 as seen on this tutorial page. Arduino Playground - HomePage perticular/Main/MAX72XXHardware#Wiring7Segment

This particular display looks per the data sheet to be a common anode type meaning you supply power to a shared anode, pin 5 on the data sheet, and by connecting any individual segment to ground you would complete the circuit and it would light.

Hope that helps.

Thanks, that is exactly what I needed to get going.

On the playground page I had seen the Max 7219 and 7221 referenced, but referring to controlling an "led matrix", which sounded interesting, but it didn't click that "led matrix" included 7 segment displays.

May your children never be born naked and screaming again. :slight_smile:

I did a very similar project a few months ago, using large LED digits for a clock. The Maxim 7219 is great for driving individual LEDs or small LED displays (there is a section in the playground about using it with 7 segment displays) HOWEVER, the display you want to use looks like it has 6 LEDs in series (with 2 rows parallel) PER segment, meaning there is no way to drive event one segment directly from the 7219. The 7219 can give you about 5v, but with so many LEDs, there is quite a large voltage drop, so the spec sheet for that display recommends 12 volts.

Check out;start=all

I used one Allegro 6278 sink driver per digit. It looks like your displays are common anode, so it should work. This is slightly harder than using a Maxim 7219 - the LEDControl library is great and easy to use, however it only works with the 7219/7221. The Allegro is a shift register with a high power rating (up to 50 volts I believe), Think of it like a high power 7219 chip, except it works with common anode displays, rather than common cathode. The code is pretty easy - once you declare the array to tell it how to represent each number, printing numbers is almost as easy as using the LEDControl library.

Thanks, you probably saved me from the smell of smoke coming off of my 7219, or worse. I'm new to Arduino and pretty new to electronics in general.

If the 7 segment LED were rewired to be common cathode (instead of common anode), would the 7219 be able to drive it? Or would the voltage still be a problem?


Sorry if that is a dumb question to ask, but I've been unable to determine the answer myself with any degree of confidence...


Don't worry, I went through the same thing trying to get mine to work. The 7219 (If I remember correctly) does drive common cathode displays, however it still wouldn't be able to power the large ones. The problem is that the 7219 sources (can provide) 5 volts on the segment output pins, and sink (ground) 5 volts on the digit pins, because it operates at 5 volts, like the Arduino. The spec sheet for your display says it needs about 12 volts to drive the display, so your 7219 wont cut it. If you tried to put 12 volts into your 7219, your would probably fry it AND your Arduino.

The 7219 IS the easiest way to go, however there is no way to make it work with high voltage displays (and I tried!). The magic of the Allegro 6278 (and other drivers) is that you can communicate over 5v with the Arduino, but they're able to handle much more voltage on their output pins. It acts like a bunch of little switches, except it's a sink driver, as opposed to a source driver like the 7219. This means that you provide +12 volts on your common anode, Ground to your sink driver, and tell the sink driver which pins to short to ground, letting the current flow through whichever segment is connected to that pin.

The 6278 has a built in shift register - I believe the only real difference between using the shift register and using the 7219 is that the 7219 has the nice LEDControl library to take care of the dirty work, but really the shift registers are rather simple to use and should do the job nicely.

Thanks for the detailed response!

I found this thread with information about using the 6278 with the Arduino, including some code:;start=all

I think that will work nicely.