Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Increasing brightness
#include "FastLED.h" // FastLED library.
#if FASTLED_VERSION < 3001000
#error "Requires FastLED 3.1 or later; check github for latest code."
#endif
// Fixed definitions cannot change on the fly.
#define LED_DT 12 // Data pin to connect to the strip.
#define LED_CK 11 // Clock pin for WS2801 or APA102.
#define COLOR_ORDER BGR // It's GRB for WS2812 and BGR for APA102.
#define LED_TYPE APA102 // Using APA102, WS2812, WS2801. Don't forget to modify LEDS.addLeds to suit.
#define NUM_LEDS 60 // Number of LED's.
// Global variables can be changed on the fly.
uint8_t max_bright = 255; // Overall brightness definition. It can be changed on the fly.
long mycount = 0;
struct CRGB leds[NUM_LEDS]; // Initialize our LED array.
void setup() {
Serial.begin(57600); // Initialize serial port for debugging.
delay(1000); // Soft startup to ease the flow of electrons.
LEDS.addLeds<LED_TYPE, LED_DT, LED_CK, COLOR_ORDER>(leds, NUM_LEDS); // Use this for WS2801 or APA102
// LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS); // Use this for WS2812
FastLED.setBrightness(max_bright);
set_max_power_in_volts_and_milliamps(5, 500); // FastLED Power management set at 5V, 500mA.
} // setup()
void loop(){
setcolors();
FastLED.show();
} // loop()
void setcolors(){
static long mycount = 0;
Serial.print(">>>");
Serial.println(mycount);
for (int i=0; i< NUM_LEDS; i++) {
long temp = mycount / (8*i+1); // Each LED starts to light up after the previous one has a brightness of 8. Watch out for div0 though.
if (temp >0) temp = temp+mycount-8*i; // Once an LED is lit, take the mycount value and subtract the LED location to get the resulting brightness
temp = constrain(temp,0,255); // Keep the absolute value from going over 255
Serial.println(temp);
leds[i] = CHSV(255,0,temp);
}
mycount++;
} // setcolors()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment