Pages: [1] 2 3 ... 5   Go Down
Author Topic: My 3x3x3 and 5x5x5 LED cube  (Read 7814 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

My name is Mike and I'am currently living in the Netherlands. This year I started my first study: electrical engineering smiley.
So I went through some things what I could do to help me with my study and came out by the 3x3x3 LED cube.

Now I do understand almost everything and I should order my parts soon. This is my parts list:
-3 2N3904 NPN to use as ground switch (40V/200mA)
-3 22kOhms resistor for the NPN transistors.
-27 green LED's (2.2V/20mA)
-I calculated with this program: http://led.linear1.org/1led.wiz , that I needed 9*150ohms resistors. Though on the internet
 I found that most people uses ~220Ohms resistors. I'm not sure why they do that, so if anyone can tell me I would be thankful smiley!
-Perfboard, wires, etc
-Arduino Uno rev1.

Each transistor is connected to 1 of the 3 cathode levels. Then all the 3 transistors are soldered to 1 gnd wire (which then need to plugged in, into a GND port from the arduino).
Each transistor's base is connected to a digital pin from the arduino. When the cube is complete, it does look something like this: http://www.instructables.com/id/LED-Cube-and-Arduino-Lib/step3/Build-the-Circuit/

But I got a couple questions about what I can lit and what I can't:
-How many LED's can I lit up at the same time?
-Is it possible to lit LEDs on two different levels by grounding 2 or 3 levels at the same time and then let a current flow through a column? (So you can get a corner of 3 LEDs lit up the same time, without switching on high frequencies)
-Is it possible to turn on all 9 LEDS at the same time on 1 level?

Thanks in advance for helping a newbie smiley-wink.

« Last Edit: April 06, 2013, 03:19:44 pm by WonderTiger » Logged

Eugene, Oregon
Offline Offline
Sr. Member
****
Karma: 9
Posts: 388
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Technically, you could light up all the LEDs at one time, but that isnt how the software usually works. Usually you light up one led, or you light up the leds on a plane at one time, but that isnt true of all cubes. For your 3x3x3 cube, you will likely light up between 0 and 9 LEDs at a time. using up to 180mA at a time. each LED has a 33% duty cycle.

You probably want the 150 ohm resistors, but the only problem with using 220 ohm resistors is that they wont be as bright, so it will still work, and the LEDs will last longer at 220 ohms, but it may be insignificant. People using 220 ohm resistors maybe using LEDs with lower forward voltages, red are usually very low.


I think Its possible to do all the other things you list, but you probably wont want to do them.
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok then I will lower the value from the resistor  to around 180 ohm (to be in the middle of safe and bright smiley-wink). So you are saying I can switch on all the grounds from each level (3 grounds in total) and then turn on 1 column so I get a vertical line that is lit. So I also can make a wall of LEDs just by turning on all the grounds and turning on 3 columns?

And I don't get your last sentence  smiley-roll-blue "I think Its possible to do all the other things you list, but you probably wont want to do them." Are you reffering to an easier way to make a 3x3x3 LED?
Logged

Eugene, Oregon
Offline Offline
Sr. Member
****
Karma: 9
Posts: 388
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You could turn all 3 planes low, and turn one column high, lighting up all 3 LEDs, however, if you are resistored to drive your LEDs at 20mA, and you run 3 LEDs off one controller pin, you will be running 60mA on a device rated for 40, and will likely do damage to the microcontroller (if you run the leds at 10mA, you would be within spec.

You dont need to run the cube that way, the way you normally run a cube is by cycling through each layer, and lighting up just the LEDs in that layer that you want lit, then moving to the next layer. The LEDs appear to all be lit at the same time because of persistence of vision, but they are actually flashing on and off very quickly.

What i was referring to was the way you control the LEDs, there are many ways to do it, but will probably want to run things in loops things in sequence, but technically you dont have to do it that way.
Logged


Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4554
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Each transistor is connected to 1 of the 3 cathode levels.

Cathode will work but normally you'd make each level an anode. This is because most LED drivers chips, etc. are designed to connect to LED cathodes.

-I calculated with this program: http://led.linear1.org/1led.wiz , that I needed 9*150ohms resistors. Though on the internet
 I found that most people uses ~220Ohms resistors. I'm not sure why they do that, so if anyone can tell me I would be thankful smiley!

Because trying to run LEDs at exactly 20mA with resistors is a BAD IDEA.

There's about a million threads on the subject in these forums but here's the short version:
a) LED resistance isn't constant, it varies with voltage.
b) At the "20mA" point, the change in resistance is exponential, ie. a tiny error in voltage can produce a massive error in current.
c) Individual LEDs can easily vary by 10% so the error in (b) will happen, damaging the LED.

