This is a nice glitter ball made by my wife Mieke.
The ball is made of styrofoam and is covered with pieces of mirror glass, that are cut to size and glued onto the surface of the styrofoam ball.
I designed the electronics to make the ball rotate very slow and to control the LEDs.I used red, green and blue 10mm high brightness LEDs that are lined up so the whole top of the glitter ball is illuminated by the LEDs.
The individual LEDs have a lens built, so the light is focussed into a cone-shape. Over short distances, they give a strong reflection on the pieces of mirror glass on the glitter ball.
The red, green and blue LED's are controlled by a Microchip PIC12F683 microcontroller.
To make the ball rotate very slowly i used a 3V mini brushed DC motor, but i control the motor in an unusual way to get the required slow and smooth rotation : i use a digital output of the Microchip PIC12F683 to give a short burst of pulses to the DC motor about every 1,8 seconds. This short burst of pulses makes the motor step forward with a small step every 1.8 seconds.
The ball is hung up from the motor using a piece of thin fishing line.
The motor, while making small steps, will generate torsion in the fishing line and the ball will start rotating slowly. Each step of the motor will in fact be damped by the torsion of the fishing line.
Step 1: Circuit Schematics and LED Placement
The Microchip PIC12F683 controls both the red, green and blue LEDs and also the DC motor to make the glitter ball rotate very slowly.
The LEDs are controlled using software PWM on 3 digital outputs that are used for the red, green and blue LEDs. By varying the PWM duty cycle, the intensity of the LEDs can be controlled. The PWM frequency is about 83 Hz (period = 12ms).
To make the LED brightness appear changing linearly, the PWM values are compensated using an exponential curve that is stored in a lookup table
The mini 3V DC motor is controlled by a digital output of the PIC12F683. This digital output generates a burst of 5 pulses every 1,8 seconds. The pulses have a on time of 3.5ms and an off time of 3.5ms. The total time of the burst is 5 * 3.5ms on time + 4 * 3.5ms off time = 31.5ms. The burst of pulses make the brushed DC motor step forward with with a small step. The motor axis only rotates about 10 degrees due to the burst of pulses.
In the second picture, the distribution of the LEDs around the motor is shown.
Step 2: Firmware
I added the hex file for the Microchip PIC12F683 microcontroller that is used to control the LEDs and the 3V mini brushed DC motor.
Step 3: Build Pictures
See comment boxes in the pictures for more information.