DISCLAIMER: I HAVE INCLUDED SOME AWESOME HUMOR (in my belief) SO DO READ EVERYTHING :P.
So my teacher told me about this amazing Spinning LED Project and asked for any volunteers thus without a thought i decided to do this even though I had no clue what it was :P.
This is a very simple but at the same time a very unique way of making a display and it looks cool too!!!. With a decent about of motivation and the required skill and tools you can easily do this.
It is a simple strip of LED's which blink at a very fast rate in a manner that they make a sequence which when mounted onto something rotating it will display the sequence (of your choice by programming) aka the phenomenon 'Persistence of Vision' (PoV) and believe me i did not think it would work till I actually did it my self.
So lets DO THIS!!!!!
Step 1: Items and Prerequisites
So here we go!!
Prerequisites you need:
- Knowledge about basic circuits and components (including LED's)
- C/C++ AVR microcontroller programming
- Soldering Skills
Basic Item List:
- Red LED's x 7
- Soldering Iron and wire
- AVR Programmer
- ATmega/ATtiny microcontroller (I have used ATtiny24 in this tutorial but any would do with minimum 7 pins)
- CR2032 Cell (alternate sources can be used but this by fair is the lightest).
- CR2032 holder (if you can't find this just stick wires of power onto the cell)
- Tape!!! (every project needs one :P)
Step 2: Make Your Schematic
Fail to plan and you plan to fail.
The above being said we first of all make the schematic. We are going to do this the 'DESI' (orthodox or old fashioned) way, so bring your paper and pencil and start sketching!!! (I havent uploaded this part :P)
So solder the the connections as shown in the picture with the black background and blue tracks. The ATtiny24 is the IC that is in the diagram and you can see from the notch that where its first pin lies. Make sure you get the polarity right for the cell holder and the MCU.
Ok since i used my ATtiny24 i am going to follow through that but you can do it on any microcontroller with at least 7 pins.
As you can see the LED's are connected to PORTA from PA0 to PA6, since you need only 7 to make a character display.
As you can see in the 3rd picture the device is only the portion of the veroboard you see visible, the rest is just extra veroboard (as in other pictures) and i was to lazy to cut it :P.
The paper tapped below is to avoid the components legs from scratching the fan's paint.
Step 3: Program That Tiny!
So now you got to program that thing, so this is where the programmer comes into action!
I have given you the hex file for the program so now you just have to burn it into the ATtiny24.
Also to modify the code (if needed as i have explained further) you can change and make a new hex file as I have added the main.c file in which the code lies.
Also the code explains where you need to make the change to change what output it displays so you probably need to make changes to see your name in spot light!
About the uploaded files
- The 'main.hex' is of ATtiny24.
- The code is in 'main.c'.
- 'Makefile' is of ATtiny24.
- 'Spinning LED Display.*' are both Proteus Files.
(THE CODE'S DISPLAY FUNCTION IS A MODIFIED VERSION OF WHAT I FOUND ON THE INTERNET AND WILL STATE THE REFERENCE AS SOON AS I FIND IT, IF IT IS YOURS PLEASE MESSAGE ME TO REFERENCE YOUR SITE OR LINK HERE HERE)
I found it the orignal code is from here! : http://blog.shparvez.net
I only did a few modifications but this guy is the mastermind behind the display function!!! (The toughest part in the making of this project)
Step 4: Plugging It On!
So this step is something you need to do carefully cause it just might cost you your sleep if something happens to your fan :P.
Multiple ways can be used to stick the sDisplay (my copy righted name of the device :P) to your fan's wing:
- Rubber Band (put some tissue or cotton where the rubber band makes contact with the blade to avoid it getting cut)
- Zip Ties
As you can see i used the zip tie approach and try to keep the joints on the wings as it gives better stability. Below the board is a piece of foam to avoid the pins to scratch the surface of wing. The foam is not soft it is a bit of a hard kind. The zip ties are in array and the only reason i did that was because i did not have a single zip tie long enough xD. But this approach does seem to give more stability.
(Btw i discovered that zip ties ARE REVERSIBLE :P so you can also pull them back out. Put a pin inside the locker and throw the lock up while pulling the strip out, might need you to experiment at least once :P)
Also make sure it is secured properly as I am sure you do not want that baby to literally fly.... (cause mine did when i used rubber band and rope approach :P but it lived to give another display :P)
I would not consider glue cause it can cause damage to the fan's paint if you happen to pull it off.
The fan will wobble a bit if you don't attach counterweights to the rest of the wings, so use anything to weigh the device and put the counter weight on that distance from center on the other 2 wings. You can use card board pieces stacked together or even paper just to give the counter weight. Although I ran my fan wobbling for a long time without counterweights I do not recommend it as the manufacturers surely did not design the fan to dance on its axis :P.
I attached my device such that the first LED was at a distance of 42cm from the center and it gave me a good display.
The CR2032 cell is rated about 175mAh - 200mAh and the current i tested of circuit was about 10mA so a single cell should last 17 to 20 hours max.
Step 5: Viola!
Now turn on the fan and bingo!!! you got an SLD!!!!
(see i added an 'an' before the word SLD and even though its 's' is not a vowel but it has a vowel sound in SLD thus you will put an 'an' before it! (THIS IS NOT VERIFIED I ONLY PASSED COMMUNICATIONS COURSE IN UNI))
Adjust the speed of the fan to get the display constant.
If you fan moves clockwise and your display is also moving clockwise then reduce speed and if the display is going anti-clockwise then increase the speed to get the display to be constant. Do the opposite if the fan is moving anti-clockwise.
Step 6: VPCB
So i also made this PCB version (no i am not obsessed.....)
The packing is just for show casing :P
Step 7: Future Work
The display is constantly moving until you adjust it so an optical switch can be used to read the speed of the fan and
adjust the program such that the DELAY changes according to the speed and the display remains constant. It might need a bit of trial and error.
Comment if you see any other improvements from the ones listed below. (I will add your reference and add it to this instructable if i deem it WORTHY!)
- Use brighter LEDs or using transistors to brighten up the LEDs.
- Turn on LED's using sink from MCU rather than source, as sink can provide more current.
- Multi-colored display by using RGB LEDs.
- Increase voltage to brighten LED's further for example using a mobile battery of 3.7 volts.
- Run the LED's in sink mode rather than source (i.e LED turns on at low) as sink current is more than the source current of MCU.
- Adding more display characters by broadening the function in the code.
- Also the ATTiny 24 space was almost out when i loaded the program so if you want to expand and make modifications you will need to go for a higher model like ATmega 8 maybe.
- Mount it on a small fan and impress your guests or the people who look at your windows :P.
- Sensor to measure speed of the rotation and through interrupt call cause the delay in such a manner as to make the display stable (I am working on it a bit).
- Making a program mode into it so as to a user can actively change the output display without connecting to programmer, according to will, like a 4 button or 3 button interface (working on it a bit).
- A better and cooler name for the device :P.
Comment, it makes the authors very happy! :)