Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastLED.h>
- #define LED_PIN 6 //CONFIGURE LED STRIP HERE
- #define NUM_LEDS 164
- #define BRIGHTNESS 100
- #define LED_TYPE WS2812B
- #define COLOR_ORDER GRB
- CRGB leds[NUM_LEDS];
- #define UPDATES_PER_SECOND 100
- //Previous value of RGB
- int redPrevious, greenPrevious, bluePrevious = 0;
- //Current value of RGB
- float redCurrent, greenCurrent, blueCurrent = 0;
- //Target value of RGB
- int redTarget, greenTarget, blueTarget = 0;
- int fade_delay = 5;
- int steps = 50; //This is where you tell it how smooth of a transition you want it to be
- void setup() {
- Serial.begin(9600);
- delay( 3000 ); // power-up safety delay
- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- }
- void loop() { // Here is where you tell it what colours you want!
- FadeToColour(0, 0, 225); // blue
- FadeToColour(0, 225, 0); // green
- FadeToColour(255, 100, 0); // redish-orange
- FadeToColour(0, 225, 0); // green
- }
- void FadeToColour(int r, int g, int b) {
- redPrevious = redCurrent;
- greenPrevious = greenCurrent;
- bluePrevious = blueCurrent;
- redTarget = r;
- greenTarget = g;
- blueTarget = b;
- float redDelta = redTarget - redPrevious;
- redDelta = redDelta / steps;
- float greenDelta = greenTarget - greenPrevious;
- greenDelta = greenDelta / steps;
- float blueDelta = blueTarget - bluePrevious;
- blueDelta = blueDelta / steps;
- for (int j = 1; j < steps; j++) {
- redCurrent = redPrevious + (redDelta * j);
- greenCurrent = greenPrevious + (greenDelta * j);
- blueCurrent = bluePrevious + (blueDelta * j);
- fill_solid(redCurrent, greenCurrent, blueCurrent, leds);
- delay(fade_delay); //Delay between steps
- }
- delay(1000); //Wait at peak colour before continuing
- }
- void fill_solid(int r, int g, int b, int lednum) {
- Serial.println(r);
- for(int x = 0; x < NUM_LEDS; x++){ //This tells it to affect the whole strip instead of indivual ones.
- leds[x] = CRGB(r,g,b);
- FastLED.show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement