Control the colour of a powerful LED light beam with a remote control, store the colours and recall them at will.

With this thing I can control the colour of a bright light into many different colours using the three fundamentals colours : red green and blue. Adding them toghether with different intensity can yeld very great a range of colours from the visible spectrum.
Specifically my mood lamp can shift colours through 32 intensity values for each RGB colour giving
32*32*32 = 32768 different combinations of hue, intensity and brightness. It can also store 10 different combinations can be turned on or off, all of these through a TV remote control.
The intensity of each red, green and blue component is done via PWM so heat dissipation is kept to a minimum.

The circuit is simple and there are no pushbuttons as control is done entirely through the remote control.
I use this circuit to light a flower vase. The flat case of the box I chose does a good job at balancing the vase.
The pictures provide some ideas.
One day I am possibly buying one of those glass cubes with LASER created 3D shapes inside to go with the lamp. For now glass vases are just fine.

UPDATE : I uploaded V1.1 where at power up the micro outputs the values from memory number 0. Just make sure you store your power up colour in memory number 0 and at power up it will show up. If you'd rather go for lights off, just store all blanks in memory numer 0.

Hey I'm on the best of Instructables book !
1-40 of 113Next »

can i extend this circuit upto 3 LED with the same circuit by adding proper heat sinks ?

djeremic3 years ago
Hi to all. I have a serious problem with this project...
It does not react except of random change off colour on any of 400 codes of universal remote.
Let me just ask, can i use 16F627 [not 627A] or 16F628A, because i cant find anywhere 16F627A???
I have 16F627 and i cant program it at all, error ocures. 16f628a i programable, but it is not working as it should.
And at the end, what is the difference between 627 and 627a?
lacicor3 years ago
Dear all! Is there users which use this device with RGB led strip(aprox 4 meter lenght). If not, is there any idea what components(or component nominals) need change so safety use this great device?Thanks all for help!
Wow, what a great contribution! I have to return to the site to keep reading. You make assembly code understandable ( I have always found assembly hard to follow) with your comments and neat form. I am looking forward to finding time to build this. Thanks for sharing !
great design but for doing we need pretty interest
scott12025 years ago
Try to connect an LED at the output of the IR receiver and see if it lights up a bit when you press a button on the remote. Specific code to test the hardware is probably overkill. Car Led
dar72905 years ago
 Is there a way to get a chip pre-programed? or do you know where I could get one programed?

5Volt (author)  dar72905 years ago
Sorry, I can't supply any preprogrammed chip. They are simple to program and the internet is full of how-to's. Please try Googling or ask an expert friend.

Some reader might start a simple service (with a veeeeery reasonable fee, remember : this project is CC non commercial, but a reasonable fee would be fine for me to be charged to the buyers ! )

In case someone wants to volunteer, just write.


