#include void HSVtoRGB(float H, float S,float V,int &R, int &G, int &B){ while(H>360) H-=360; if(H>360 || H<0 || S>100 || S<0 || V>100 || V<0){ return; } float s = S/100; float v = V/100; float C = s*v; float X = C*(1-abs(fmod(H/60.0, 2)-1)); float m = v-C; float r,g,b; if(H >= 0 && H < 60){ r = C,g = X,b = 0; } else if(H >= 60 && H < 120){ r = X,g = C,b = 0; } else if(H >= 120 && H < 180){ r = 0,g = C,b = X; } else if(H >= 180 && H < 240){ r = 0,g = X,b = C; } else if(H >= 240 && H < 300){ r = X,g = 0,b = C; } else{ r = C,g = 0,b = X; } R = (r+m)*255; G = (g+m)*255; B = (b+m)*255; } #define PIN 0 #define NUMPIXELS 25 // 24 #define CENTER 12.5 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); double hue = 0.0; void setup() { pixels.begin(); pinMode(1, OUTPUT); //LED on Model A pinMode(PIN, OUTPUT); //LED on Model A digitalWrite(1, HIGH); delay(500); digitalWrite(1, LOW); } // the loop routine runs over and over again forever: void loop() { for(int i=0;i=360) { hue -= 360; } pixels.show(); // This sends the updated pixel color to the hardware. delay(15); // Delay for a period of time (in milliseconds). }