PointLess LED Array
PointLess LED Array Project
Note under construction, files not yet posted
- Name: PointLess LED Array
- Status: still developing, working
- Technology: PIC, C language: BoostC
- Author: russ_hensel
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 is good for? still looking for a good reason, but it was fun.
What it Does
Displays designs on the array, you can spell out messages one character at a time or present little animated designs.
- 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 components. ( also from http://www.futurlec.com/ )
For more details see the schematics.
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
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 difference 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 file download.
The code should be reasonably self explanatory. Send Questions to firstname.lastname@example.org. 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 file, click here later.
- Planning guide, shows resource/ pin assignment for PIC. Format: open office
- Character bit pattern planning spreadsheet. Format: open office
- Schematic and Board Layout Format: Eagle
- Boostc source and other files, including HEX file. Format: whatever
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 warnings:
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.
I used discrete transistors not the IC's shown, the IC's should work better, I think.
To make the layout work without crossing traces I reversed the connection order low to high bit, you will have to reverse the bit order somewhere in the code as well.
Things I am still working on:
Add some runtime selection of messages/display Add PWM control of brightness Add more display tricks to the software, perhaps some font variations.