Hi All,
I am just starting with Arduino and FastLEd and I am trying to work out how to use a defined GRADIENT_PALETTE.
So my 1st test sketch has failed. It is meant to fill the strip with a color and over time slowly move the color up the gradient (simple but it is the start of hopefully a more complex sequence)
My problem is that the ColorHue variable keeps getting reset back to zero. The code works fine with ColorHue incrementing by 1until I put it in this line
leds[i] = ColorFromPalette( myPal, ColorHue,LEDBrightness,LINEARBLEND );
Then the Serial.print(ColorHue); returns 0 every single pass of the loop.
Full Code Below (PS I will not beusing delay it was inserted to test )
Any help would be great
Many Thanks Ian
___________________________________________________________
/* 1st Test sketch*/
#include <FastLED.h> // Include the FastLed Library
// Define Constants
#define LED_PIN 6
#define COLOR_ORDER GRB
#define CHIPSET WS2812B
#define NUM_LEDS 8
// Define Variables
uint8_t ColorHue = 0;
uint8_t ChangeInHue = 15;
uint8_t LEDBrightness = 255;
int HueDelay = 500;
DEFINE_GRADIENT_PALETTE ( heatmap_gp ) {
0, 255, 255,0, //Yellow
32, 255, 128, 0, //Orange
64, 255,0, 0, //Red
96, 255,0,255, //Pink
128, 128,0,255, //Purple
160, 255,0, 255, //Pink
192, 255,0, 0, //Red
224, 255, 128, 0, //Orange
255, 255, 255,0}; //Yellow Palette End
CRGB leds[NUM_LEDS]; // Define a strip of NUM_LEDS named “leds”
CRGBPalette16 myPal = heatmap_gp; //define myPal as a palette using gradient palette heatmap_gp
void setup() {
delay(2000); // Soft start
Serial.begin(9600); // open the serial port at 9600 bps
FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS); // Define the LED array "leds" parameters
pinMode(LED_PIN, OUTPUT); //Set the LED Pin as an Output
set_max_power_in_volts_and_milliamps(5, 500); // FastLED Power management set at 5V, 500mA
} // setup end
void loop() {
for (int i = 0; i <= NUM_LEDS; i++) {
leds[i] = ColorFromPalette( myPal, ColorHue,LEDBrightness,LINEARBLEND );
} // End For i loop
FastLED.show(); //Show the lights
delay(HueDelay);
ColorHue++;
Serial.print(ColorHue); // print
Serial.print("\t"); // prints a tab
//EVERY_N_MILLISECONDS(HueDelay){
//ColorHue++; // Change the color by 1
//} //Every_n_milliseconds end
} // Loop End