Skip to content

Instantly share code, notes, and snippets.

@skhaz
Last active October 11, 2015 04:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skhaz/3801686 to your computer and use it in GitHub Desktop.
Save skhaz/3801686 to your computer and use it in GitHub Desktop.
int redPin = 9;
int greenPin = 10;
int bluePin = 11;
int hue = 0;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
int r, g, b;
int s = 1, v = 1;
hue++;
if (hue > 360)
hue = 0;
int hf = hue / 60.0;
int i = floor(hf);
int f = hf - i;
int pv = v * (1 - s);
int qv = v * (1 - s * f);
int tv = v * (1 - s * (1 - f));
switch(i) {
case 0:
r = v;
g = tv;
b = pv;
break;
case 1:
r = qv;
g = v;
b = pv;
break;
case 2:
r = pv;
g = v;
b = tv;
break;
case 3:
r = pv;
g = qv;
b = v;
break;
case 4:
r = tv;
g = pv;
b = v;
case 5:
r = v;
g = pv;
b = qv;
break;
default:
break;
}
analogWrite(redPin, max(0, min(255 * r, 255)));
analogWrite(greenPin, max(0, min(255 * g, 255)));
analogWrite(bluePin, max(0, min(255 * b, 255)));
delayMicroseconds(50);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment