Differences
This shows you the differences between two versions of the page.
projects:ledcube [2011/05/29 14:30] elger |
projects:ledcube [2016/11/16 13:06] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | The Cube was not my idea, I stumbled upon a video of a LED cube while researching the [[http://arduino.cc|arduino]]. I found the LED cube so awesome that I decided to make one myself. | ||
- | |||
- | Now it has been build, I can understand why you can't really buy one. If you find a company that produces it, it is ridiculously expansive. And that is because it takes a lot of time just building the thing. | ||
- | |||
- | To give you some idea, I used 512 blue diffused 5mm LED's and 55 meters of silver-plated wire. This equals to hundreds of hours of pure soldering fun :-) | ||
- | |||
- | Here is a video of a first demo of the end product: | ||
- | |||
- | <html> | ||
- | <iframe width="425" height="349" src="http://www.youtube.com/embed/CpAhQGDWbUY" frameborder="0" allowfullscreen></iframe> | ||
- | </html> | ||
- | |||
- | ====== The basics ====== | ||
- | |||
- | The basic principle behind this cube is [[http://en.wikipedia.org/wiki/Multiplexing|multiplexing]]. Simply put: all the columns are connected (8x8=64 columns) and all levels are connected (8 levels). So you have 64 connections on the bottom and 8 connections for the levels. | ||
- | |||
- | All you have to do to turn one LED on, is to put ~2,5Volt on one column and 0Volt on the corresponding level. For the second LED you do this again, and for the next again ... And so on. | ||
- | |||
- | If you do this a couple of hundred times per second, the human eye does not see it blinking. The human eye thinks the LED's are constantly on. This phenomenon is called [[http://en.wikipedia.org/wiki/Persistence_of_vision|Persistence of vision]] . | ||
- | |||
- | The intelligence behind it all is an [[http://www.atmel.com/dyn/products/product_card.asp?part_id=4198|Atmega328P]] microprocessor. This sounds like a lot of work but actually you can buy a PCB with a micro-controller, serial port for programming and all basic components for using the Atmega328P quite cheaply. I bought a couple at [[http://www.avmicrotech.com/page1.php|avmicrotech]] on [[http://stores.ebay.com/AVRMEGASHOP|e-bay]]. You need only one board like the "''ATMEL ATMEGA328 Arduino Duemilanove bootloader''" for this project. | ||
- | |||
- | The only problem we need to solve now is how to add enough output pins and power to the Atmega328P so we can drive 64 + 8 connections which use about 1,28Amp at full load. | ||
- | This is done by making a sort of "driver board". It is a PCB I designed and created myself, it basically exists out of two independent parts: one for the levels and one for the columns. | ||
- | For the levels I used an IC [[http://ics.nxp.com/products/hc/datasheet/74hc238.74hct238.pdf|74HC238]] "3-to-8 line decoder/demultiplexer". This IC has 8 outputs, but only one is active at anytime. This has a major advantage because this it what we what if we need to turn on the cube one level at a time. | ||
- | A LED uses about 20mAmps so an entire level (all LED's on) uses about 1,28Amps. This is why a the 8 outputs of the 74HC238 have one [[http://www.irf.com/product-info/datasheets/data/irf510.pdf|IRF510]] mosfet each. Now we could drive 5,6Amps, witch if more than enough. | ||