You are on page 1of 5

PointLess LED Array - Open Circuits

http://www.opencircuits.com/PointLess_LED_Array

PointLess LED Array


From Open Circuits
PointLess LED Array Project

Contents
1 2 3 4 Summary What it Does Parts List Circuit/Program Design 4.1 Circuit 4.2 Printed Circuit Board 4.3 Firmware 5 Files 6 Building your own 7 Further reading

Summary
Name: PointLess LED Array Status: still developing, but is working Technology: PIC microcontroller with code in BoostC Author: russ_hensel ( where you can nd an email address to reach me ) Futulec http://www.futurlec.com/ sells an 8 by 8 array of 64 LED's in a package about 2 inches square. But what to do with it. Well obviously light it up. That is the basis of this project. What is it good for? still looking for a good reason, but it was fun. PIC microcontroller with code in BoostC. Files now posted

What it Does
Displays designs on the array, you can spell out messages one character at a time or present little animated designs. The code supplied does all of these. Perhaps I will make a movie.

Parts List
PIC16F877A, my favorite, but I think it is time to move to the 18F series, just not quite there yet. LED array I got the array from http://www.futurlec.com/ LEDM88OG. This is a two color array ( 64 leds ) , I used only half of them, may use the rest later. 16 small signal transistors may not be necessary, but allow for larger drive currents 3 x 8 current limiting resistors Substituting a couple of IC gets rid of most of these transistors and resistors. ( also from http://www.futurlec.com/ ) For better parts list see the schematic.

1 of 5

12/12/2011 10:31 PM

PointLess LED Array - Open Circuits

http://www.opencircuits.com/PointLess_LED_Array

Circuit/Program Design
We have 64 LEDs and a lot fewer output pins, but wait, the LEDs are already wired in a row and column setup ( all LEDs in one row wired to a common pin, all LEDs in one column wired to a common pin ) We can turn on one row, the set a byte to the column and turn on 0 to 8 LEDs in that column. Time multiplex through the rows and we can display any of 0 to 64 of the 64 LEDs. Do it fast and no one notices the blinking. The column pins are set to high to turn on the column, the row pins are set to low to turn on the pins. We used high side switches on one side, low side switches on the other side. This circuit uses an 877A which is overkill, switch to another chip if you wish ( and save board space ). I built the circuit with discrete transistors using point to point wiring on a perf board, but I have done some work on a printed circuit version using discrete transistor or using the IC's. Do not rely too much on the circuit and board below, get the eagle les for any recent corrections or improvements.

Circuit

IC1_PIC16F877 PIC Microcontroller. CA, CB, CC, CD Usual mix of large ( electrolytic )and small caps for use with regulator. Q2 4 Mhz crystal. C1, C2 approx 15 pf.

2 of 5

12/12/2011 10:31 PM

PointLess LED Array - Open Circuits

http://www.opencircuits.com/PointLess_LED_Array

REG 5 volt regulator I used LM7805. REL1...8 Current limiting emitter resistor say 200 ohm. IC2 Low side switch array ULN2803. IC3 High side switch array UDN2891. LED Array Not shown, go to futulec or other supplier and look around. D1 Reverse protection diode, low current rectier should work, as should just leaving it out ( works most of the time, then the regulator blows, or not ).

Printed Circuit Board


There is still one air wire left, the rest all auto routes. ( I think the design rules... are in the eagle les, if not email me. ) You can x this with one jumper to the top side. ( or perhaps another way, you could even switch ports and x in software or the ribbon cable )

Firmware
I use several arrays to store the bits for any given display. The basic idea is to put the data for one column in a char then use 8 char's to display the whole array. We are basically scanning much like a television, or multiplexing a set of 7 segment displays. The dierence from a TV is that we put out the equivalent of a whole line at once. I used a spreadsheet to help me visualize the display and construct the data for the array, see the le download.

3 of 5

12/12/2011 10:31 PM

PointLess LED Array - Open Circuits

http://www.opencircuits.com/PointLess_LED_Array

The code should be reasonably self explanatory. Send Questions to russ_hensel To make the circuit board easy to layout I have moved some bit and port positions around, you may have to adjust the software to make it work with these changes

Files
All in one zip le, click here (http://home.comcast.net/~russ_hensel/OC/ledarray.zip) This page. Format: Web Archive Planning guide, shows resource/ pin assignment for PIC. Format: open oce Character bit pattern planning spreadsheet. Format: open oce Schematic and Board Layout Format: Eagle Boostc source and other les, including HEX le. Format: BoostC...

Building your own


My project was hand wired and I made many mistakes. Despite this the code works and I have had a lot of fun with it. Because I changed my mind on the right components and other details all the pieces might not go together for you without a little bit of jiggling. Some particular tips: The circuit board does not show the array, just a ribbon connector. This goes to the array. One side to the columns, in order 1...8 the other to the rows. The ribbon connector is much bigger than needed, change it to a smaller one. The 877 is over kill a smaller PIC should work as well, since the rmware is in C it should be an easy move. Since timing is not critical you could dump the crystal if the PIC has a reasonable internal oscillator. I used discrete transistors not the IC's shown, the IC's should work better, I think. ( and take up less space ) To make the layout work without crossing traces I reversed the connection order on the printed circuit low to high bit, you will have to reverse the bit order somewhere in the code as well. The code is near ( or above ) the limit for the free BoostC compiler. Much of the stu is in the eects data, you can delete some. There may also be a fair amount of dead code ( depends on where I am in development cycle ) delete this to reduce code size. A higher clock frequency would give you more exibility, lower may force in a icker. The value of the current limiting resistors is something you may want to mess with, make brighter, and/or burn out the LED's. A 5 by 7 array could still do the full character set with some redesign of the fonts. Use the spreadsheet for planning your own fonts and eects. You may have a power supply that makes the on-board regulator unnecessary, but I would leave it in if you are running on batteries ( 9 volt transistor bat for example ). The circuit is not very complicated, close to a development board. You could start from a development board and put the other circuit components o board, perhaps on a board with the display. The hand wiring should not be a big deal. Things I am still working on: Add some runtime selection of messages/display Add lower case font. Improve fonts. Add PWM control of brightness. Add more display tricks to the software, perhaps some font variations. There is most of the code in place for a real time clock, displaying time should be pretty easy Other as time and ideas come to me. Mistakes here? Please let me russ_hensel know.

4 of 5

12/12/2011 10:31 PM

PointLess LED Array - Open Circuits

http://www.opencircuits.com/PointLess_LED_Array

Further reading
Tobis Corner: RGB LED Matrix (http://tobiscorner.oery.net/projects/avr/rgb-led-matrix) also has an 8x8 array of LEDs. But it's much cooler, because each of Tobi's LEDs is a RGB LED, so it can display practically any color. Kevin Cuzner is making "Dot Matrix Clock" (http://cuznersoft.com/wordpress/?cat=13) , which uses several 8x8 LED panels, each one apparently identical to this 8x8 LED array. LED POV display 24" Wall Clock Optoelectronics#LED Arrays 64 Pixels Roundup (http://interactive-matter.org/2009/05/64-pixels-roundup/) lists many interesting things built out of a 8x8 LED matrix. Retrieved from "http://www.opencircuits.com/PointLess_LED_Array" Category: Projects This page was last modied on 23 October 2010, at 00:22. Content is available under Attribution-ShareAlike 2.5.

5 of 5

12/12/2011 10:31 PM

You might also like