Here is a short video of the led cube.
It is a good project for practice if you dont know how to solder. This was my first time soldering too, and it was a pain in the beginning. I am not so bad now that I’ve had some practice :).
The ledCube is really just a cube of leds that is controlled by an arduino. It consists of 4 layers stacked on top of each other with 16 leds in each layer. All the leds in a layer share a cathode – so there are 4 cathodes in total. All the leds in the vertical column share an anode – so there are 16 anodes. This makes a total of 20 pins, which is perfect since the arduino uno has 20 input/output pins (including analog and digital pins).
To make the cube, I made this jig by drilling holes in a wooden plate. The holes are around 25mm ~ 1in apart – thats the length of my cathodes. I bent all the cathodes in a layer and soldered them together. I made 4 of these layes and soldered all the anodes in different layers together. It was a lot of soldering and I did make a lot of mistakes. I even melt one of the leds 😀
Once this was done, I attached my cube to a perfboard, connected each anode to a 100ohm resistor and then to a wire. I connected all these anodes and cathodes to my arduino and wrote some simple code to test it. I intend to tinker more with the programming once I finish my finals.
Here is the code:
//led cube test code - by ritesh maharjan //define the pins to control the anode and cathode int ledPin[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int layerPin[]={16,17,18,19}; int delayTime = 50; long randNO; //setup void setup(){ for (int pin = 0; pin <16; pin++){ pinMode(ledPin[pin], OUTPUT); digitalWrite(ledPin[pin], LOW); } void loop(){ Rain(); } //rain - lights move downwwards one column at a time like rain drops. void Rain(){ randNO = random(16); digitalWrite(ledPin[randNO], HIGH); for(int i=3; i>-1; i--){ digitalWrite(layerPin[i], LOW); delay(delayTime); digitalWrite(layerPin[i], HIGH); delay(delayTime); } digitalWrite(randNO,LOW); }