You are on page 1of 10

Home Sign Up!

Browse Community Submit


All Art Craft Food Games Green Home Kids Life Music Offbeat Outdoors Pets Photo Ride Science Tech

Make a 24X6 LED matrix


by Syst3mX on July 21, 2010 Table of Contents Make a 24X6 LED matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro: Make a 24X6 LED matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 1: Getting All The Right Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 2: How it works? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 3: Schematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 4: Soldering The LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 5: Programming The Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Step 6: We Are Done! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related Instructables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 3 4 5 5 6 6 6 7

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Author:Syst3mX

Vadim Electronics and LEDs what can be better ?! :D

Intro: Make a 24X6 LED matrix


After making a 8X10 matrix a lot of people asked me about expanding the matrix to some thing bigger, and some wanted to write stuff to the matrix via a PC, so one day I looked at a pile of LEDs that I had leftover from a LED cube projected and I decided to make a bigger matrix with all the things people wanted. So what are you waiting for? Get those LEDs out and heat up your soldering iron because we are about to make a 24X6 LED matrix!

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Step 1: Getting All The Right Things


So you will need the basic set of tools for this project : a soldering iron, some solder wire, a cutter, a needle nosed plier,some wire, wire striper, and some desoldering tools if you need them. For the matrix you will: 1. 144 LEDs 2. 24 resistors( The value is determent by the type of LEDs, in my case 91 ohm) 3. 4017 decade counter 4. 6 1KOhm resistors 5. 6 2N3904 transistors 6. A long Perfboard 7. Arduino 8. 3 x 74HC595 shift register 10. some pin headers

Step 2: How it works?


The tricky behind the display is multiplexing and the idea is the same as withe the 8x10 LED matrix: It is basically a way to split information in to little peaces and send it one by one. this way you can save a lot of pins on the Arduino and keep your program quite simple. Now this time we have 3 shift registers which multiply the number of outputs and save lots of arduino pins. Each shift register has 8 outputs and you only need 3 arduino pins to control almost an limited numbers of shift registers. We also use the 4017 decade counter to scan the rows, and you can scan up to 10 rows with it because you have only 10 outputs but to control it you need only 2 pins. The 4017 is a very useful chip and it's a good idea to know how to work with it(http://www.doctronics.co.uk/4017.htm ) Like I said the scanning is done with the 4017, by connecting one row at a time to ground and sending the right data via the shift registers to the columns.

Image Notes 1. 4017 With 6 transistors for scaning the rows 2. The 3 shift registers to control the rows

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Step 3: Schematics
The only thing I didn't specified in the schematics is the value of the current limiting resistors because they change from each type of LEDs, so you will need to calculate them by your self. Now to calculate the value of the 24 resistors you can use this site : http://led.linear1.org/1led.wiz You should first get some specs on your LEDs, you should know their forward voltage and forward current, you can get this info from the seller. The circuit operates on 5V so your Source voltage is 5V. Download the original file to see the schematics better.(press the "i" icon in the top left corner of the picture) I have added a PCB layout of the control board, and i want to thanks Willard2.0 who made this layout and let me use it so thanks a lot mate!

Image Notes 1. Arduino Pins 2. Arduino pins 3. Download the original file to see better.(press the "i" icon in the top left corner of the picture)

Image Notes 1. I didn't have room for the full matrix, So I hope you get the big idea

Image Notes 1. Green line are jumpers and red lines are copper traces. 2. PCB layout made by Willard2.0

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Step 4: Soldering The LEDs


Soldering 144 LEDs in a matrix formation can be a little tricky if you don't have a general idea how. The last time I soldered a matrix I used lots of little wire jumpers which was a pain to solder, so this time I was a little more creative and came up with this way. You need to bend the positive lead of the LED down towards the other ones and make a column, and snip off the leads you didn't use and try to make the connections as low as you can get, and you do this to all of the positive leads. Now the negative leads are connected in a column and thats make soldering tricky because the positive rows are in the way, so you will need to make a 90 degrees bend with the negative lead and make a bridge over the positive row to the next negative lead, and so on to the next LEDs. Now I will not explain how to solder the shift registers and all the parts because every one has hes own style and methods.

