As program i used the Example DigisparkRGB program. ( Examples \ DigisparkRGB \ DigisparkRGB ).
#include <DigisparkRGB.h>
/*
Digispark RGB
This example shows how to use soft PWM to fade 3 colors.
Note: This is only necessary for PB2 (pin 2) - Blue, as Red (pin 0) and Green (pin 1) as well as pin 4 support the standard Arduino analogWrite() function.
This example code is in the public domain.
*/
byte RED = 0;
byte BLUE = 2;
byte GREEN = 1;
byte COLORS[] = {RED, BLUE, GREEN};
// the setup routine runs once when you press reset:
void setup() {
DigisparkRGBBegin();
}
void loop ()
{
//direction: up = true, down = false
boolean dir = true;
int i = 0;
while(1)
{
fade(COLORS[i%3], dir);
i++;
dir = !dir;
}
}
void fade(byte Led, boolean dir)
{
int i;
//if fading up
if (dir)
{
for (i = 0; i < 256; i++)
{
DigisparkRGB(Led, i);
DigisparkRGBDelay(25);//1);
}
}
else
{
for (i = 255; i >= 0; i--)
{
DigisparkRGB(Led, i);
DigisparkRGBDelay(25);//1);
}
}
}
A video of the result was posted on my YouTube channel :
(At that time this blogpost was not yet ready for publishing.)
As i was not very happy with the recorded colors, i tried to improve it by putting a white paper below the led. However the improvement was only minor and the real colors are different. I hope the video will at least give a little impression of the changing colors.
As all the colors are faded in the program i did not specially select the led color pins to be matched to the colors in the program ( RED = 0; BLUE = 2; GREEN = 1; )