Welcome to my first Instructable, I have created a rainbow lamp using items I have found left over from BBQ's, found in a skip and some nice addressable LED's that I ordered, combined with an Arduino, I think the end result is quite a nice effect.
Step 1: Gather the Goods
For the wire I used CAT5 which I stripped the out covering off, which is an economical way of getting wire, most of us have received ADSL Routers and other equipment that has a 1-2 meter CAT 5 cable, that is sat in the box, unused and unloved.
Snip the ends off, cut down the outer sheath 2-3cm, using pliers, hold one of the pairs (There are 4 pairs, Orange, Blue, Green and Brown) and pull down while holding the main bundle and outer, this will tear through the outer and enable you to easily access the cables inside.
I would suggest disposing the pair that you used to split the outer with, as the stress could possibly have broken the inner copper strands.
The Plastic Wine Glasses, I picked up mine at a Supermarket, the type typically used for BBQ's. I bought clear ones, which in hindsight was not so good as I ended up having to scrub them with 600grit sandpaper to make them opaque, this can be seen in the next step.
Addressable LED's, I have used 6off 8mm PL9823 ( Datasheet )
6 x 100nF (code 104) Ceramic Caps ( for Decoupling )
1 x 150ohm .25w resistor
An Arduino, for mine I have used a Nano.
Cardboard / Wood / Anything else you can think of to hand them off, I used the cardboard out of the back of a clock.
Step 2: Tools
Only a few basic tools are needed.
Dremel type tool, or if not available, a hacksaw and small round file.
Fine Marker Pen
Third Hand / Helping Hands
Hot Glue Gun
Eye protection, and any other safety equipment you deem necessary and appropriate.
Step 3: Preparation
As can be seen in the Photo of the round cardboard, I have recycled this.. twice !
Mine I was lucky and had 6 equal divisions already done, so this for me needed no work, if you are going with 6 lights, you will need to create something similar.
Next, I removed the detachable bases off the Wine cups.
I then, used a Dremel and cut where the base attached to the stem of the glass which left a hole around 9mm in diameter, then using a file I cleaned up the inner edge so the LED was a snug fit.
Next came the fun part, using a sanding block, or sanding paper, around 600grit, I sanded the glass until they were opaque and would diffuse the light better. In the picture are examples of before and after, am sure you would agree the opaque/diffused look is much better.
Step 4: Fitting the LED's
The LED's are very easy to understand and use, they simply daisy chain, the FLAT side of the LED is Data Out (DO), the opposite side is DATA IN (DIN). It is a case of connecting in series :
Ardiono -> 150ohm Resistor -> DIN DO -> DIN DO -> DIN etc..
What does need to be done, is between the Arduino and the LED DIN a 150ohm resistor should be used to reduce the noise on the line and protects the digital pin of the Arduino.
Using the datasheet for the LED's I marked the flat side on each LED as once glued in this would not be easily visible to ensure I had good visibility of the LED orientation.
Using the Helping hands, I Hot Glued the LED's into the Glasses.
To save any complications, I used the same coloured wire for each pin on each of the led's so I knew that Orange was DIN, blue DO, Brown GND and Green was VCC.
Next, I soldered the 100nf De-Coupling Capacitor between VCC and GND on each LED.
Once everything has cooled, I slipped shrink over the Data Pin wires, checked there was an air gap between VCC and GND (By using a cable tie) I then again used the hot glue gun to ensure everything was held stable.
Step 5: Getting There...
Next I wanted the lights to hang at different heights so I measured from the LED 2inches, put a cable tie round the group of wires, and increased this by 2 inches for each of the other lamps.
Again, out with the Hot Glue gun, and fixed them in place to my cardboard (really need to think of a better name for that !)
A word of caution, if you overdo the hot glue, don't put your hand there to catch it, don't ask me know I know not to do something that DUMB !
Step 6: Connect It Up !
Now onto getting closer to lighting up your masterpiece !
Connect ALL the VCC's together and solder them, solder another wire onto this and connect it to VIN on the Arduino.
Connect ALL the GND wires together and solder them, again, solder another wire and connect this to a GND on the Arduino.
Solder a 100ohm resistor connect the Data IN (DIN) wire, can connect this to Pin 6 on the Arduino.
Download the Adafruit Neopixel library and import it :
Load the "strandtest" example, find the line :
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
Change the line to :
Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);
The number changed is the amount of LED's in the string.
Once uploaded, using a 5v power supply connect the Pos (VCC) and Neg (GND)..
Sit back, have a cookie, bask in the glory of your hard work...
Personally I thought the flashing was a bit too DISCO, so I commented out the following lines :
// Some example procedures showing how to display to the pixels:
// colorWipe(strip.Color(255, 0, 0), 50); // Red // colorWipe(strip.Color(0, 255, 0), 50); // Green // colorWipe(strip.Color(0, 0, 255), 50); // Blue // Send a theater pixel chase in... // theaterChase(strip.Color(127, 127, 127), 50); // White // theaterChase(strip.Color(127, 0, 0), 50); // Red // theaterChase(strip.Color( 0, 0, 127), 50); // Blue
rainbow(20); rainbowCycle(20); // theaterChaseRainbow(50);
And there you have it! I hope you like it!