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!