Step 5: Programming The Display


We are almost there, the only thing thats left is the program. So far I wrote two programs for it that do pretty much the same thing. I have added the program that gets a word or a sentence from the arduino IDE serial monitor and displays it on the matrix, my code is very basic and may be not the best in the world but it does the work, and you are free to write your own code and modify mine as you wish. I have added an excel file so you can create your own symbols and characters. The way it works is like so: You create the symbol you want pixel by pixel(don't worry it's very easy) and copy the output line like so - #define {OUTPUT LINE} I will add in the future a code for animations and a nice game of snake as soon as I have more time on my hands.

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

File Downloads

Now it works.txt (15 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'Now it works.txt']

Looping text.txt (9 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'Looping text.txt']

Code maker(6x24).xls (25 KB) [NOTE: When saving, if you see .tmp as the file ext, rename it to 'Code maker(6x24).xls']

Step 6: We Are Done!


Congratulations you made yourself a 24x6 matrix and now you can display anything you like on the fly. Now try to play with it and come up with a new program and a better interface.

Related Instructables

Getting status through serial monitor by zaghy2zy

64 pixel RGB LED Display Another Arduino Clone by madworm

RGB's with Arduino and Processing by nazdreg2007

Controlling an Arduino with Cocoa (Mac OS X) or C# (Windows) by computergeek

Build an Arduinopowered talking robot head! by xtremd

Twitter Controlled Light-Bot by anonymouse197

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Comments
50 comments Add Comment view all 228 comments

opsada says:

Apr 4, 2011. 8:17 AM REPLY Hi, I'm George and I am a teacher from Bulgaria. With my students put together the scheme, but the result is - only the first 6 LED on the first row blink once after uploading the program. Can you help please?

gcampton says:

Jun 2, 2011. 4:43 PM REPLY Sounds like A: you wired it backwards, and B: Your microcontroller isn't uploading the correct code... or doesn't have enough memory or some such. Try the example code that comes with the Arduino IDE, the basic -> Blink. I'm guessing the first col or row should blink if everything is wired up right. May 31, 2011. 3:38 AM REPLY

sivasagar0003 says:
good work.... is jst the program writttern stays on the audrino...when i run on battery power??

Syst3mX says:
if you mean the program itself then yes. But if you are talking about the scrolling words then this things get lost

May 31, 2011. 4:33 AM REPLY

An Unsatified Customer says:


Hi I need some quick help. What is a 4017 decade counter and where is the best place to get them from? I went to the link a few steps ahead but i didnt see where to buy one. Any help would be greatly appreciated Thanks

May 28, 2011. 5:16 PM REPLY

axeman911 says:

May 23, 2011. 7:30 AM REPLY where did u buy the arduino? could i please get the website, and price? what language did u use to write the program or does the arduino come with a progra which u ca download to your computer? sorry, but the schematic was too hard to get, do u think maybe make a a bit more simpler? tthanks

Syst3mX says:
I got the arduino from ebay, just search for arduino and you will find it. It will cost you about 25-30 dollars. It uses C and you can get the program from the arduino.cc website. I can't really find a way to simplify the schematic, but if you have something you don't understand you are free to ask.

May 23, 2011. 8:21 AM REPLY

axeman911 says:
it is this one Arduino UNO - ATMEGA328P ATMEGA8U2 on ebay here is the link.

May 23, 2011. 4:13 PM REPLY

http://cgi.ebay.com/Arduino-UNO-ATMEGA328P-ATMEGA8U2-FREE-USB-Cable-/320700639473?pt=LH_DefaultDomain_0&hash=item4aab3f68f1

Syst3mX says:
yep

May 24, 2011. 12:58 AM REPLY

apocello says:

May 19, 2011. 12:38 PM REPLY How do you keep the resistors in the LED array cool when you run it for extended time periods? I made a slightly different array but when I run it for more than a couple of minutes it gets so hot i can smell the solder.

Syst3mX says:

May 19, 2011. 12:44 PM REPLY My resistors stay cool all of the time. Maybe you used a low wattage resistors? if the resistors really small they are most likely have a low wattage. you could try and 1/4 watt of 1/2 resistor

