This is a fairly easy project to make a programmable LED fan using programmable LED strips and a thrift store fan. All in all it took me about 2 hours to get everything attached, soldered, and tested. But I do this sort of thing a good bit, so it may take you longer.
To make this project you need the following:
- A strip of individually programmable RGB LEDs. If this is your first time, I strongly recommend the Adafruit Neopixels. For this project I used a Dotstar strip by accident because I wasn't paying attention at checkout.
- I recommend using as high a density of LEDs as you can, since the fan blades aren't huge. For this I used a 144leds/meter strip and it looks great.
- I only put LEDs on one fan blade and it is plenty bright. But if you want to go all out you can run these LED strips in parallel and put one on each fan blade if you want. Just be aware that this will pull a lot more current and cost more.
- It is nice to have a fan with a few speeds. I would also go pretty big - I went small as this was a proof of concept, but it works well so you may as well go for it!
Step 1: Check Your Wiring and Make Sure Everything Works!
Hook up your light strip to your arduino or raspi, and make sure you can run your example code and light up your LEDs. This is an important step!
These things can be a bit tricky to get going and wired up the first time, so take this step seriously. I highly recommend reading adafruit's excellent tutorials about these LED strips, which also includes example code :
For both neopixels and dotstars they are not specified to work with 3.3V data lines, but prefer 5V instead. Some Arduinos do this, but many are 3.3V, as are the raspis (to my knowledge). However, the nice thing is that your controller is talking at the strips, and the strips will play nicely with a 3.3V controller, so in my experience you can hook your pi or arduino data pin(s) straight up without issue.
Step 2: Solder the LEDs to Your Slip Ring
You'll want to avoid having too much extra wire length since it is a liability one things start spinning. So do a dry run of how you want your LED strip to sit on the fan blade, and where you want your slip ring to sit on the front of the blades, and cut your wires down to length. Your LED strip may come with a connector on it, and I'd recommend cutting it off at this stage since it's probably more trouble than its worth.
You should also cut your LED strip to the final length that you want at this stage. One of the cool things about these strips is that you can just cut them with a pair of scissors and they'll still work. You can even solder wires to the end that you cut off, and use it as though it had never been cut. Basically these strips just index from the first LED to get the command signal, so you can hack them up at will! This means you can buy a long strip, and cut it to length for different projects (or many fans!).
Once you've cut your wires to length, solder the LED strip's wires to the slip ring wires. If you have a 3 wire LED strip, just solder 2 slip ring wires to each LED strip wire. If you have a 4 wire strip like I did, then do 2 wires to power (red) 2 wires to ground (black) and one wire to each of the data lines.
This is a good time to re-check that your wiring is correct and that your slip ring works as advertised, so I recommend hooking things back up again to your Arduino/Pi as a sanity check. Make sure you don't have any of those newly-soldered wires touching!
One you've verified everything works, wrap your new solder joints in tape to avoid shorts, or just hot glue it all like I did.
Step 3: Mount the Slip Ring and LEDs to Your Fan Blade(s)
It's pretty hard to glue silicone to anything, so i ended up using some cyanacrolate super glue (which I hear works) and then just backed it up with clear packing tape to hold the strip to the fan.
I then hot glued the commutator to the front/center of the fan blades. Make sure to center it as best you can, and give the fan a few hand spins to make sure it's on straight as well. The nice thing about hot glue is you can adjust a bit if you're off the first time.
Step 4: Balance Your Fan Blades!
If you turn your fan on, it will now probably shake around pretty angrily because you've ruined the balance. Glue some rocks or nails to the other fan blades until the fan stops shaking terribly when turned on.
Step 5: Drill a Hole in Your Fan's Front Cover, and Run the Wires
Knock a hole in the fan front cover to run the slip ring wires out. I recommend making the hole bigger than any connectors you may stick on those wires later on, so you can take things apart again later.
If you're lazy like I was you can just tape your arduino to the front of the fan, but I recommend attaching some extension wires so that you can mount your controller at the base of the fan.
You're now ready to rock, so have fun.