// NeoPixelBrightness // This example will cycle brightness from high to low of // three pixels colored Red, Green, Blue. // This demonstrates the use of the NeoPixelBrightnessBus // with integrated brightness support // // There is serial output of the current state so you can // confirm and follow along // #include // instead of NeoPixelBus.h const uint16_t PixelCount = 3; // this example assumes 3 pixels, making it smaller will cause a failure const uint8_t PixelPin = 14; // make sure to set this to the correct pin, ignored for Esp8266 #define colorSaturation 255 // saturation of color constants RgbColor red(colorSaturation, 0, 0); RgbColor green(0, colorSaturation, 0); RgbColor blue(0, 0, colorSaturation); // Make sure to provide the correct color order feature // for your NeoPixels NeoPixelBrightnessBus strip(PixelCount, PixelPin); // you loose the original color the lower the dim value used // here due to quantization const uint8_t c_MinBrightness = 8; const uint8_t c_MaxBrightness = 255; int8_t direction; // current direction of dimming void setup() { Serial.begin(115200); while (!Serial); // wait for serial attach Serial.println(); Serial.println("Initializing..."); Serial.flush(); // this resets all the neopixels to an off state strip.Begin(); strip.Show(); direction = -1; // default to dim first Serial.println(); Serial.println("Running..."); // set our three original colors strip.SetPixelColor(0, red); strip.SetPixelColor(1, green); strip.SetPixelColor(2, blue); strip.Show(); } void loop() { uint8_t brightness = strip.GetBrightness(); Serial.println(brightness); delay(100); // swap diection of dim when limits are reached // if (direction < 0 && brightness <= c_MinBrightness) { direction = 1; } else if (direction > 0 && brightness >= c_MaxBrightness) { direction = -1; } // apply dimming brightness += direction; strip.SetBrightness(brightness); // show the results strip.Show(); }