Multiplexing, Making and LED cube

Has anyone seen these:


I would like to make a 444 one.
I orders 120 LED’s with 100 resistors off ebay for less then 5 bucks, good i love ebay.

So I found wiring diagrams for the cube, it should use 16 ports. I’m just wondering how exactly i connect it to the board and how do i program it to change it from nothing to ground and to 5v. If someone can help here it would be greatly appreciated.

Has anyone else built one of these? If so, post some picture or a video.

P.S. heres the explanation of the multiplexing.

I couldn’t download the PDF (without joining something), and haven’t seen the schematic of the MiniPOV3.

You might want to find and post links to the various parts.

I suspect that they’re driving the LEDs directly from the PIC (or some processor), which may not be a good idea (the uP can only drive so many LEDs).

Looks like they drive each plane of LEDs with one pin, and then drive an anode on each plane with another pin.

What board are you going to drive this cube with?

Get us some more info, and we can probably help you more.

Alan KM6VV

I will see what i can do about getting the PDF

I was going to use the bot board 2.

Thank you

I could not upload it here but i got a link for you
208.96.67.28/cube.zip

The link is fine. Thanks for posting it. Probably preferable to actually posting someone’s PDF.

I saw the link to the ATtiny2313 “cube” code in C. You might be able to compile the C code on the AtomBasic PRO module, it has a GNU C compiler. Otherwise, the code could be translated to Basic.

Of course, the image table is going to get WAY bigger! and you’ll have to add to the rows and columns.

As they appear to be doing full multiplexing, the current won’t “add up”, as only a single LED will be on at a time. However, the more LEDs you multiplex through, the dimmer they will get unless you increase the current over the shorter “on” time. So, more current is demanded. The 470 ohm resistor mentioned might have to be lowered to increase the current when multiplexing more LEDs.

Alan KM6VV

I will be using 100ohm resistors because it will be running at 5V instead of the 12V

I still don’t quite understand how this all works.
if you understand the multiplexing could you explain it better then they did?

LEDs have two leads, anode and cathode. We hook +5v (logic high) to one, and 0v (logic low) to the other in order to get the LED to light.

Think of a checker board (X-Y array). you can define any square in the checkerboard by it’s row (Y) and column (X). If you put an LED at each square, and connected all the cathodes in a row together (across) and all anodes in a column (up/down), then you’d have 8 anode connections and 8 cathode connections. Pick one of each and attach the battery + & - (or a high pin and a low pin of a uP), and you’ll get that square’s LED to light.

They’ve just expanded that to all cathodes on on plane, and brought out all anodes in a vertical column (9 anodes in a 3 x 3 plane) connected together. So they have 3 cathodes (3 planes) and 3 x 3 anodes brought out. Select a cathode, select an anode, apply power, and the “intersection” of the column and plane supply power to a single LCD.

Rotate through all the cathodes and anodes, turn on power on the one(s) you want to light up, and presto! POV makes all the selected LEDs appear to light up at once, even 'tho we’ve only turned on one at a time!

Alan KM6VV
P.S. Beth, this time is see the html stuff at the top!

I attached a quick image to show how it works. I too was confused when I thought about how it works.
2x2led.png

OK, now expand that into a 4 * 4 * 4 drawing!

Alan KM6VV

I understand the wiring, im just no show about how to connect it to the board, my understanding is that you need to be able to break the connection on the ground to only light up a single LED, that way the others wont have a complete circuit and therefore wont light.

You use effectively light up LEDs between TWO output pins of the uP.

So if both are high (5v), the LED doesn’t light
both are low (0v), the LED doesn’t light
One high and one low (with proper polarity) the LED LIGHTS!

So for a 3 * 3 * 3 cube, you’d use 3 + 9 = 12 pins to drive.

Alan KM6VV

I wonder in the 2x2 example if you simply wired up 1 and 2 to IO pins lets say P0 and P1 and you wired up A and B to lets say P10 and P11. Now assuming you have appropriate resistors in place, I wonder if you could simply do something like:

; don't want any lights on, setting both of these high will not allow current to flow...
high p10
high p11

; Ok I now want to light up A1
Low P10
high p0

;now turn on A2
low p0    ; turn off A1
High p1 ; 

; now turn on B1
high p10  ; turn off Row A
high p0
low p1
low  p11 ; Turn on Row B
...

; My guess is that it should not be hard to try out…

Kurt

P.S - I may be all wrong

Well you probably could do that with maybe a 333 cube, but with 64 LED’s I am not sure you would have enough I/O.

Sure you would! 4 * 4 = 14, + 4 = 20 I/O pins! Well on some uPs anyway.

Of course, if you connect LEDs in pairs, back to back, then you can double the number of LEDs for the number of anodes and cathodes used.

Alan KM6VV

New Math? :laughing:
Actually the total is correct just a minor typo. So you could do this on a BAP28, but you would need to disable the speaker to get P9 back…

Kurt

I don’t really understand. why 44+4? shouldn’t it be 44*4? or is there some specific way of wiring a 3d cube?

Would also need to make sure you used the 3.3vdc pins for the cathode side. :wink:

What I don’t know is how do you program it to work in 3D? These things are like 3D displays. Imagine a 1080 HD Cube. A cube this dense would have to be extremely transparent. I read an article a while back regarding transparent circuits and it was very cool.

As for 3.3vdc I will leave that to the experts :wink:

But as for how many IOs you will need. The idea in the article is that for a single layer of the cube you have one IO pin per each of the LEDS so in this case you would have 4X4=16. Then for the other pin of each of the LEDS on a layer you wire them all to each other on that layer. So to activate an LED on that specific layer you would pull the layers IO line LOW and then set the IO associated with the specific led in that layer to high. Then you connect the 16 IO pins of each layer to the corresponding pin on the other 3 layers. So you have 16 pins for selecting which pin in a layer and 4 pins for choosing which layer. I am sure I explained that as clear as mud.

Kurt

Thanks Kurt, that did help.

So in that case you would not need to multiplex, would you?