7 Segment Display Array

6,066

136

28

Introduction: 7 Segment Display Array

I've build an led display made out of 144 7 segment displays controlled by an arduino nano. The segments are controlled by 18 MAX7219 ic's which can control up to 64 individual leds or 8 7 segment displays. The array has 144 displays made each up of 8 individual leds so the array has an total off 1152 leds you can control.

Step 1: Get Your Components

1 x Arduino Nano

1 x PCB

144 x Common Cathode 7 segment 1 digit displays

18 x MAX7219

18 x 10uf Capacitor (0603)

18 x 100nf Capacitor (0603)

19 x 12k Resistor (0603)

1 x Female Micro usb

42 x Female header

1 x Tiny RTC (optional)

1 x 2A Powersupply

Step 2: Order Your PCB

Here you can download the Gerber files for the PCB of the display. Upload them through https://jlcpcb.com/quote#/ or a different manufacturer to order them.

Step 3: Solder the Components

Solder all the components on to the PCB as shown in the schematics. If u have little or no experience in SMD soldering I suggest u watch this tutorial on SMD soldering first.

If u are going to use the display as a clock solder the headers of the Tiny RTC on de side of the battery.

Step 4: Display As a Clock

When you finished soldering all the components download the code and upload it to the arduino before putting it into the display. If u want to display something custom have a look at Step 5.

Step 5: Make Custom Code

If u want to show something custom you need to code it by by hand. In the example code different segements aka pixels are shown in bytes with each bit one segment: 0bDP-A-B-C-D-E-F-G e.g. 0b01011011 will show a 5.

The example code has 3 different ways to show pixels. The first way is to use the putPixel(x, y, byte); function to replace one pixel of the display at the location x, y (0, 0 is top left 5, 23 is bottom right).

The second way is to use the addPixel(x, y, byte); function it works almost the same as the putPixel() function but instead of replacing the pixel it adds the pixel to the original one.

The last way is to use the fillPixel(x1, y1, x2, y2, byte); funtion to fill a rectangle from x1,y1 to x2,y2 with the same pixels.

Step 6: You're Done!

Congratulations you're done! Now you can program the display the way you like it. And if u made the display dont forget to share it :)

Lighting Challenge

Participated in the
Lighting Challenge

3 People Made This Project!

Recommendations

  • Maps Challenge

    Maps Challenge
  • Fruit and Veggies Speed Challenge

    Fruit and Veggies Speed Challenge
  • DIY Summer Camp Contest

    DIY Summer Camp Contest

28 Comments

0
TAGood827
TAGood827

Tip 4 months ago

Here's an updated version of the code that will work with the 7 button switch shield we designed for the clock. We've added time/date mode, brighter/year up, dimmer/year down, hour/month up, hour month down, minute/day up, and minute/day down. Changing the minute sets the seconds to 0.

Message me if you are interested obtaining a board.

0318210910.jpg
0
TAGood827
TAGood827

Tip 5 months ago on Step 4

Many thanks to my friend Octavian, this code fixes a problem we had with the display where some of the MAX7219 would get stuck and show all 8s or all blank. The MAX 7219 is basically reinitialized every cycle. Eliminated the blinking colons and added seconds at the top center of the display.

0
TAGood827
TAGood827

Question 6 months ago

I've noticed that after about 3 days I get a funny thing happen on my display. There's a pocket of all blank digits or a pocket of all 8s. Seems to happen most often in the fourth row but I've seen it in other locations. Sometimes it's stretched across the whole row. I'm guessing it's a memory glitch in my Nano clone. As soon as I hit reset, it goes away for another 3 days or so.

Anyone else see something like this on their display?

0128210808.jpg
0
frarugi87
frarugi87

Question 6 months ago

If I'm not wrong, the current you set is 5V/12k*100 = 40mA per segment. This means that, assuming 50% of segments are light up, the current consumption is roughly 20A (100W at 5V). Which seems a bit too much for me. So.. what is the actual current consumption of the display?

0
frarugi87
frarugi87

Answer 6 months ago

I noticed that the intensity in SW is set to 3 (i.e. 7/32), which means that the total current consumption is roughly 4A, assuming about half of them are light in some time. Less than 100W, but still a lot...

0
TAGood827
TAGood827

Reply 6 months ago

I think you're missing that the MAX7219 is scanning the 8 digits it controls at 800Hz. It's not actually turning all the segments on at the same time. I have a test program that turns all 144 digits to the number 8 and it doesn't even top 2A.

0
TAGood827
TAGood827

6 months ago

I designed a quickie stand to hold the display, posted on Thingiverse:

https://www.thingiverse.com/thing:4731089

I'm also working on a bezel to capture a piece of 20% film but that takes a big printer I don't get much time with.

0107211126.jpg
0
TAGood827
TAGood827

Tip 7 months ago

Ah, nevermind! Noticed my RTC was a DS1307 and changed the reference and a function call and all is well now!

76284.jpeg
0
TAGood827
TAGood827

Question 7 months ago

Assembled my clock over the holiday. Test mode works fine. Pac Man looks fine. Clock stuck at 1:00. Which RTC lib did you use? Not sure which one to choose, my RTC is not updating.

76260.jpeg76265.jpeg76279.jpeg
0
TAGood827
TAGood827

11 months ago

Got my boards in one week! That's pretty awesome! Other parts are rolling in...

Looking forward to putting this together.

0
TAGood827
TAGood827

12 months ago

One other question, what is the size of the PCB? I'm trying to measure it and it looks like it is about 305mm x 117mm.

Thanks!

0
Frugha
Frugha

Reply 12 months ago

Close, its 305mm x 114mm

0
TAGood827
TAGood827

Reply 12 months ago

Thanks again!

0
ajoyraman
ajoyraman

1 year ago

You have provided a brilliant idea for using old 7-segment display's which we may have stocked up. Wonder if is possible to make a smaller version?

0
kiwigrinder
kiwigrinder

Reply 1 year ago

I used 0.28" 7 Segment displays on my build making it only quarter of the size. It then becomes a desktop alarm clock.

0
ajoyraman
ajoyraman

Reply 1 year ago

Must be cute! any pics'

0
ajoyraman
ajoyraman

Reply 1 year ago

I Love this ! Thanks for sharing

0
TAGood827
TAGood827

Question 1 year ago on Introduction

Interesting design! What specific 7 Segment display did you design the PCB for?