Hello world, and welcome to my first blog post! I figured the best way to get started would be to make my first posting about one of my first projects, an LED Cube matrix for audio visualization. The bulk of the components used in the build were scavenged from the university e-waste bin (really a great resource for quality budget parts) with as few purchased pieces as possible. Because this was literally one of my first real design and build projects I opted for a completely clear acrylic case to keep the circuits visible. I went with a three-tiered design which incorporates the power and audio circuits on the bottom level that feed up to the Arduino, digital logic and USB ports on the second level, and topped the whole thing off with the LED matrix.
The overall objective was to build a simple audio circuit with some visualization and while at it, I decided to include some USB charging stations. I also included a push button control to cycle the LEDs through various pre-programmed patterns or set them to be responsive to the audio input. The toggle switch on the front disconnects the power to the audio circuit to kill the speaker while keeping the LEDs active. The wall wart I found was 12VAC – 1.5 Amps, so I constructed a bridge rectifier to convert to DC. After rectification, I ended up with approximately 17VDC. I used a LM7812 12V regulator to drive a LA4425A 5W power amp for the audio circuit and the Arduino (which is used to address the LEDs). An LM7805 5V regulator was used to power the two USB charging stations, as well as the logic ICs. Below is the basic level 1 layout used to test the audio before the addition of the necessary connections to the second tier.
Arduino and Logic Circuits:
In order to drive the 4x4x4 LED matrix I used a 74154 – 4 x 16 decoder IC and a 74155 – 2 x 4 decoder IC to give each of the 64 LEDs a unique 6bit address. Because the output of the decoders is inverted, a 7404 hex inverter IC was used to flip the signal to the 4 common anodes, thus allowing current to pass through the addressed LED only. In this configuration, the 74154 (4×16) indexed the X,Y position while 74155(2×4) referenced the Z levels. Using the port functionality of Arduino digital pins, I was able to easily shift out the required LED 6bit address and pass the data to the decoding logic. You can see in the images that I used header pins to tie everything together and mounted the Arduino on the underside of the board to save space. I inverted the headers on the second board to allow the Arduino to be bottom-mounted and held it in place with some strategic zip ties.
Assembly and Construction:
Since I was using a square stacked design, assembling the project took some patience and a lot of test fitting. Because everything was a custom fit, each board was mounted, adjusted and remounted so that I could make the necessary openings in the case. I managed to scavenge several large risers, which saved a ton of trouble trying to adjust the heights of each board and mount them level. The boards also had to be carefully inserted to avoid scratching the plastic. Getting my hands inside to make the connections leading from the upper to lower levels was a bit like assembling a ship in a bottle, but in the end, I feel the design really came through and turned out well. Here are a few images of the test fitting and spacing process.
Once everything was together, it was simply a matter of writing up some code for the Arduino. I came up with some basic patterns and played around with a few interesting functions to get some cool LED effects when there is no audio input, but as you can see in the video, it really shines when playing some tunes.
That about covers the LED cube project. Please leave comments and let me know what you think, and feel free to ask questions or give pointers.
Justin the ECENoob