Solution, either:
i) Aim for 15mA (which won't be much dimmer), or
ii) Use a constant-current circuit (eg. LED driver chip)

The people who choose 220 Ohm resistors are going for the option (i), ie. run at 15mA.
Logged

No, I don't answer questions sent in private messages...

Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks to you all! Then I will get resistor aimed @15mA. As well with the programming I will only lit up 1 layer at the time smiley!

Control question:
If I want to lit up the whole cube, I need to do the following:
-Select layer 1 (turn off layer 2/3)
-Turn on all LED columns
-Turn off all LED columns
-Select layer 2 (turn off layer 1/3)
-Turn on all LED columns
-Turn off all LED columns
-Select layer 3 (turn off layer 1/2)
-Turn on all LED columns
-Turn off all LED columns

Or is this possible as well? (I'm newbie in programming as well smiley-wink):
-Select layer 1 (turn off layer 2/3)
-Turn on all LED
-Turn off layer 1
-Select layer 2
-Turn off layer 2
-Select layer 3
-Turn off layer 3

I will post some pics of building this cube!
Logged

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4554
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Control question:
If I want to lit up the whole cube, I need to do the following:
...
Or is this possible as well? (I'm newbie in programming as well smiley-wink):
-Select layer 1 (turn off layer 2/3)
-Turn on all LED
-Turn off layer 1
-Select layer 2
-Turn off layer 2
-Select layer 3
-Turn off layer 3

That will work, yes... (for any pattern which is the same in all three layers)

Logged

No, I don't answer questions sent in private messages...

Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok thanks I will keep it in mind until I got everything soldered up!

Maybe someone want to check this for the last time, to be sure I buy the right stuff:

-Transistor+22kOhms resistor should be fine right? Datasheet transistor: http://www.produktinfo.conrad.com/datenblaetter/150000-174999/163350-da-01-en-Transistor_2N3904.pdf
-LED+220 ohms @15mA GREEN. Datasheet LED: http://www.produktinfo.conrad.com/datenblaetter/175000-199999/184705-da-01-en-WU_8_56_GD_LED_5mm_gruen.pdf

Thanks  smiley-mr-green
Logged

Eugene, Oregon
Offline Offline
Sr. Member
****
Karma: 9
Posts: 388
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You are very close, but there is a critical step that is missing.


Starting with all pins low.
Turn plane 1 pin low
Turn column pin(s) high
  Wait some amount of time(1ms or more)
Turn column pins low
Turn plane pin high

Usually you set things back to a neutral position, unless you know that is what you want in the next step. Usually you turn the light on, wait, turn it off, move to the next step in the sequence.

Usually cubes run static patterns, but they can also be run by calculations (like with the game of life, or random.)
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ye I did forget the delay smiley-neutral.

Though for me its more like this, right?:
Starting with all pins low.
Turn plane 1 pin high
Turn column pin(s) high
  Wait some amount of time(1ms or more)
Turn column pins low
Turn plane pin low

I use npn transistors that will switch to ground when current is provided to the base pin from the transistor, this is why I need to set plane 1 to a value HIGH instead of low, right?
Logged

Eugene, Oregon
Offline Offline
Sr. Member
****
Karma: 9
Posts: 388
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes, you send high from the microcontroller to the NPN to turn the plane low.
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok thanks! Then If you can confirm the 22kOhm will be sufficient for the 2N3904 transistor: http://www.produktinfo.conrad.com/datenblaetter/150000-174999/163350-da-01-en-Transistor_2N3904.pdf. Then I will be ready to place my order smiley-wink.
Logged

Eugene, Oregon
Offline Offline
Sr. Member
****
Karma: 9
Posts: 388
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Im probably not the best person to ask about what transistor to use. Im actually considering using tiny logic level mosfets instead of BJT type transistors for something that only needs a quarter amp. One of the features of using an n channel mosfet is no resistor required.
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No problem, you helped me out alot on other stuff though. Thanks again!!!

I'll guess somebody else can take a look at it smiley.
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is it possible for somebody to explain me why I need to use a resistor on the base from the transistor? I did alot of reading about why a resistor is needed on the base from the transistor (as NPN switch), but I keep seeing different answer on different forums this makes me understand it less and less. So if someone briefly can explain why a resistor is needed on the base (and how you calculate it) I would be very happy with it smiley!

sorry for the newbie questions, still in the learning process  smiley
Logged

Pages: [1] 2 3 ... 5   Go Up
Jump to: