Introduction: LED Chandelier

Have LED lights always fascinated you? Well they have for me ever since i wired my first circuit with my dad in grade 1.until now i have always been searching for an idea that is simple ,made out of cheap easy to get materials uses an arduino micro controller and looks great.

The basic layout of this design is an Archimedes spiral descending inwards with an arduino controling individual tri-color LED`s inside each bottle.Through this instructable i will show you how to replicate this idea and hopefully you can build on it yourself making it bigger and better!

Step 1: Parts List:

1. Tri-color common anode LED`s X 12
2. 2 pair (four core) phone wire 4-5m
3. Arduino Duemilanove or perf board equivalent
4. 12v dc converter 
5. Screw top glass bottle (plastic is ok to) X 12
6. Frosting spray
7. Small cable ties
8. Solder
9. Heat shrink tubing
10.Brass hook large
11.Brass hook small X 3
12.Perf board(Helpful for making buses)
13.Metal cable with 5 small chock blocks and some nylon cord.
14.Circular wooden board about 0.5" thick by 11"wide.


Tools:
1. Electric hand drill
2. Drill bit diameter of your wire
3. Pliers
4. Side cutters/Wire strippers
5.soldering iron

Step 2: Wooden Base Drilling and Bottle Preparation

Wooden base

This is to be the base of your lamp from which all the bottles hang so it is important that this is strong and ascetically pleasing.

1.  Print out the attached image`s (spiral1 and Spiral2) ,cut out the pages and stick the together with sticky tape or glue.
2.  Now place this template in the center of your wood on the top.
3.  Mark the hole locations with a pen.
4.  Now drill the holes with the bit that is the same size as your wire.
5.  Paint or varnish the wood now if you want.
6.  Screw in the small brass hooks into three evenly separated locations .

Bottle prep

1.  Remove any labels from the bottles with hot water.
2.  Clean the bottles removing all glue residue and dirt.
3.  Dry the bottles completely inside and out.
4.  Remove screw caps.
5.  Spray the outside of the bottle, with the frosting spray, in even coats until fully frosted.
6.  Allow to dry
7.  Now take the screw caps and drill holes through the center of them with the wire diameter drill.

Step 3: Wire Cutting and Soldering to LED`s

1.Cut lengths of your wire of  8.5" ,10" ,11.5" ,13" ,14.5" ,16" ,17.5" ,19" ,20.5" ,22" ,23.5" ,25" long with you side cutters.
2.Strip the ends of each length.
3.Working one by one place a short length of heat shrink tubing on each of the four LED legs
4.Solder the legs to their respective wire (see picture)
5.Slip the heat shrink over the bare connection and heat with your soldering iron or a heat gun.
6.Place a cable tie just above the connection.
7. Slide the bottle cap onto the wire from the opposite side to the led.
8. Now starting from the smallest wire measure and mark the wires from the bottle cap top at 2.5" for the shortest one and  4" for the second and so on with the measurements 5.5" ,7" ,8.5" ,10" ,11.5" ,13" ,14.5" ,16" ,17.5" ,19".



Step 4: Assembly

Temporary hanging for assembly
1.Cut two 15" pieces  and one 35" piece of the steel cable.
2.Make a 10" loop in the 35" piece 
3.Slide a chock block over the loop and tighten.(make sure it grips well)
4.Slide a loose chock block over the loose end of th long wire.
5.Make a 2" loop on the other end of the 35" piece and on one of the ends of both 15" pieces slide chock blocks over the loops and tighten.
6.Align the three small loops then use the loose chock block from earlier to bind them all together at the ends of the short cables.
7.Screw the large hook into a wooden beam or sealing were you want to hang your chandelier. 
8.Hook the small loops over the three brass hooks on the wood base, then hook the large loop over the large hook. Adjust the the large loop until it is at your preferred height.
9. For now we must lower the base to be able to work on it. So take a piece of nylon cord and tie it to the large hook and the large cable loop. leaving the base board about chest height off the ground.