shaadmahmud says:

May 16, 2011. 2:55 AM REPLY this project is working now.....but i have a lil problem my text r mirrored.....and only looping text.txt file is working but now it works.txt is not working at all...please help me...i have an arduino with atmega168....

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Syst3mX says:

May 16, 2011. 5:56 AM REPLY some people had the same problem with the mirrored text and thats because you wired up the shift registers and LED backwards. So you fix it you need to change the order of the LED rows i.e. the first row need to be the last one. No for the works.txt code all you need to do to make it work is to change the 100 in this array : byte patterns[100][6]; to something smaller like 50 or 25

shaadmahmud says:
thanx for ur reply...the text r now working...but in works.txt i've change the patterns[25][6]...but its stil not working....:(

May 17, 2011. 2:04 AM REPLY

Syst3mX says:

May 17, 2011. 4:11 AM REPLY Does the basic serial functions work? try the example one in the IDE. I think the ATmega168 should have the space for this program but if not I will write something in 3-4 days from now.

shaadmahmud says:
thanks a lot...its working now....u r a genius........:)

May 17, 2011. 9:40 AM REPLY

Syst3mX says:
hh good to hear it works, have fun with it!

May 17, 2011. 9:43 AM REPLY

shaadmahmud says:
please check ur pm.......:)

May 17, 2011. 10:07 AM REPLY

jnicholas1 says:

May 10, 2011. 3:20 PM REPLY Hey thanks for a great tutorial, I finally finished it and it looks great except for a few problems. When I type into the serial monitor the letters scroll backwards(As in flipped horizontally). Then I have the 4th and 5th row not lighting up at all. Thanks Joe

Syst3mX says:

May 11, 2011. 6:22 AM REPLY Hey, Some one had that problem before here and it turned out he flipped the connections of the shift registers, so to fix that you need to rearrange your connections. About the 2 nonworking rows it's probably a bad connection(maybe you connected the wrong output) or a damaged part it can't be a software problem. Check with a multimeter the voltages on these outputs there should be above 0 volts all time. May 8, 2011. 6:49 AM REPLY

zulcao says:
hi, im bilding one and i want know if need many modifications to make it with 10 rows ? and excelent project.

Syst3mX says:
it's not that hard but you need to change all of the symbol set and change some numbers in the program.

May 8, 2011. 7:33 AM REPLY

shaadmahmud says:
can u please tell me does it work atmega8 in arduino....?

Apr 21, 2011. 3:51 AM REPLY

Syst3mX says:
yeah it would work but you will need to change the code a bit to save space. If you need some help with that just send me your email

Apr 21, 2011. 3:55 AM REPLY

shaadmahmud says:
please ....can u send me the code for atmega8......please it will help me a lot.....:) my mail address is : shaadmahmud@yahoo.com

Apr 22, 2011. 6:40 AM REPLY

Syst3mX says:
OK i will sent it to you tomorrow.

Apr 22, 2011. 7:01 AM REPLY

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

shaadmahmud says:
thanks a lot......:)

Apr 22, 2011. 7:37 AM REPLY

shaadmahmud says:
sir can u tell me does this code work with atmega168 on arduino...?????

Apr 22, 2011. 2:16 PM REPLY

jnicholas1 says:

Apr 20, 2011. 9:28 AM REPLY I'm about to begin soldering, and I understand bending the positive leads down, and the negatives turned 90 degrees. But am i soldering one lead to the other? I can't tell by the photo, but are all the positive leads soldered together vertically in each column? and the negatives together in each row? Thanks Joe

Syst3mX says:

Apr 21, 2011. 3:58 AM REPLY Yeah all of the positive pins in a given column are soldered together and the negative leads are soldered together in each row. there shouldn't be any connections between the positive leads and negative ones.

berniech says:

Apr 11, 2011. 7:21 AM REPLY Many thanks for this great project; your sketch finally run nicely on my (based on your previous instructable) 15x10 matrix, but would you be so kind to give me the code to pilot rows 6 to 10? I also will try to do a "word clock" with this matrix; will it be necessary to use a real time IC for setting hours & minutes? If yes, do you have a schema for this adjunction? thanks again!

