The easiest way to control a RGB Led.
tinyRGB uses an ATMEL Attiny15L (8pin uC) to control a standard RGB Led.
R1 is a pullup Resistor for Reset generation (should be about 10k).
R3 to R5 depend on the LED you are using. You can calculate the resistor as followed:
Rx = (Vcc-Vf)/Im
[Vcc: Volatge of power supply, Vf: Vorward Voltage of the Diode, Im: Max current of LED or AVR pin (20mA)]
If you want to control power LED’s read here: powerRGB.
The software is written in Assembler (avra under Linux, should be compatible to AVR Studio). Timer0 is used to generate interrupts at about 30kHz. This interrupts are used to build a 8bit PWM. Timer1 is used to change the color pattern.