Arduino RGB mood lamp, touch + tiltable potentiometers
I decided to spend some time building a RGB mood lamp as an unique gift for my girlfriend’s birthday. I wanted it to have a touch potentiometer to choose the color ( like the Philips LivingColors ), a normal potentiometer to change luminosity/speed and a button to switch between modes. To keep the design minimal I decided to make a custom tiltable potentiometer, so tilting it you can switch between them: off, choose color and luminosity, fade between colors choosing velocity. Special thanks to my girlfriend for the videos and the photos!
This is my first electronic project, so please don’t mind if the work is not perfectly clear. I choosed Arduino because it’s a nice and cheap environment which it’s simple to program, it was a nice experience indeed! The parts’ list:
- 10 – RGB led ( 2 more than I needed, just to feel safe )
- 1 – HotPot Rotary potentiometer
- 1 – Arduino Duemilanove board
- 1 – 10 kohm rotary potentiometer
- 1 – Big knob!
- 1 – drilled board
- 1 – momentary pushbutton
- Break-away male headers to connect the board to the arduino i/o
- 2 – 10 kohm resistor ( I used one of them )
- 8 – 470 ohm resistor ( I used 6 of them )
- 1 – Square meter 1 mm thick polypropylene sheet
- 1 – Plastic glue ( Super Attack Plastic )
- 1 – Vivanco TFT Screen Cleaner Spray’s cap ( to cover the leds )
- 3 – 3 mm diameter screws
- Flat cables
Everything but the HotPot, the leds and the Arduino was bought at local stores. If you live in Italy keep in mind that we have a seriously unpredictable way to tax products coming from outside the EU. Sparkfun did a nice job writing the value of the products they sent to me outside the box, which can be easily checked online once you open the package. In spite of this, I had to pay 18 EUROS extra fee, which is almost FOUR TIME the 20% VAT of 36$ ( around 25 euros ) which must be applyed! Thank you, Italy!
I simply soldered everything on the drilled board which fits on the Arduino: 470 ohm resistors are connected on the PWM outputs, then all the leds are soldered in parallel in two rows. The rotary potentiometer and the pushbutton are soldered to connect to an analog and a digital input respectively, then the touch potentiometer is connected with connectors soldered on the board, because it is glued on the lamp’s wall, so I can’t unmount it. Must be noted that I had problems with the behaviour of the HotPot when using power from the pc through USB only, maybe I was using too much power. For the tilt potentiometer I take advantage of the flexibility of the lamp’s wall, making a small slice of curved polypropylene which press the pushbutton once tilted. I used a self-adhesive rubber feet lying around my room to make it more effective. I must thank HackADay blog for reporting the push potentiometer hack, which inspired me this solution!
Finally I found some code to convert HUE-to-RGB on this nice post on the Arduino forum!
Here you are a gallery with more photos of lamp’s details + in-the-making shoots!
- It looks nice with the Vivanco Spray’s cap!
- They works!
- In the making: the inside
- In the making: the outside
- Lamp from above
- The knob.
- Say hello to Arduino!
- How the tilt potentiometer works!










November 17, 2009 at 2:00 pm
awesome.
November 17, 2009 at 10:19 pm
Hi, if you want to buy an Arduino in Italy you could check Smart Projects or Robot Italy, both can send you Arduinos and other stuff, they should arrive faster and you don’t have to pay extra taxes.
For rgb LEDs and other components you could check Farnell, they can send you stuff too and if you’re lucky enough to have a local distributor you can order parts to them and don’t have to pay shipping costs.
Keep up the good work!
November 17, 2009 at 10:31 pm
When you said me: “I want to make a lamp for my girlfriend’s birthday” I thought a common lamp:a bulb and a switch!
Your mood lamp is great!!!!
next step…to connect the lamp to Ipod and light move to music.
November 17, 2009 at 10:44 pm
[...] built an RGB mood lamp as his first electronics project. He certainly hit it out of the park with this one, ending up with [...]
November 18, 2009 at 12:15 am
Nice job! Very clean looking.
November 18, 2009 at 4:40 pm
Hi there, nice job!
Maybe next time you prefer to take a look at the Italian distributors for SparkFun http://www.sparkfun.com/commerce/distributors.php
I have the same problem in Spain, so I ended up buying from their Spanish distributor
November 19, 2009 at 7:32 am
Would you be willing to release the source code and more complex diagrams for this project? I quite like it, and would like to make one as a gift.
November 21, 2009 at 10:19 am
@enkel: I bought the Arduino at Smart Project, I’ll check Farnell too! Thanks for the info!
@joetape: thanks for the link, I think I’ll check the italians distributors the next time ;]
@chefdude548: I’am not an electronics expert, that’s why I did not release more complex diagram. However I’m working on hit, I hope to release them ( maybe a PCB too ) and the code soon.
@all: thanks for the compliments ;]
December 12, 2009 at 11:28 pm
Yeah, i’m wondering too when the source code and the diagram will be released; it’s just a wonderful work!
December 30, 2009 at 11:25 pm
Same as encomes, can you please publish some schematics? and code
January 3, 2010 at 2:01 pm
And it was my understanding that arduino is made in italy!
January 13, 2010 at 10:35 am
Where did you get that sexy knob!!!
July 5, 2010 at 5:02 pm
I absolutely love your design and it has inspired me to do a sort of ambient lighting around the perimeter of my bedroom. So far my set back is the coding. Any chance you will be posting the code for yours anytime soon.
October 25, 2010 at 10:32 pm
[...] Mood Lamp [...]
August 19, 2011 at 8:33 am
can you tell me how to link 8 RGB LEDs to the arduino broad? we both know there are limitted pins ..thank you…
August 19, 2011 at 9:12 am
if you don’t need to run them indipendently you can sold them in parallel . As arduino has 6 pwm outputs, and rgb led are basically 3 leds in one, i soldered them in parallelel in two rows using all 6 outputs. I needed that because of the amount of current needed to light them properly, wiring them to 3 outputs would make their light weaker