Placing wires
1.Starting with the shortest wire in the outermost hole of the spiral. Pull each wire through the spiral holes until the previously made mark.
2.Place a cable tie on the wire above the piece of wood to hold the wire in place.
3.Screw the bottles onto their caps


Step 5: Wiring and Programing

Wiring 
We now have twelve wires sticking out the top and for wires coming from each of those.
Starting with the outermost LED number the LED leads from 1 to twelve spiraling inwards.
 LED`s 1,3,5,7,9,11 must have a common RED GREEN and BLUE bus (ie. the RED wires are all joined together the BLUE wires are all joined together and the GREEN wires are all joined together we will call them the A ,buses) and LED`s 2,4,6,8,10,12 have a common GREEN RED and BLUE bus (B ,buses).
Attach the LED`s common anode wires and buses to the following arduino pins.
LED1 anode = 0;
LED2 anode = 1;
LED3 anode = 2;
LED4 anode = 4;
LED5 anode = 7;
LED6 anode = 8;
LED7 anode = 12;
LED8 anode = 13;
LED9 anode = 14;
LED10 anode = 15;
LED11 anode = 16;
LED12 anode = 17;
RED bus A = 3;
GREEN bus A = 5;
BLUE bus A = 6;
RED bus B = 9;
GREEN bus B = 10;
BLUE bus B = 11;

These connections must be right as i have not used resistors instead i have used the pwm function of the Arduino to control the current.
Arduino sketch programing

(for information on loading sketches in arduino see https://www.instructables.com/id/Arduino-Making-a-set-of-traffic-lights/step8/Programming-Arduino/)


 int value = 0; 
  int LED1 = 0;
  int LED2 = 1;
  int LED3 = 2;
  int LED4 = 4;
  int LED5 = 7;
  int LED6 = 8;
  int LED7 = 12;
  int LED8 = 13;
  int LED9 = 14;
  int LED10 = 15;
  int LED11 = 16;
  int LED12 = 17;
  int RED1 = 3;
  int GREEN1 = 5;
  int BLUE1 = 6;
  int RED2 = 9;
  int GREEN2 = 10;
  int BLUE2 = 11;

void setup() 

  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
pinMode(LED9,OUTPUT);
pinMode(LED10,OUTPUT);
pinMode(LED11,OUTPUT);
pinMode(LED12,OUTPUT);

digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
digitalWrite(LED6,LOW);
digitalWrite(LED7,LOW);
digitalWrite(LED8,LOW);
digitalWrite(LED9,LOW);
digitalWrite(LED10,LOW);
digitalWrite(LED11,LOW);
digitalWrite(LED12,LOW);

Red1Off();
Blue1Off();
Green1Off();
Red2Off();
Blue2Off();
Green2Off();
}

void loop()
{

LEDOn(LED1);
LEDOn(LED2);
LEDOn(LED3);
LEDOn(LED4);
LEDOn(LED5);
LEDOn(LED6);
LEDOn(LED7);
LEDOn(LED8);
LEDOn(LED9);
LEDOn(LED10);
LEDOn(LED11);
LEDOn(LED12);

FadeUp(RED1,RED2,2);
delay(2000);
FadeDown(RED1,RED2,2);
FadeUp(GREEN1,GREEN2,2);
delay(2000);
FadeDown(GREEN1,GREEN2,2);
FadeUp(BLUE1,BLUE2,2);
delay(2000);
FadeDown(BLUE1,BLUE2,2);

Magenta1On ();
Magenta2On ();
delay (2000);
Magenta1Off();
Magenta2Off();
Cyan1On ();
Cyan2On();
delay (2000);
Cyan1Off ();
Cyan2Off();
Yellow1On ();
Yellow2On();
delay (2000);
Yellow1Off;
Yellow2Off();


Blue1On();
Cyan2On();
delay (2000);
Blue1Off();
Cyan2Off();
Green2On();
Yellow1On();
delay (2000);
Green2Off();
Yellow1Off();
Red1On();
Magenta2On();
delay (2000);
Red1Off();
Magenta2Off();
White1On();
White2On();
delay(2000);
White1Off();
White2Off();


Blue1On();
Cyan2On();
delay (2000);
Blue1Off();
Cyan2Off();
Green2On();
Yellow1On();
delay (2000);
Green2Off();
Yellow1Off();
Red1On();
Magenta2On();
delay (2000);
Red1Off();
Magenta2Off();
Red1On();
White2On();
delay(2000);
Red1Off();
White2Off();



LEDOff(LED1);
LEDOff(LED2);
LEDOff(LED3);
LEDOff(LED4);
LEDOff(LED5);
LEDOff(LED6);
LEDOff(LED7);
LEDOff(LED8);
LEDOff(LED9);
LEDOff(LED10);
LEDOff(LED11);
LEDOff(LED12);
Red1Off();
Blue1Off();
Green1Off();
Red2Off();
Blue2Off();
Green2Off();
White1Off();
White2Off();
Red1Off();
Green1Off();
Blue1Off();
Red2Off();
Green2Off();
Blue2Off();


Red1On();
Red2On();
LEDSp(125);
Red1Off();
Red2Off();
Blue1On();
Blue2On();
LEDSp(125);
Blue1Off();
Blue2Off();
Green1On();
Green2On();
LEDSp(125);
Green1Off();
Green2Off();
Magenta1On ();
Magenta2On ();
LEDSp(125);
Magenta1Off();
Magenta2Off();
Cyan1On ();
Cyan2On();
LEDSp(125);
Cyan1Off ();
Cyan2Off();
Yellow1On ();
Yellow2On();
LEDSp(125);
Yellow1Off;
Yellow2Off();
White1On();
White2On();
LEDSp(125);
White1Off();
White2Off();
Blue1On();
Cyan2On();
LEDSp(125);
Blue1Off();
Cyan2Off();
Green2On();
Yellow1On();
LEDSp(125);
Green2Off();
Yellow1Off();
Red1On();
Magenta2On();
LEDSp(125);
Red1Off();
Magenta2Off();
Red1On();
White2On();
LEDSp(125);
Red1Off();
White2Off();
Red1Off();
Green1Off();
Blue1Off();
Red2Off();
Green2Off();
Blue2Off();
Green1On();
Blue2On();
LEDSp2 (200);
Green1Off();
Blue2Off();
Green1On();
Blue2On();
LEDSp2 (200);
Green1Off();
Blue2Off();







}
void LEDSp (int x) { // spirals on from 1-n
LEDOn(LED1);
delay(x);
LEDOn(LED2);
delay(x);
LEDOn(LED3);
delay(x);
LEDOn(LED4);
delay(x);
LEDOn(LED5);
delay(x);
LEDOn(LED6);\
delay(x);
LEDOn(LED7);
delay(x);
LEDOn(LED8);
delay(x);
LEDOn(LED9);
delay(x);
LEDOn(LED10);
delay(x);
LEDOn(LED11);
delay(x);
LEDOn(LED12);

delay(x);
LEDOff(LED1);
delay(x);
LEDOff(LED2);
delay(x);
LEDOff(LED3);
delay(x);
LEDOff(LED4);
delay(x);
LEDOff(LED5);
delay(x);
LEDOff(LED6);
delay(x);
LEDOff(LED7);
delay(x);
LEDOff(LED8);
delay(x);
LEDOff(LED9);
delay(x);
LEDOff(LED10);
delay(x);
LEDOff(LED11);
delay(x);
LEDOff(LED12);
}

void LEDSp2 (int x) { // spirals on from 1-n
LEDOn(LED1);
delay(x);
LEDOff(LED1);
LEDOn(LED2);
delay(x);
LEDOff(LED2);
LEDOn(LED3);
delay(x);
LEDOff(LED3);

LEDOn(LED4);
delay(x);
LEDOff(LED4);
LEDOn(LED5);
delay(x);
LEDOff(LED5);
LEDOn(LED6);
delay(x);
LEDOff(LED6);
LEDOn(LED7);
delay(x);
LEDOff(LED7);
LEDOn(LED8);
delay(x);
LEDOff(LED8);
LEDOn(LED9);
delay(x);
LEDOff(LED9);
LEDOn(LED10);
delay(x);
LEDOff(LED10);
LEDOn(LED11);
delay(x);
LEDOff(LED11);
LEDOn(LED12);
delay(x);
LEDOff(LED12);

}

void LEDOn(int x) {
digitalWrite(x,HIGH);
}
void LEDOff(int x) {
digitalWrite(x,LOW);
}
void Red1On() {
analogWrite(RED1,100);
}
void Red1Off() {
analogWrite(RED1,255);
}
void Green1On() {
analogWrite(GREEN1,100);
}
void Green1Off() {
analogWrite(GREEN1,255);
}
void Blue1On() {
analogWrite(BLUE1,100);
}
void Blue1Off() {
analogWrite(BLUE1,255);
}
void Red2On() {
analogWrite(RED2,100);
}
void Red2Off() {
analogWrite(RED2,255);
}
void Green2On() {
analogWrite(GREEN2,100);
}
void Green2Off() {
analogWrite(GREEN2,255);
}
void Blue2On() {
analogWrite(BLUE2,100);
}
void Blue2Off() {
analogWrite(BLUE2,255);
}
void Yellow1On() {
analogWrite (RED1,100) ;
analogWrite (GREEN1,100);
}
void Yellow1Off() {
analogWrite (RED1,255);
analogWrite (GREEN1,255);
}
void Cyan1On() {
analogWrite (GREEN1,100);
analogWrite (BLUE1,100);
}
void Cyan1Off () {
analogWrite (GREEN1,255);
analogWrite (BLUE1,255);
}
void Magenta1On () {
analogWrite (RED1,100);
analogWrite (BLUE1,100);
}
void Magenta1Off () {
analogWrite (RED1,255);
analogWrite (BLUE1,255);
}
void White1On () {
analogWrite (RED1,100);
analogWrite (BLUE1,100);
analogWrite (GREEN1,100);
}
void White1Off () {
analogWrite (RED1,225);
analogWrite (BLUE1,225);
analogWrite (GREEN1,225);
}

void Yellow2On() {
analogWrite (RED2,100) ;
analogWrite (GREEN2,100);
}
void Yellow2Off() {
analogWrite (RED2,255);
analogWrite (GREEN2,255);
}
void Cyan2On() {
analogWrite (GREEN2,100);
analogWrite (BLUE2,100);
}
void Cyan2Off () {
analogWrite (GREEN2,255);
analogWrite (BLUE2,255);
}
void Magenta2On () {
analogWrite (RED2,100);
analogWrite (BLUE2,100);
}
void Magenta2Off () {
analogWrite (RED2,255);
analogWrite (BLUE2,255);
}
void White2On () {
analogWrite (RED2,100);
analogWrite (BLUE2,100);
analogWrite (GREEN2,100);
}
void White2Off () {
analogWrite (RED2,225);
analogWrite (BLUE2,225);
analogWrite (GREEN2,225);
}

void FadeUp(int colour,int colour2 ,int speed) {
for(value = 255 ; value >= 80;) // fade in (from min to max)
{

analogWrite(colour, value); // sets the value (range from 0 to 255)
analogWrite(colour2, value);
delay(20); // waits for 30 milli seconds to see the dimming effect
value = value - speed;
}

}

void FadeDown(int colour,int colour2, int speed) {
for(value = 80; value <= 255;) // fade out (from max to min)
{

analogWrite(colour, value);
analogWrite(colour2, value);
delay(20);
value = value + speed;
}
}


Step 6: Final Assembly !

Plug the 12v dc converter into the arduino.
Remove the nylon cord and hook the large loop directly onto the roof hook.
Your finished i hope you enjoy this Chandelier as much as i do. 

Please vote for me in the LED contest :)

LED Contest

Runner Up in the
LED Contest