Like I have previously stated, the display is constructed from 6 8x8 5mm LED matrices. I chose to purchase these on eBay
It is going to take a little more than luck to control these using an Arduino Duemilanove or Uno. A LED matrix is wired so that a common pin controls the anode or cathode of a row or column. This allows the matrix to be controlled using just 16 pins instead of 64 individual ones. However there is another trick that has to be done when controlling a LED matrix, and that is to light up a single LED at a time. When LEDs are wired in a matrix, there are locations where if you light up 2 LEDs a third one might light up too. To avoid this, each LED is turned on and off quickly.
I chose to use an IC made by Maxim IC called the MAX7219CNG. This will allow each individual LED to be addressed in the matrix. These can be purchased at Sparkfun Electronics
. Here is the datasheet.
This IC was made to control a single 8x8 LED matrix. We will be using 6 matrices so this project requires 6 of these ICs. There is a nice library that was created
for these that will aid in the programming of this project. This IC and library takes care of lighting up which LEDs that you want to light up without worrying about turning them on and off quickly like I explained. This will allow us to easily create and display images and worry about the pong side of things and not about all the finer details of displaying the image.
Now the IC needs to be connected to each matrix using the correct circuit. I designed a simple breakout board for this IC. I am not an electrical engineer, but the schematic you see in the pictures is pretty much what I understood from this page
. Not really that complicated. I made this in Eagle
and have uploaded my schematic and board files for you. Basically there are headers for the communication pins and for the output pins that go to the matrix. There are 2 capacitors on the input power and a resistor that sets the current for the LEDs. I used a 1K resistor for my application which worked fine.
So once you have the files, you can order the PCBs (printed circuit boards) from a batch house, I use Seeedstudio
which will cost about $10 for 10 PCBs, or you can always create the circuit on a prototype board if you choose. You can see some images of my finished PCBs in the pictures.
You can order the parts needed to assemble the breakout boards from Digikey
The parts needed are:
- 6 10uF electrolytic capacitors
- 6 0.1uF non-polarized capacitors
- 6 1K resistors
- 6 24 Pin IC sockets
- Optionally you can use headers instead of soldering wires directly to the boards. I did not.
Now solder these components on to the break out board. This is a pretty simple step. You just have to make sure you put the polarized electrolytic capacitor in correctly and line the notch in the IC socket up with the notch in the silkscreen of the PCB. See the pictures for the soldering step. When you are done soldering, you can insert the MAX7219CNG right now or wait until after you solder the matrix in place, which will be next, so you do not damage the IC in any way.