Inexpensive programmable RGB LED driver/IC/solution?

My desire is to have a simple setup with a dial device (ideal would be a 3 click dial with 3 distinct settings but an analog dial would also be appropriate) whereby position 1 would display a color (yellow, for example) and position 2 would display red and positoin 3 would display blue. The only programming involved would need to set the colors to each position.

I have managed to do this with a very, very pooly crafted arduino but it feels like this is overkill for a simple project. I also think that it can be made fairly inexpensively with a little knowledge. I have tried to look up RGB drivers and this seems to be the way to go but there are a lot of choices. I also looked up a 555 IC timer, which looks like it would be fun to play with but probably not the right choice for this.

If anyone has a direction for my reading, experience, or other pearls of information I would very much appreciate any help.

• What kind of LEDs are you driving? 4-pin RGB leds (R,G,B,cathode), or programmable ones with integrated controller (e.g. WS2811)? – Tim Apr 30 '13 at 22:57
• I cleaned up the "hello ... than you " etc. here you say thank you by upvoting replies. – placeholder Apr 30 '13 at 23:06

If I'm understanding your question right, you can accomplish this with a simple (and I mean simple!) circuit. Assuming your "dial device" operates like a switch, here is a circuit which assumes you just have a 2 state dial. Adding more LEDs is very simple; just add another LED to a different output of the dial switch.

If this isn't what you were describing, give me a little more detail in a comment and I can help you resolve it.

• Thank you for your reply. I should have specified that I wanted to use a single 4 lead RGB LED and have the light change based on switch setting and not power a separate LED with each one. – user1525635 May 1 '13 at 21:55
• You can apply this same concept to each pin on the 4 lead LED. A 4 pin LED is basically 4 LEDs combined into a single package. You can also put a single resistor on the common ground pin rather than a resistor before each anode. – Jay Greco May 2 '13 at 1:18
• @Radrider33 a 4 pin led is normally 3 diodes (R/G/B) and Common Anode or Cathode pin, not 4. – Passerby May 2 '13 at 2:40
• Ah! Foolish mistake. I was thinking RGB, but then wrote 4 LEDs for some reason. Good catch. – Jay Greco May 2 '13 at 4:06

An official/commercial Arduino would be overkill for this. So you can go with a smaller, bare bones Arduino clone. Some are as simple as a ATMega and a few component parts. The other option is using an Attiny with arduino code, essentially the same thing, but with a smaller MCU. A msp430 could just as easily do the same.

Honestly, any microcontroller could do simple RGB led displays and general input.

• Thank you for the reply. I have just started to look into the more simple microcontrollers and will look at all of these. Because I agree, the arduino is much overkill. W – user1525635 May 1 '13 at 21:57

The most expensive part will be the switch. What switch/dial do you already have?

It may be that a $0.50 potentiometer, and a$2 Attiny85, will actually be cheaper than an actual three-way mechanical rotary switch! The Attiny85 (and friends) can run Arduino sketches if you have a USB programmer, and it has an analog input for the pot, and several digital outs for the light.

• THank you as well. I am looking for all my pieces and haven't got a formal switch/dial yet. I used the one that came with my sparkfun kit up to this point. There are so many different parts out there its hard to know what to choose. Also, I can't upvote you for your answer because I don't have enough EE cred yet. Which is fair. – user1525635 May 1 '13 at 21:59