Introduction: How to Make a LED 7-segment Display With Arduino
How the project works:
All the anodes of one row are connected together. There are 3 LEDs in one row. See picture. When you supply voltage to the row, the whole row lights up.
So, connecting all the cathodes together, I used Arduino to program each row to turn on and off. In the picture above, here are the rows that Arduino is turning on: Row 1, 2, 4, 5, 6, 7,
Remember, the way instrucables is set up, the pictures come first, then the explanation.
If you are interested in making this project, please read over this whole instrucable BEFORE you start and get confused! And, please, don't forget too look at ALL the pictures and the boxes for them.
Here is a video of my the display using numbers. The next is it displaying the word, ALPHA.
1. What did you make?
The idea started when I was getting frustrated because I couldn't get my 7 segment display to work with one of my ICs, so I decided upon making my own, so that I'd could control it in basically any way I wanted, including simple text.
2. How did you make it?
The very first thing I did was get out my sketchbook and draw down my ideas, and how I would connect them together.
I started working on this project at 11:30 pm, and kept on going until about 4:30 A.M.. I kept on running into obstacles, such accidentally soldering the negative and positive leads of 3 LEDs together! I made it with 27 LEDs, a small piece of perf board, some basic tools, wires, and most importantly my newly-bought Arduino. I did this project by myself.
3. Where did you make it?
Well. . . I made this project all in my room, on my makeshift desk,and downstairs in our office (for programming Arduino). The more I programmed, the more problems arose, so I had to keep on running back and forth between my soldering un upstairs and the computer down stairs! I wore a path through my carpet, down the creaking wooden stairs, across the tile, over the wooden floor in my office to the computer. How did the project connect to other activities in my life? I was able to count this for my schoolwork! I aslo used this project as a show-off to Bravo, (another group in my activities, I'm ALPHA)
4. What did you learn?
- Where do I start? I learned that I should have used a resistor for each LED, instead of one resistor
- The BIGGEST thing I learned was how to program my Arduino!
- I learned some more techniques about soldering
- I also learned a little bit more about LEDs themselves
If I could do anything differently i would have bought 27 resistors and soldered them to each LED!
What am I proudest of? My success! I would have never thought it woudbe such an interest with my friends!
Step 1: Ingredients:
What you will need:
1x Wire strippers & snipers
1x Soldering pencil
1x Wire strippers & snipers
1x Needle-nose pliers
1x Soldering pencil
You may need some wire cutters other than the ones on the stripper. See step 5.
Something to cut perf board
1x Perf Board (http://www.radioshack.com/product/index.jsp?productId=2104052)
1x Smaller strip of perf (not necessary, but recommended)
21x White (or other color) LEDs
1x 50k pot (potentiometer)
1x Arduino & USB cable & power (optional)
Various jumper wires, MAX, 9
Step 2: Getting Familiar With the Design
We need to insert 27 LEDs into the perf, but we need to do this in an ordinary fashion. Each segment will have 3 LEDs wired parallel with each other. All the grounds will be connected. See picture and schematic.
Step 3: Prepping the Perf Board
Now we will need a template of some sort to help us arrange the LEDs. Get your perf and place the LEDS in the holes, like the picture. Then, taking them out, use a black marker to draw where the LEDs will go. Now what I'm about to say is kinda hard to say with text, so bear with me. There is a specific reason why I put the LEDS in the manner that they are. You might be wondering, why didn't I put the LEDs sideways. Well the reason being is that The LEDs have a little notch on the cathode side. Since the LEDs are a tight fight, this little flat end on the cathode enables the other LED to push up right next to it. If they were laid out sideways, there would be no flat groove, and the LEDs would not sit all together flat on the board since they are too close to each other. Try it out, and you will see what I'm talking about. I HOPE you understand!
I added some photos of how the LEDs fit. The first picture is of them vertically, and the second is of them sideways(horizontally).
Step 4: Putting in the First Set of LEDs
Well, I forgot to take a picture of the first set of LEDs, so ignore the right side of the picture. On the left side of the picture, you can see I used my finger to make sure all the LEDs are sitting flat on the perf. Then, I bent all the negative leads back towards my thumb, then all the positive LEDs toward the out side of the board.
Step 5: Soldering the First Set
THESE STEPS APPLY FOR ALL THE POSITIVES AND ONLY ONE NEGATIVE.
1. Now, this step might be a little tricky. Using some needle-nose pliers, bend the cathode lead at the end at a right angle, facing the other negative leads. See picture.
2. Bend the other leads to form an X over a hole. Sorry, I forgot to take a picture of the first one (hey, I was trying to figure this out!). Just look at the second one.
3. Take a 4-8 inch insulated jumper. Using needle-nose pliers, make a small 90 degree angle at the very tip. The key to this is to make sure the bend part is not bigger than the thickness of your pert, or else it will be sticking out the other end, and you don't want to see that.
4. Now insert the pre-stripped insulated jumper wire into the hole you made an X over. Make sure the jumper goes under the X.
5. Now fill with solder.
6. Trim the leads if necessary.
[PLEASE NOTE, THIS ONLY APPLIES TO THE ANODE (positive) LEADS OF THE LEDs. YOU WILL ONLY NEED TO DO THIS WITH ONE CATHODE]
Step 6: Finish All the Soldering
Now basically your going to do that with all 27 LEDs. Keep on adding the rest of the rows. DO NOT forget to check each segment when done. Use some alligator clips to connect the negative rail to the positive rail. Theoretically, they should work. If not, run simple diagnostics, and fix it!
Step 7: The Out Wires
Now, you need to organize all the positive outs. There are 7 red outs. When you connect ground to - volts, you should be able to touch + volts to each of the outs, and the corresponding row of LEDs should light up!
In the second photo, you can see that I cut and stripped all the wires to about the same length.
Step 8: Converting to Solid Core Wire
This step may not be necessary. Since I didn't use solid core wires on the OUT wires, I need to solder them to some solid core wires. If you used long enough solid core wires, you may skip to step 9. Also, you could just solder some jumpers to the OUT wires, but, I like this.
1. Cut a small piece of perf.
2. Bend a 45 degree angle at the end of a jumper.
3. Insert into perf.
4. Push the end of the angled part of the jumper into the whole behind it. See picture.
5. Repeat, until all 8 jumpers are done.
6. Cover the backside in hot glue.
7. Solder the wires onto the top.
8. Cover them in hot glue.
Step 9: Reordering the Out Wires
So, since I want to be able to know which wires go to each row, I need to reorder them. If you reordered them in step 8, you may skip to step 10.
Using some alligator clips, I tested each wire. Then, I put it in the correct order. You can see all the twists in the picture.
Step 10: [UPDATE] Adding Resistors for the LEDs
At the time I built this project I didn't know about the positive temperature coefficient with LEDs, but now that I know, it's time to fix it!
Instead of adding a resistor to each LED, I'll just add a resistor to each row. I'll use a 100 ohm resistor. (do that math, it equals to 83.33--)
See the drawing I made for where the resistors should go.
Step 11: Soldering the Potentiometer
You may skip this step, but I wanted to have an easy way to adjust the brightness without have to mess with the code. I'm an Arduino beginner!
Solder the ground wire to the far right terminal of the pot. Then solder a small jumper to the middle connection on the pot. This is the wire that will go into the Arduino.
Please note: This IS NOT the potentiometer I used. My pot was in the mail at the time. The one shown in the picture is for illustrational purposes. This type of pots don't seem to work well- get the guitar amp type. Sorry the picture is focused on the Arduino and not the pot. Dumb auto-focus!
Step 12: Hooking It Up!
Now, this is where your Arduino comes in handy. Plug in all the jumpers into pins 1-7 and ground to GND on the Arduino, and start programming! Here's a link to the code for the 123456789 sequence.
Again, I am a Arduino beginner, but this code seems to be pretty good. This is probably the hardest thing I've done with my Arduino, so you can see where I'm at. Still stuck on digitalWrite, HIGH AND LOW!
Now, if you don't have and Arduino, you can simply hook up each segment to a different on/off switch. Since I didn't have 7 switches, I couldn't do this. This would make your project more pocket-sized then with an Arduino, but, my stock of parts always seem to be limiting my projects!
Use the potentiometer to control the brightness of your sequence!
Step 13: Closing Thoughts
I hope you guys enjoyed my instructable, as this is my very first step by step instructable. I tried to complete, giving as many details I could think of! Please vote it as a winner for the Pocket-sized Contest, the Design Contest, and the Holiday Gift Contest! For a gift, mount the display in a nice box, and program the text to say, HAPPY HOLIDAY or HAPPY BDAY. Note: you are somewhat limited in what letters you can display, such as capital R, Z,W,X, and others.
Modify the code so that it is a timer! Each number starting from 9 and lasts 10 seconds, and use it in your next game of Scattergories! Hit a reset button and go again!
Please! post your pics of your project! I'd love to see them!
If I made mistakes, please let me know!
Questions? Comment below or PM me!