Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int redPin = 11;
- int greenPin = 10;
- int bluePin = 9;
- void setup()
- {
- pinMode(redPin, OUTPUT);
- pinMode(greenPin, OUTPUT);
- pinMode(bluePin, OUTPUT);
- }
- void loop()
- {
- for(int hue = 0; hue < 360; hue++)
- {
- setColorHSV(hue, 1, 1);
- delay(10);
- }
- }
- void setColorRGB(int red, int green, int blue)
- {
- analogWrite(redPin, red);
- analogWrite(greenPin, green);
- analogWrite(bluePin, blue);
- }
- void setColorHEX(unsigned long color)
- {
- byte redInt = (color >> 16) & 0xFF;
- byte greenInt = (color >> 8) & 0xFF;
- byte blueInt = color & 0xFF;
- setColorRGB(redInt, greenInt, blueInt);
- }
- void setColorHSV(int hue, double sat, double val)
- {
- double r = 0;
- double g = 0;
- double b = 0;
- double hf = hue/60.0;
- int i = (int)floor(hue/60.0);
- double f = hue/60.0 -i;
- double pv = val * (1-sat);
- double qv = val * (1-sat * f);
- double tv = val * (1-sat * (1-f));
- switch(i)
- {
- case 0:
- r = val;
- g = tv;
- b = pv;
- break;
- case 1:
- r = qv;
- g = val;
- b = pv;
- break;
- case 2:
- r = pv;
- g = val;
- b = tv;
- break;
- case 3:
- r = pv;
- g = qv;
- b = val;
- break;
- case 4:
- r = tv;
- g = pv;
- b = val;
- break;
- case 5:
- r = val;
- g = pv;
- b = qv;
- break;
- case 6:
- r = val;
- g = tv;
- b = pv;
- break;
- case -1:
- r = val;
- g = pv;
- b = qv;
- break;
- default:
- r = g = b = val;
- break;
- }
- int red = constrain((int)255 * r, 0, 255);
- int green = constrain((int)255 * g, 0, 255);
- int blue = constrain((int)255 * b, 0, 255);
- setColorRGB(red, green, blue);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement