Change direction of the leds

PaulRB:
Normally you would just connect a wire from the data out connector on the end of one strip to the data in connector on the next strip and so on. That way, only one Arduino pin is needed instead of 4. If the data out connector is not accessible, you have to do it the way you did, but I would expect the data out connector is accessible so that the modules can be daisy chained.

Thanks, Unfortunately i can only acces them on one side, so i need to make use of 4 different pins.

Alternatively, if all 4 strips are to always show identical patterns as each other, all 4 could be wired to a single Arduino pin.

If i learn more programming, i would like to make some cloud patterns which show different patterns on each strip, or lightning whichs flashes a few leds on each strip to make it more realistic.
So i thought it could come in handy to have them on 4 pins, if it could be done different and get the same effect i would like to learn.

So you have 4 strips of 84 LEDs. How will they be physically arranged? When you light up LEDs in turn, which strip? Should each led fade on to full brightness before the next led begins to light, or will some/all leds fade at the same time but staggered?

I have placed them next to eachother with a bracket so if i finish this project i can hang the leds on the ceiling on my sons room. All connecting wires are on the same side.
Ideally i would make a sunset which last an hour, starting from led 1 on each strip slowly lighting up till all 84 leds on all strips are on. Starting in a darkblue color low brightness and fading up to white in a higher brightness. For sunset doing the opposite.
I also have a ds3231 to tell the arduino the exact time and show different lightprograms during the day.

In order to turn off an LED you set the colour to Black.

So, to set the first 10 lights on each strip to red.

Thanks, i got something going yesterday somewhat similar.

#include "FastLED.h"

// Number of leds in 1 strip
#define NUM_LEDS 84

DEFINE_GRADIENT_PALETTE( Sunrise_gp ) 
{

   51,  0,  0, 51,  // Midnight blue
  101,   0,   0, 150,  // Deepsky blue
  151,   10,   10, 212,  // Medium blue  
  201, 25, 25, 205,  // Lightsky blue
  241, 50, 50, 205,  // Lightsky blue
  255,  100,  100, 200}; // Daylight

CRGBPalette16 myPal = Sunrise_gp;

    // Define the array of leds
    CRGB ledstrip_1[NUM_LEDS];
    CRGB ledstrip_2[NUM_LEDS];
    CRGB ledstrip_3[NUM_LEDS];
    CRGB ledstrip_4[NUM_LEDS];

void setup() 
{
    delay( 3000 ); // power-up safety delay    
    FastLED.addLeds<WS2812B, 4, GRB>(ledstrip_1, NUM_LEDS);
    FastLED.addLeds<WS2812B, 5, GRB>(ledstrip_2, NUM_LEDS);
    FastLED.addLeds<WS2812B, 6, GRB>(ledstrip_3, NUM_LEDS);
    FastLED.addLeds<WS2812B, 7, GRB>(ledstrip_4, NUM_LEDS);
}

void loop()
{ 
  sunrise();
  
    FastLED.show();
}

void sunrise() {
  
  // total sunrise length, in minutes
  static const uint8_t sunriseLength = 3;

  // how often (in seconds) should the heat color increase?
  // for the default of 60 minutes, this should be about every 14 seconds
  // 14 seconds x 256 gradient steps = 3,584 seconds = ~60 minutes
  static const float interval = ((float)(sunriseLength * 60) / 256)*1000;

  // current gradient palette color index
  static uint8_t heatIndex = 0; // start out at 0

    
    // current used color palette
    CRGB color = ColorFromPalette(myPal, heatIndex);

    // fill the entire strip with the current color palette starting on 1 side
  for ( byte i = 0; i < NUM_LEDS; i++ ) {
    ledstrip_1[i] = CRGB(color);
    ledstrip_2[i] = CRGB(color);
    ledstrip_3[i] = CRGB(color);
    ledstrip_4[i] = CRGB(color);
    FastLED.delay(1000);

  // slowly increase the heat
  EVERY_N_MILLISECONDS(interval ) {
    // stop incrementing at 255, we don't want to overflow back to 0
    if(heatIndex < 255) {
      heatIndex++;
    }   
  }
}
}

I dont know if this is the best way to do it, (probably not:P) but it is working.
It is starting the leds on 1 side slowly turning them all on one by one, and fading the leds trough the colors in 3 minute's(3 minutes will change to an hour it is for testing)