# 3D LED Cube

Discussion in 'LEDs and Optoelectronics' started by galantida, Nov 1, 2012.

1. ### galantida

19
0
Oct 27, 2012
3D LED Cube Project

To give you a visual of the project here are some videos of cubes that other people have built.

Before starting I have done some research. It seems like a good and fun place to start would be using the Arduino prototyping platform. I purchased an Arduino Mega 2560. It is basically a tiny computer with a number of digital and analogue interface ports that can be configure to run as either circuit inputs or outputs.

http://www.instructables.com/id/Led-Cube-8x8x8/

I also found some good sites that show how to solder the LEDs in a cube formation. One method is to solder all of the Anodes of the LEDs together across the row and all of the cathodes of the LEDs across the column. This allows you to light any one LED by applying voltage to its row one side and GND to its column on the other side. I have not yet worked out the layer selection yet.

https://courses.cit.cornell.edu/ee476/FinalProjects/s2008/pae26_rwc28/pae26_rwc28/index.html

I have soldered together projects from other people’s schematics in the past but I don’t seem to be learning from them. My objective for this project was to design the circuit on my own with a little help from others of course.

After a reviewing some other projects I decided to use 3-8 decoder chips to drive the cube. There will be one decoder chip for each coordinate in the 3D cube. This will allow me to send a coded signal via the Arduino to the 3 inputs of the chips and output on one of the eight cols, row or layers of the 3dcube.

For example…

On the Arduino I have outputs that can be either on or off.

Think Binary!
001 lights row one.
010 lights row two.
011 lights row three.
100 lights row four.

The decoder chip can read this binary input and then supply voltage to the corresponding row in the cube. I plan to do the same thing for the columns and layers of the cube as well. This will allow me to control 512 LEDs in the cube using 9 outputs from the Arduino. This will be 3 outputs for each coordinate (x,y,z) in the cube.

I have received my parts and am currently in the process of experimenting. I’ll keep you posted in this thread..

19
0
Oct 27, 2012

19
0
Oct 27, 2012
4. ### galantida

19
0
Oct 27, 2012
Project Update

Hello All,

The Cube
My project is still progressing. Instead of single color LEDs I actually decided to brave using RGB LEDs and an 8x8x8 cube. This turns out to be 512 RGB LEDs but since there are three colors in each it is more like 1500. At 4 pins on each LED (One for each color and one ground) that is in the neighborhood of 2000 solder connections. About 20% done and I am getting very good at soldering.

First
I am connecting all the red green and blue pins on each layer of the cube. This means that each layer has three wires coming off. One for each color, red, green and blue. When you apply positive voltage to the red wire of a layer you technically apply voltage to all the red LEDs on that layer.

Second
Then I connected all the cathodes from each LED in columns. This means there are 64 negative lines coming off the bottom of my 8x8x8 cube. One for each column. When you apply negative to any one of these wires you apply negative to all the LEDs in the column that that ground is connected to. If you apply negative to a column and positive to the red wire coming off a layer a single LED at that column and layer will light.

This configuration is similar to my first idea in that I can light any single LED in my 3D cube. In an 8x8x8 cube this would require a lighting driver capable of 512 duty cycles each 30th of a second so your eye would not perceive the blinking. The problem was my 16 MHz Arduino could only handle about 60-75 cycles before the LEDs appeared to blink.

The beauty of this new 3D cube design is that once you apply ground to a particular column nothing stops you from lighting more then one LED in that column. With a little tweaking to the software I modified it to send RGB signals to all eight layers of the active column per duty cycle. This means once I apply negative to a column I simply light all the LEDs in that column that are necessary in a single cycle. Since there are only 64 columns this works perfectly without flicker.

The Circuit
I did use the 3 to 8 decoder chips on the bread board but slightly differently since I changed the cube design. My cube is designed so X and Y are on the same plane as my table top and Z determines the elevation above the table. There is a chip for each row in the cube which total eight chips. Then a single chip that selects the active column in the cube. One chip selects the X and the others select the Y. Simply put the single X decoder chip selects the appropriate one of the eight Y chips which then connect to the 64 grounds coming off the cube. One Y chip for each rows 8 columns. See the diagram below.

Then since the Arduino Mega has so many outputs I had enough to directly connect all the RGB wires from each level to output pins on the Arduino. There are 3 colors for each of eight layers so this totaled 24 connections. I say directly connected but I did have to put resistors on these lines. (100 Ohm for Red and 50 Ohm for Green and Blue). This will run them at the peak of their power listed on the data sheet. I figure since I am not running them continuously and cycling them this is OK. I have run them for days like this and they seem to hold up.

Food For thought
I have seen some people put transistors between the Arduino and their circuit when lighting more than one LED off one Arduino output. I only have one LED on the RGB outputs but I have 6 RGB which is really 18 off the negative output pin. This worries me but I am thinking that since I am connecting to ground through a 3-to-8 decoder that is it actually drawing power from the chips positive and negative connections rather than running through the Arduino. If I have this wrong please let me know, else I’ll find out soon enough when I burn out my Arduino.

More Food for Though
In my testing I have successfully combined colors to get purples and yellows. It’s really cool and allows me to have 15 different colors in my cube. I would also like to add the ability to control the brightness of each LEDs RGB independently not just its on and off state. This would allow me to increase the number of possible colors. I tried flickering them but my Arduino is just not fast enough. A big part of the delay is switching the Arduino outputs. I am looking in to ways to speed this up by directly accessing the registers on the Arduino chip. I am open to any other ideas to do brightness as well.

I’ll try to post pictures and schematics.

19
0
Oct 27, 2012