Syst3mX says:

Apr 11, 2011. 7:34 AM REPLY Good to know it works. to modify the code to work with 10 rows is very easy and all you need to do is to delete some lines. So send me your email and I will tell you exactly what to do. For the clock it would be a lot simpler to use a real time clock IC, but you can also do it in software. I have a schematic from another project that uses an real time clock if you want to can look it up, it's a digital clock.

berniech says:
I will be happy to receive your instructions and also your digital clock schematic My e-mail: bernard-bouchet@neuf.fr

Apr 11, 2011. 8:52 AM REPLY

Anigram says:
Could you maybe post the code for a static text (as in one that doesn't scroll)? -Obviously it would be limited to about 5 characters. Thanks again!

Apr 3, 2011. 9:03 PM REPLY

Syst3mX says:

Apr 4, 2011. 7:18 AM REPLY I don't think I would have much time this week but I can give you a tip on how to do so and if not I will try to write something next week. In the scrolling function, I scroll all the display every frame so what you need to do is to scroll it 23 times and show the text when the word is ready.

Anigram says:

Apr 10, 2011. 12:04 AM REPLY I haven't yet gotten this to work yet. I'm gonna continue because I really want to make it display static phrase, but if there is anyway you get some time this week, do you think you could take a shot at it?

Syst3mX says:
OK I will try to get it done by the end of the week. Send me a privet message with your email and I will send you the code as soon as I get t done.

Apr 10, 2011. 5:16 AM REPLY

Anigram says:
I'm having a bit of trouble figuring out some of your variables in the code. for scrolling_word[first][second] what does first and second represent?

Apr 4, 2011. 4:43 PM REPLY

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

Syst3mX says:
second stands for the shift register number(we have 3 here) and the first is for the rows(just 6 here)

Apr 5, 2011. 2:38 AM REPLY

Anigram says:
Thank you. If I get it written up, I'll post it.

Apr 4, 2011. 8:19 AM REPLY

jayeshshinai says:
wow...amazing breadboard soldering!

Apr 8, 2011. 6:01 PM REPLY

jayeshshinai says:
*perfboard!

Apr 8, 2011. 6:02 PM REPLY

pauljuy says:
hi wanted saver if you can put some linck with soft to handle the little sign thank you very much

Apr 8, 2011. 7:14 AM REPLY

Anigram says:

Apr 4, 2011. 3:50 AM REPLY I hate to ask so many questions, but I was also wondering if there was a way to adjust how fast the words scroll across the LEDs

Syst3mX says:
Yeah in"display_word(1,patterns,43,15);" The number 15 is the speed , the lower the number the faster it scrolls.

Apr 4, 2011. 7:15 AM REPLY

Anigram says:
Thank you so much!

Apr 4, 2011. 8:19 AM REPLY

Anigram says:
Thanks for the write up! I got everything working, however for some reason the text is displaying backwards. Both the individual letters and the overall string are mirrored. Any ideas?

Apr 2, 2011. 10:39 PM REPLY

Syst3mX says:

Apr 3, 2011. 2:58 AM REPLY looks like you made a mistake with the shift registers order, I think you could just change the order in software of the spi_transfer from this order: spi_transfer(scrolling_word[y][2]; spi_transfer(scrolling_word[y][1]); spi_transfer(scrolling_word[y][0]); to this order in every place you see it in the code : spi_transfer(scrolling_word[y][0]); spi_transfer(scrolling_word[y][1]); spi_transfer(scrolling_word[y][2]); If this wouldn't work , tell me and I will tell you what to do next.

Anigram says:

Apr 3, 2011. 1:44 PM REPLY I THINK that maybe my orientation is just off. I reversed all my row connections and then flipped the entire LED system and it reads correctly now. It's supposed to scroll in from the right side, correct?

Syst3mX says:
Good to hear you got it working. And yeah it suppose to scroll from right to left.

Apr 4, 2011. 7:11 AM REPLY

view all 228 comments

http://www.instructables.com/id/Make-a-24X6-LED-matrix/

You might also like