I built this with an Arduino previously, but I am working on porting this over to an ATTiny45 ao I can put it on perfboard. Basically I have two PWM outputs, the first (A) moving from a 0-100% duty cycle based on the output of an adjustable-wavelenth sine wave, and the second (B) doing the same thing on a sinewave shifted 90° out of phase (aka cosine) such that when A is at 100%, B is at 0%, A and B are wired to the blue and green channels of the RGB LEDs such that A drives the blue channel of the first and third LEDs and the green channel of the middle LED.
Components
1×
ATTiny45
Smaller version of the popular ATMega AVR line used in the Arduino Uno.
3×
Large, diffused RGB LEDs
Only two color channels used.
6×
Appropriate Resistors for LEDs
One for each channel but you coulkd wire the resistors on the ground side in parallel.
1×
5V Power Source for AVR
Wall pack, 6V in AA batteries, voltage regulator circuit
Digging this old project up becuase its time to put it on a perfboard, It was originally written for the Arduino Uno, so I need to port the .ino code in AVRC and manually take care of setting the Timer/PWM registers. Then I need tomeasure the power consumption and see if I can drop the clock speed any. Finally, I need to add a LDO regulator and set it up on perfboard with a 9V battery.