errolmorris6 years ago
Can anybody provide a data sheet for the 2SB2012 transistors in the schematic. Is it a typo, I can't find anything on them.
5Volt (author)  errolmorris6 years ago
Ciao, It's not a typo, I actually used the 2SB. I'm sure I have the pdf datasheet somewhere. I of course put it in somewhere I could find it easily...:( Anyways, choose the NPN transistor depending on the power requirements of your LEDs, so Any Radio Shack low frequency NPN (darlington should work also) transistor should do then. If you're in doubt, just write with the specs of your LEDs.
marxmarv 5Volt5 years ago
Under the JIS coding scheme, 2SB* is an audio-frequency PNP transistor.  Are you quite sure it's not a 2SC2012 (3A Ic, TO-220 package)?
5Volt (author)  marxmarv5 years ago
Ooops ! I insisted one time too much !
I opened the box to check and found that I actually used a 2SD 2012.
Sorry for the inconvenient.
I uploaded the pdf file.
Best to all
12V6 years ago
why don't you make a rc5 encoder?(with pic) it is one of the most used codes by hobbyists!
5Volt (author)  12V6 years ago
An RC5 encoder is one of the projects I never finished. I do not promise but one day I might spend some time and finalize it. Best A.
12V6 years ago
have you engaged cp(code protection )? i want to be able to reuse my pic.
5Volt (author)  12V6 years ago
Ciao 12V No, I did not engage CP. The statement _CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_OFF & _HS_OSC & _MCLRE_ON & _LVP_OFF explicitly excludes CP. However if you erase a CP'ed PIC you get back a clean and reusable PIC. A.
Hi, This is a very good Instructables it possible to increase the number of preset channels from 10 to say 30 or more . I am using PIC16C628A micro and any possibility of cyclic colour fading in/out.
magicentral6 years ago
Would there be a way to make this controll an LED string, and do fades and strobe? Also, could the reciever and LEDs run off of a battery? thanks
brian316 years ago
hi iam new to electronics , this project looks realy worth while, i have nearly sourced all the components, could any one tell me what what the 2 components are after the qaurtz 20 mhz are, sorry for the stupid question also the rating of the 2 black capcitors. i have a little experience with pic programmers thats about it iam afraid. thanks from brian
5Volt (author)  brian316 years ago
Ciao Brian, the two small components are the ceramic capacitors connected to the quartz towards ground. They are small 15pF 50 Volts (could higher say 100 Volts but size would increase). The two round brown electrolytic capacitors are 100 micro Farads 16 Volts (again, could be 25 or 35 or 63 Volts but at cost of increased size). In the schematic I put just one electrolytic capacitor : the second is in parallel to the one in the schematic, simply placed near the LEDs and transistors connections. Just be careful to make clean solders, remove with alcohol any extra solder paste that may have remained in place and didn't evaporate with heat, especially around the quartz. Buon divertimento, have fun. Alessandro
TZepeSH6 years ago
I have finally finished the module and it is working perfectly with the program with -5%. I will use this for changing the color of the dashboard instruments in my car. Unfortunately, the car is still in work and i can not post any images, but as soon as possible i will post some images with the led lighting a crystal flower. Also, i tested a modified circuit for common cathode leds and it is working very well. If it is permitted, i will add a schematic of a change i have made to the circuit to accomodate more leds (i added two more transistors on each output of the microcontroller - inverter circuit to obtain the same output as for one transistor in the original schematic).
5Volt (author)  TZepeSH6 years ago
Yes, I think it is possible/permitted to comment with drawings and pictures. Please do so and post pictures as soon as available. Ciao Alex
Hi again 5Volt, I forgot to mention also that I used the Receiver from a sky box too, all the ones I have are from sky boxes and all so far are the same, with the blob facing you and the leads downwards the pinout from left to right is Out, Gnd and Vdd. Also did you ponder on my question of powering up with the lights on? I would really appreciate this if you could help..............Al
5Volt (author)  bigalscorpio6 years ago
Ciao Bigalscorpio,<br/>I quickly modified the code and saved it here : <a rel="nofollow" href="http://www.5volt.eu/temp/Rainbow_main_v1_1.HEX">http://www.5volt.eu/temp/Rainbow_main_v1_1.HEX</a> (right click and save as....)<br/><br/>Veeeery important : I did not tested it, because I can't find my PIC programmer. Just two (2) lines of code but it might not work. Do test it and please come back with comments so that I can post the HEX file for this V1.1 along with the original V1.0. Hope this helps<br/><br/>Oh, almost forgot : now the system powers up taking the values from memory 0, so just store the RGB you want in memory 0 (it had to be somewhere in nonvolatile memory ) : at power up the RGB will be taken from there.<br/>Ciao<br/>Alex <br/><br/><strong>Hey I'm on "The best of instructables" book !'<em><strong></strong></em></strong><br/>
tomy 5Volt6 years ago
Hi 5Volt, I know its old question, but can you find some spare time and modify code also for color fading?I thing its most wanted function for your beautiful lamp! wbr tomy
5Volt (author)  tomy6 years ago
Ciao Tomy, it's OK. The main problem is to choose the fading sequence. Combination/permutations are a huge number. The algorithm must take some trade offs. I really can't promise : this one wouldn't be as simple as Bigalscorpio's ! Alex
tomy 5Volt6 years ago
Hi 5Volt,
I tried a lot of rgb fading lamps and the best color fading without jerking has this lamp:http://tobe.nimio.info/led_mood_lamp.php. I have this one in slow color fading mode and looks great. Maybe you can look to its code for algorithm you need.If you find some time of course...

Hi Alex, I got it working, I must not have hit the 0 button quick enough before! :) You do need to be really quick after the vol - . So its sussed and working great now. You're a real star! Thanks again and I will take some pics and post them as soon as I find the mem card for the camera, someone has borrowed it for something and not put it back as usual. Doh! Al
5Volt (author)  bigalscorpio6 years ago
Excellent ! Infact I found my programmer and tried my code. Happy I could help I'll post the source and HEX for V1.1 About your question below : no, I did not modify the HEX file directly, I read the source code with MPLAB, modified it and compiled. This morning I burnt it into a PIC with Microchip PicKit2 and tried it on the target. Ciao Post the pictures !
Hi Alex, Just tried the new code and still no light when powered up :( Did you actually add to the hex code, can you read it as hex, I mean does that really make sense to you? I'm impressed if you did, I'd be satisfied if I could understand the ASM ;) hehehe Al
Hi 5Volt, Great piece of work! I just finished making it using a PIC16F628A and it works fine, and I'm using an old sky remote (code 584) just for anyone who needs to use one. One thing I would like to alter is I would like the light to default to ON when powered up. Is this possible by adding - changing some of the code? I am only just starting PICs and learning MeBasic, so I don't know where to start in your ASM program so any help would be much appreciated, its probably simple to you. Oh and by the way, where do I find this new project you mentioned I can't wait! Thanks again for a great project. :) Al
5Volt (author)  bigalscorpio6 years ago
Hello bigalscorpio,
thanks for the tip, Sky 's remote are becoming quite common here in Italy and this helps.
It has been a long time since I did my last project with PICs. For some reason (good ones, I'd say, like free the C compiler and a better instructions set and a better oscillator : the PICs ALWAYS drived me crazy...) Anyways PICs are not forgotten, they are great micros like we know.
The new project....I really don't remember what I was talking about : I started and dropped a lot of projects in the meantime, maybe it was the RGB light based on light bulbs ( it's on my site http://www.5volt.eu ). Just be careful : that thing is powered by the mains and could be veeeery dangerous.


P.S. While checking the spelling of this message, the applet could not find the word "Italy" and suggested "Idly" for a replacement....Is there a message here ? LOL

fmatosqg6 years ago
Hi, Great project, that is what I had in mind. I hit into it while searching for information on xtals, lucky me! Only I started with a smooth changing color scheme in mind, so I would ask if you had further elaborated it, or had notice of someone who had. I know gray code, but didn't follow your thoughts with 3Dman back in 2007, how do you think it could help? I though about making 2 or 3 customized tables on a PC and running indexes. So one just needs to randomize the table used. Another question is how white can you get with this scheme? Of course 100% pure white is unnatainable, but is it hard to calibrate it to match a white led? And does your experience tells you how much that calibration changes with old age (current wear)? I should add a microphone and some tuned filters for whistle freqs, so I can change color modes this way. Anyways, you are plenty of ideas I should use before.
errolmorris6 years ago
Thanks for the taking the time respond. I've built the circuit but cannot get it to work. Is there a way to exercise the circuit without a remote to make sure the program and circuitry is working and isolate the problem to the remote. Maybe a demo program that runs when first powered. Also I am using a philips universal remote and have tried all the philips tv codes with no progress. Can you recommend a universal remote that has worked?
5Volt (author)  errolmorris6 years ago
Ciao E., try to connect an LED at the output of the IR receiver and see if it lights up a bit when you press a button on the remote. Specific code to test the hardware is probably overkill. Just make sure the capacitor at the crystal are correct, clean the pads from solder paste. Make sure power gets to the IC's pins, that the transistors are connected correctly (remove the PIC, than connect the pin of the IC that drives a transistor to the positive : the corresponding LED should light up). Make sure the micro is programmed correctly together with the fuse bits. Read further the comments as I'm pretty sure someone else had problems he solved eventually. Ciao ! 5.
I've taken your advice and checked all the items you listed. Everything seems to be OK. I think my problem is going to be the universal remote I'm using. Can we get a list from the people on this Instructable about which remotes are guaranteed to work? If need be I'll buy the same remote on ebay. Buy the way the one I've tried to use that didn't work looks like this.
5Volt (author)  errolmorris6 years ago
What is the part number/make of the IR RECEIVER you are using ?
I've tried TSOP1138 and TSOP1140 from Vishay. The data sheet is here:


If you can guarantee a different one to work I'll make sure I get it and try it. Thanks so much for continuing to provide support, it is appreciated.
5Volt (author)  errolmorris6 years ago
I had planned to work on the issue this weekend but my home PC's monitor left me silently...I'm writing from my office and can't spend much time on it. Well, the IR receivers should be fine as long as the remote control emits in the range 38-40kHz. Most remotes do. And probably you already tried placing an LED at output of the IR receiver. The major suspect is the crystal (not a ceramic resonator!) oscillator which more often than not has been source of troubles to me. Make sure the pins to the crystal are clean from solder paste, the capacitors are there and capacitors ground connection is short. My intent for (last) weekend was to add a few lines of code and make an output of the micro blink as a proof of the micro programmed and oscillator running. In the meantime if you have access to an oscilloscope try and put it on the crystal pins (oscilloscope ground to power supply ground). One of the 2 pins of the crystal should provide a 20 MHz wave. Try it, don't wait for my next weekend ! A.
I have previously tried an LED at the output of the IR receiver and it does blink when I use the remote. I have hooked a scope to the crystal and I do have a 20 MHz wave there. The suggestion of adding a few lines of code to help isolate things is an excellent one, let me know when its available. In the meantime I presently have this on a bread board and I will trim all the excessive lead length and try again. Thank you
1-40 of 113Next »