You don't have to be in Times Square to enjoy large bright displays of lights. You can create that in the comfort of your own home with some foam board, LEDs, and our little friend Arduino.
My sister-in-law decided to get married on New Year Eve, and the venue she chose stays open until 1am that night, so I started thinking it would be great to have a nice big countdown clock. I ran the idea past her and her fiance and they both loved it, so I went to work.
When I made it I intended it for just one use, but it's a very impressive display that can be seen across a huge room. This is pretty simplified and what I'm showing you is on a breadboard. Optimizing and taking it beyond prototyping (e.g. replacing the breadboard with some pcb boards) are outside of the scope for this but shouldn't be too difficult.
Step 1: Gather Materials
Materials for this are as follows:
1 20"x30" piece of foam board (any desired color - my sister-in-law was even considering one of those holographic ones for a short while), we're using plain white in this example
1 roll of 12v LED strips (any desired color) (120 LEDs/m recommended but not mandatory)
1 Arduino (I'm using the UNO R3)
14 2N3904 NPN Transistors
14 1Kohm Resistors
1 7805 Voltage Regulator
1 12v power source (plug or battery)
1 Soldering iron
Enough wire and solder to connect everything, including jumper wires (I used about 50 the first time)
(optional) 2 seven-segment display modules, if you want to tweak the design before taking it full scale. I'm providing a diagram on how to connect to a typical common cathode display.
(optional) Conductive copper tape
(optional) Liquid electrical tape
Step 2: Arrange the LEDs
The first step is getting the LEDs onto the board. I love working with these LED strips. They require more voltage but they come in convenient rolls so you can arrange them in strips and have the resistors built in which makes things easier.
Outline where you want them to go in two seven-segment arrangements. If you're using the 120/m LEDs, cut them into 28 sections of 7 three-LED segments each. This will use most of a 5m roll, with only 4 LED segments left over.
You will be placing two strips of seven on each segment parallel to each other. I recommend turning one of them 180 degrees so that the two innermost and two outermost polarities on the strip match each other. It will make the next step a lot simpler. When you are done, you will have two giant 8s. Perhaps once you're done with the countdown clock you can reuse the display for your next DeLorean.
Step 3: Connect the Strips
Once you've placed the strips on the board, connect the two rows of strips in each segment to each other. Remember when I told you to have the innermost and outermost polarities match each other? This is so you can have two conduits, one for the inner track and one for the outer track, that don't have to cross each other so it will save you a little frustration. You can use the conductive tape as I did with small bits of wire or just some longer wires to connect the two rows together.
Once you connect them, rig up some test with your power source and make sure they both light up. It's a thing of beauty. Once you're happy with that, seal up that corner with some liquid electrical tape. This will hold the connections in place and help blend it into the board (if it's the same color). Allow that some time to dry and it will look nice.
I just realized that I didn't put the liquid electrical tape in my list of materials. But through the magic of editing... there, done! Seamless, right? Isn't technology wonderful?
Step 4: Wire Up the Back Side
You'll need to now add appropriate wires to each group to connect them on the back. You should allow enough space for each wire to reach from the hole to the center at the back of the board, and then some extra for slack. This will vary depending on where you put the holes.
I had available four colors: black, red, green, and yellow. I made use of this to have as few holes in the board as possible, because once you cram these wires into the holes it will be hard to tell which set goes to which strip. For holes with more than one group of wires going through, I used the standard red (+) and black (-) for the top one and yellow (+) and green (-) for the other one. This made later steps much easier.
Once you get the wires through, mark on the board which wires control which segment. It can get confusing to remember which wires go to which specific segment of which specific digits if you don't.
Once you have all the wires soldered to the strips and meeting up at the center in the back, test them once more for good measure. Connect all the positive and negative leads together in their respective groups on the board, then connect the power. Don't worry, aliens won't land at your house because the display is so bright. Probably.
After you're happy, seal up those solder joints and holes with some more of the liquid tape. Let it dry while you start to work on the programming.
Step 5: Program the Arduino
You'll be using all 14 digital output pins of the Arduino using the program I'm providing. You're free to optimize if you want, but this way is pretty easy to follow. You have a couple arrays identifying each digit's on/off positions per segment, and then one to loop through once the counter reaches 0. Connect them to the seven segment displays if you want to test/tweak any aspect of this
If you have common cathode seven segment displays, then you can just follow the pictures and diagrams and complicated sums in this step. If not, look up specs for your displays and adjust accordingly.
Step 6: Add the Regulator and Transistors
Now's the time to add the voltage regulator and transistors.
The Arduino outputs at 5v, yet the strips operate at 12v. This is where the transistors come in. Theoretically, you could also use some LED amplifiers but you would need 14 of those for that and we can do this with more-common (and less expensive) transistors easily enough.
You're going to be using NPN transistors, and I used 2N3904 ones (fairly common).
There are several tutorials on how an NPN transistor works, but basically we're going to use the 5v logic coming from the Arduino to complete the negative end of the connection.
Connect all of the positive leads of the LED strips to the positive end of the 12v power source.
So yeah, the pictures included are kinda a mess. But let me break it down for you...
There are 14 groups, one for each segment of the display, and it's not multiplexed. I'm including a picture with just one group so it's easier to follow. In the diagram, each group of resistors, transistors, and LED strips is the same, so I grouped many of the middle ones together in the diagram for simplicity's sake.
At the center of each group is an NPN transistor. If you look at the transistor from the flat end, the three pins you see from left to right are the emitter, the base, and the collector. The negative end of the LED strips (the "load") will connect to the collector of the transistor, the base will connect to the output pin of the Arduino with a 1Kohm resistor in-between, and the emitter will connect to ground.
It's kinda hard to see in my first picture, but the transistor combos attached to each of the strips are not in the same order as the Arduino pins, so the group below "translates" them to the correct order. However you arrange the wires, as long as you keep the order straight with the Arduino pins you should be good.
Now the regulator. When I tried to use a 12v input on my Arduino, the Arduino kept resetting. However, I knew from previous experience that the Arduino worked fine at lower voltages. So I got a voltage regulator (typical 7805) to supply the power to the Arduino. I put the 12v P+ connection to pin 1, ground to pin 2, and the regulated output from pin 3 to the Vin of the Arduino. I also got another jumper to connect the ground to a Gnd input of the Arduino.
Step 7: You're Done!
Once you have all of the strips, transistors, resistors, and Arduino hooked up, attach your power source and watch it go. This display is sure to impress. Building this inspired me to make a full clock which I will be using some other Instructables to help me with, with my own personal tweak. Depending on the success of that, I may add mine to here at some point. But until then, enjoy!