This post will describe the electronics I used to drive and control the LEDs for my element display. These were designed by my good friend and very skilled electrical engineer Bill Porter (www.billporter.info) and built by him and myself. To read about the project as a whole, see the introductory post.
I’m not an electrical engineer, but I will try to describe what I can here. Bill has a much deeper knowledge of this sort of thing, and has posted a much more in-depth article about how all this works on his website, which he has dubbed the Elemental Illuminator.
My original plan for the display’s illumination was to simply wire the whole thing in a “constant on” fashion, so that I could “plug in” the display and everything would turn on at once. Bill convinced me that a programmable display would be much cooler, so he got to work and designed all the control circuitry himself for my project. This consists of 9 microcontroller boards that the LEDs wire into, which are arranged in series. At one end of the chain is a master controller Arduino shield that Bill also designed. This is mounted to the bottom left front corner of the display - it appears on the front for easy upgrading and to facilitate Mode #4 below.
The microcontroller boards on the back of the display can handle up to 16 LED strips, meaning theoretically I would need 8 boards total to cover all 120 LED strips. I actually ended up needing 9 boards, because of the backboard being broken up into sections. This meant that all the LEDs for a circuit board had to be located on the same section of backboard, so no wires would cross a gap. The layout is such that there are only two electrical connections between adjacent backboard segments – one for data and one for power. We used a phone cord for data transfer, and thick gauge speaker wire for power.
Currently there are four modes programmed into the controller, switchable by power cycling the device. These are most easily seen in the video posted in the intro post, but I’ll describe them here as well. Fun fact: the master controller has 1 kB of RAM, and the current programming leaves just 5 bytes left over!
Mode 1: Slave
This mode allows the master controller to accept commands. For now, this mode does nothing. I plan on writing a program to interface with the display in this mode that will allow me to control the lighting through a GUI interface on a tablet PC. The overall vision is to have a graphical periodic table displayed on the tablet, where the user can tap a particular element, group of elements (alkali metals, noble gases, etc.), or state of matter and have the corresponding elements light up on the display. It could even have a “quiz mode” where a multiple choice question will be asked, the potential answers will be illuminated on the display, and after an answer is chosen the correct one will blink. Stay tuned!
Mode 2: “Breathing”
This mode slowly fades the brightness of every LED from zero to maximum, then back down to zero. It makes for a nice stress test of the display, as it takes it to full power on all LEDs.
Mode 3: Twinkle
This mode randomly selects an element, a brightness value, and a time value, and fades the LED strip to the chosen brightness over the chosen duration. This is done for 15 elements simultaneously, to achieve a nice “starry sky” effect. The rest of the display remains on at half brightness. This will be the default mode for display, because the light is not too bright at any given time and the twinkle effect gives the table a bit of motion.
Mode 4: Equalizer
This is the fun one, and was a last minute surprise addition by Bill. This converts the entire display into an equalizer, allowing it to listen to ambient noise (via a small microphone on the Arduino shield) and display the spectrum on the columns of the table. This one you really have to see to appreciate, courtesy of Bill's channel:
All this was the most expensive single part of the whole project. The Arduino master controller, the 9 microcontroller boards, and all the necessary wiring came out to about a third of the total cost. The control this affords and the possibilities it opens up for future software modifications, though, makes it definitely worth the price. Check out the following links for more info on the other portions of the project: the backboard, acrylic shelves, and the LEDs themselves!