AVR mood light, 500mA per channel
Turn any RGB LED into a mood light with this controller. Uses an AVR ATmega8 microcontroller.
Table of contents
The mood light controller can control all kinds of RGB light, max 500mA per channel. The module has no voltage regulator and therefore needs 5V=, and enough current to drive the circuit and the connected LEDs. It very slowly cycles through different colors, fading one LED up or down leaving the previous LED turned on. The module can power Prolight LEDs, like this.
The controller very slowly cycles through colors, fading one LED at the time. It happens so slowly that it’s hard to notice the change at all.
- Fade in blue color in about 12 seconds (only on first start up).
- Increase red.
- Decrease blue.
- Increase green.
- Decrease red.
- Increase blue.
- Decrease green.
- Go to step #2.
The fade time for each color is random and varies between 1 and 3 minutes, and changes between each fade.
Prior to firmware version 1.2 the mood light controller had different light patterns that was controlled with the four DIP switches:
- Pause between color change (long/short)
- Fade speed when changing color (long/short)
- Color change fade (on/off)
- Color mode (one color/multi color)
After using the light for a few years, I hadn’t changed the light pattern once… And I would like for it to be more subtle. I made a new pattern, and didn’t bother spending time to write code for the DIP switches I wasn’t using anyways.
- PC.2 DIP-Switch 1 (Not used from v1.2)
- PC.3 DIP-Switch 2 (Not used from v1.2)
- PC.4 DIP-Switch 3 (Not used from v1.2)
- PC.5 DIP-Switch 4 (Not used from v1.2)
- PB.1 (OC1A) Red LED (PWM)
- PB.2 (OC1B) Green LED (PWM)
- PB.3 (OC2) Blue LED (PWM)
To make it easy to attach and detach lights, the module has a connector for the RGB light.
- Bascom-AVR source is available in a git repository:
- 1 × AVR ATmega8-16PU, DIL-28, 16 MHz, 23 I/Os
- 1 × Cable tie mount, screw, 5.1 mm, White
- 1 × Capacitor, aluminium electrolytic, 10 µF, 25V
- 1 × Capacitor, aluminium electrolytic, 22 µF, 25V
- 1 × Capacitor, ceramic, 1 nF, 100V
- 1 × DIL socket, 28-pin, 7.62mm
- 1 × Diode, rectifier, 1 A, 400V, 1N4004
- 1 × Enclosure, plastic (1591), 100x50x25mm
- 1 × Fuse 5x20 mm, 800 mA, fast-acting
- 1 × Fuse holder, open, PCB, 5x20mm
- 1 × Fuse holder, open, PCB, Protective cover
- 32 cm2 PCB, stripboard, 100x160mm, 160cm2
- 1 × Power jack, panel, 2.1mm, plastic housing
- 4 × Resistor, carbon film, 0.25W, 330 Ω, 5%
- 4 × Resistor, carbon film, 0.25W, 4.7 kΩ, 5%
- 4 × Resistor, carbon film, 0.25W, 10 kΩ, 5%
- 4 × Rubber foot, adhesive, SJ-5012, Ø 12.7x3.5 mm
- 1 × Switch, DIP, PCB, 4-pin
- 1 × Terminal block, pluggable, 3.5 mm, 4-pin vertical male
- 3 × Transistor, NPN, 800 mA, 45V, 0.625W, BC337-25
This mood light consists of a Prolight RGB 3W LED, a heat sink and four rubber feet. The four rubber feet form a base on which e.g. a glass ball, or something else transparent can be placed. It will be lit up by the LED and looks pretty cool. Powered by: 5V.
Between the LED and the heat sink there is some heat conducting film, to better dissipate the heat. The LED is common anode, with resistors for use on 5 volts. It gives off 30 lumens of light in 140 degrees.
Here are the parts I used for the RGB LED:
- 1 m Control cable, 4-cores, 0.25mm2, 250 V, Ø 4.6mm
- 1 × Heat conducting film for heatsink, Adhesive, TO220
- 1 × Heatsink Prolight, 50x48x17mm, size 2
- 1 × LED Prolight, RGB, 3W, 2.2 3.3 3.4V, 350mA, 140°
- 2 × Resistor, metal film, 1W, 5.1 Ω, 5%
- 1 × Resistor, metal film, 1W, 8.2 Ω, 5%
- 4 × Rubber foot, adhesive, SJ-5027, Ø 16x7.9mm
- 1 × Terminal block, pluggable, 3.5 mm, 4-pin screw female