My little place on the web

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:ledcube [2011/05/29 14:30]
elger
projects:ledcube [2016/11/16 13:06] (current)
Line 8: Line 8:
  
 <​html>​ <​html>​
-<iframe width="​425" height="​349" src="​http://​www.youtube.com/​embed/​CpAhQGDWbUY" frameborder="​0"​ allowfullscreen></​iframe>​+<iframe width="​853" height="​480" src="​http://​www.youtube.com/​embed/​vmqoCH1ZtPk" frameborder="​0"​ allowfullscreen></​iframe>​
 </​html>​ </​html>​
  
 ====== The basics ====== ====== The basics ======
 +
 +===== Multiplexing =====
  
 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. 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.
Line 19: Line 21:
 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]] . 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.+===== Micro-controller ===== 
 + 
 +The intelligence behind it all is an [[http://​www.atmel.com/​dyn/​products/​product_card.asp?​part_id=4198|Atmega328P]] ​micro-controller. 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. 
 + 
 +===== Driver board ===== 
  
 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. 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. 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. 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 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.+A LED uses about 20mAmps so an entire level (all LED's on) uses about 1,28Amps. This is why I connected ​the 8 outputs of the 74HC238 ​to one [[http://​www.irf.com/​product-info/​datasheets/​data/​irf510.pdf|IRF510]] mosfet each. Now we could drive 5,6Amps, witch is more than enough
 +For the 64 columns I used a [[http://​www.nxp.com/​documents/​data_sheet/​74HC_HCT595.pdf|74HC595 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state.]]. Because there is never more than one level on at any time, we do not need mosfets or transistors to boost the power of the outputs. We do need to connect 8 74HC595 together to get 64 outputs. 
 + 
 +====== Bringing it all together ​ ====== 
 + 
 +The design, build and software are made and put together is described in the following paragraphs. 
 + 
 +===== The driverboard ===== 
 + 
 +The ''​driverboard''​ is the PCB which connects the Arduino to the LED cube.  
 +I designed the PCB in a program called [[http://​www.cadsoft.de/​|Eagle]]. This software is really good for designing PCBs and schematics but unfortunately the free version has a limit on the maximum size of the PCB you can design. So in the end I actually made the board on a ''​PCB Prototyping Board''​ Actually [[http://​www.okaphone.com/​artikelen.asp?​id=977&​groep=604|this one]]. 
 +^The schematic^^ 
 +| {{:​projects:​led-cube_8x8x8.pdf|}} | {{ :​projects:​led-cube_8x8x8.png?​200|}} | 
 + 
 +The finished ''​driverboard''​ in the end looks like this: 
 + 
 +^The driverboard^^^ 
 +| {{:​projects:​driverboard_03.jpg?​200| All hooked up}} | {{ :​projects:​driverboard_02.jpg?​200 | From the top}} | {{ :​projects:​driverboard_01.jpg?​200| From the side}} | 
 + 
 +===== The LED cube ===== 
 + 
 +The construction of the LED cube is a very tedious and time consuming part, and also the most visible part. So take your time and measure twice, cut once... 
 + 
 +Some details of the construction:​ 
 +^The LED cube^^^^ 
 +| {{:​projects:​led-cube-construction.jpg?​200|cube-construction}} | {{:​projects:​led-cube-finished-layers.jpg?​200|cube-finished-layers}} | {{:​projects:​led-cube-detail.jpg?​200|cube-detail}} | {{:​projects:​led-cube-finished.jpg?​200|cube-finished}} | 
 + 
 +===== The Software ===== 
 + 
 +The software is still a work in progress, as it should be. Because there are always more effects and animations to create if you have the power over 512 LEDs on your fingertips... 
 + 
 + 
 +These are the principles used in creating the LED cube, the details might follow some day... If you have a question regarding this project, you could try sending an e-mail. I might even answer if the question is right.