This is one of the easiest and simplest builds I've done so far but the results are pretty impressive. This is a great project for beginners.
It's a single board POV display. If you don't know what a POV display is Google it.
Once you've completed it all you have to do is find something that spins to attache it to. I used it on a ceiling fan with a little bit of tape to hold it on. Many people have come up with ways to attach POVs to bicycle wheels as well.
Step 1: The Parts You'll Need
The parts list is pretty short for this one. The MicroView is a tiny Arduino with a built in OLED display. They run around $40 from Sparkfun.
• 5cm x 7cm breadboard
• 8 - 5mm leds
• 8 - 330ohm resistors
• 1 - 0.1uf capacitor (if you want to add headers for the FTDI breakout)
• 9v battery
• Battery connector
• Female headers
Step 2: Build the Circuit
The build is pretty basic. Solder all the LEDs to the long side of the board. When wiring, the top LED will be LED1. Add a 330ohm resistor to the input of each LED. Solder Female headers to the board to match the MicroView pins. I also added headers to connect the FTDI breakout I use for programming the MicroView. Next I connected LED 1-8 to pins 2, 3, 5, 6, A0, A1, A2 and A3. Remember to start with the top LED and work your way down. The 0.1uf capacitor is for the reset trigger from the FTDI breakout. If you don't know how to attach the FTDI there are instructions on the MIcroview website here. Attach the wires from the battery connector to VCC and ground.
Step 3: The Code
The code is a little tedious and eventually I may write a font library but I haven't yet. I write all my code at codebender.cc so that I don't have to worry about losing it.
This first code is really just to test all the leds and make sure everything is working properly.
This next bit of code was a little harder to make. It just spells out my daughter's name "VIOLET". You can see how I formed the letters and add whatever letters or shapes you want. You can easily change the delay for the speed it will be moving by changing delay = 2; to whatever you want.