Neopixel stair light project


I turn to the forum for som guideance and some help.
I have a staircase with 14 steps wich i want to light up with my neopixels.
Some how i have an idea on how to do it but i see that my code is going to be messy and long.
I have searched and searched the internet for clues but i am stuck on how to simplify the code.
Since the steps dont have equal amount of leds i decided to make the code with 14 different strips.
Maybe stuipd.

I`m going to use and proximity sensor in the bottom and the top wich has adjustable range.
The sensor works fine.

The resault im looking for is to light the 2 first and 2 last leds on each step with a dim color as a standby light.

When a sensor is activated i want each strip to light up with all leds step by step with a delay of aprox 1 sec between each step.
follow by turning of the light behind after aprox 5 -10 sec.

I have added the code i have so fare with only to strips set up. It works fine but i guess as anyone with programing knowledge can see this is going to be a very long code when i add in all the 14 strips in the code.

I will be very happy if anyone could guide me in a better direction.
So that i maybe only needed 1 void for colorwipe up and 1 for down but a way to indexing the stips.

And if someone have an idea of how to tell the stip to light specific leds in a strip.
Example. strip 1 have 22 leds. you want with 1 line light up led number 0,1,20 and 21. How to??

Thanks a lot for any suggestions.
Sorry for any bad english.

Code below:

#include <Adafruit_NeoPixel.h>

Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(22, 6, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(20, 7, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(20, 26, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip4 = Adafruit_NeoPixel(20, 27, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip5 = Adafruit_NeoPixel(20, 28, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip6 = Adafruit_NeoPixel(20, 29, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip7 = Adafruit_NeoPixel(20, 30, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip8 = Adafruit_NeoPixel(20, 31, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip9 = Adafruit_NeoPixel(20, 32, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip10 = Adafruit_NeoPixel(20, 33, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip11 = Adafruit_NeoPixel(20, 34, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip12 = Adafruit_NeoPixel(20, 35, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip13 = Adafruit_NeoPixel(20, 36, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip14 = Adafruit_NeoPixel(20, 37, NEO_GRB + NEO_KHZ800);

int sensorPinBot=5; //Proximity sensor bottom of stairs

void setup() {
strip1.setBrightness(40); //adjust brightness here
strip2.setBrightness(40); //adjust brightness here; // Initialize all pixels to ‘off’; // Initialize all pixels to ‘off’
Serial.begin (9600);


void loop() {
if (digitalRead(sensorPinBot) == HIGH)
uint32_t color = (255,0,255);
strip1.setPixelColor(0, color);
strip1.setPixelColor(1, color);
strip1.setPixelColor(21, color);
strip1.setPixelColor(20, color);
strip2.setPixelColor(0, color);
strip2.setPixelColor(1, color);
strip2.setPixelColor(19, color);
strip2.setPixelColor(18, color);;;

if (digitalRead(sensorPinBot) == LOW)

colorWipe1(strip1.Color(255, 0, 0),255);
colorWipe2(strip2.Color(255, 0, 0),255);


colorWipe1(strip1.Color(0, 0, 0),255);
colorWipe2(strip2.Color(0, 0, 0),255);;;


//colorWipe for strip1
void colorWipe1(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip1.numPixels(); i++) {
strip1.setPixelColor(i, c);;
//colorWipe for strip2
void colorWipe2(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip2.numPixels(); i++) {
strip2.setPixelColor(i, c);;