The system works by timing the slot in the platter. The Arduino uses an internal timer to clock each revolution. It achieves this using an infrared gate, which triggers a hardware interrupt on every full revolution of the platter. The Arduino uses the revolution time and phase to schedule a second internal timer. This second timer uses an interrupt to schedule the timing of the LEDs, firing tens of thousands times a second to build a stable, visible image.
This work is based on Ian Smith's version of the same. His work is excellent, and his website on this topic will help provide a complete picture for this instructable.
Step 1: Gather Materials
Arduino - If you don't have an Arduino board, this link will show you where you can buy one. I developed this with a Diecimila, but I would expect the code to work on a Duemilanove without changes.
ULN2803A - This is responsible for switching the high current 12V LEDs.
RGB LED Tape - The best source I've found for tricolor LED tape is from Super Bright LEDs. A single 19.5" strip costs $19.95.
Super Bright LEDs: NFLS-RGB15
270 Ohm Resistor - Limits current to your sensor source.
10K Resistor - Pull-up for your sensor output.
You can build the platter sensor from either an infrared gate or a Hall-effect sensor. The infrared gate uses the slot cut out of the platter to disrupt the beam. The Hall-effect sensor will require that you glue a small but strong magnet exactly 180 degrees from the slot in the platter.
If you decide to use an infrared gate, you can either build your own gate from scratch or you can buy a manufactured gate. If you choose to build your own, you can use any old pair of infrared emitter/phototransistors (mine are from Radio Shack), or you can purchase the following:
Infrared Emitter - Used to provide an infrared beam to time the platter.
Infrared Phototransistor - Provides a pulse on every platter revolution.
I did not build my rig with a Hall-effect sensor. I chose to use infrared because I had the parts lying around, but a Hall-effect sensor is less obtrusive. If you choose to go the Hall-effect route, you will need to adjust a few details in this tutorial. For example, you will need to glue a magnet directly opposite of the slot. This will require changing the code loaded onto the Arduino to account for the 180 degree change in phase.
I have not tested this Hall-effect sensor, but I would expect it to work fine:
Hall-Effect Sensor - Provides a pulse on every platter revolution.