LED matrix control using arrays and state machine?

I think I don't know how to properly add your code to mine :expressionless:

//tail lamp dev v3

#include <Adafruit_NeoPixel.h>
#include  "taillightarrays.h"

#define PIN 3

const int sensorPin1 = A0;    // select a input pin for control 1 RUN LAMP
const int sensorPin2 = A1;    // select a input pin for control 2 TURN SIGNAL
const int sensorPin3 = A2;    // select a input pin for control 3 BRAKE LIGHT
const int sensorPin4 = A3;    // select a input pin for control 4 REVERSE
const int sensorPin5 = A4;    // party light

int sensorValue1 = A0;  // variable to store the value coming from the sensor
int sensorValue2 = A1;  // variable to store the value coming from the sensor
int sensorValue3 = A2;  // variable to store the value coming from the sensor
int sensorValue4 = A3;  // variable to store the value coming from the sensor
int sensorValue5 = A4;  // variable to store the value coming from the sensor


const int NUM_PIXELS = 256;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, PIN, NEO_GRB);


void setup()
{
  strip.begin();
  strip.setBrightness(255);
  strip.show();   // Initialize all pixels to 'off'
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);
  pinMode(A2, INPUT_PULLUP);
  pinMode(A3, INPUT_PULLUP);




}

void loop()
{


  int state1 = 0; // initialize state1 value to zero
  int state2 = 0; // initialize state2 value to zero
  int state3 = 0; // initialize state3 value to zero
  int state4 = 0; // initialize state4 value to zero
  int state5 = 0; // initialize state4 value to zero

  if (digitalRead(sensorPin1) == LOW) // read the value from the sensor1: //run
    state1 = 1;
  else state1 = 0;


  if (digitalRead(sensorPin2) == LOW) // read the value from the sensor2: //turn
    state2 = 2;
  else state2 = 0;


  if (digitalRead(sensorPin3) == LOW) // read the value from the sensor3: //brake
    state3 = 4;
  else state3 = 0;


  if (digitalRead(sensorPin4) == LOW) // read the value from the sensor4: //reverse
    state4 = 8;
  else state4 = 0;

  if (digitalRead(sensorPin5) == LOW) // read the value from the sensor4: //party lights
    state5 = 20;
  else state5 = 0;


  int totalState = state1 + state2 + state3 + state4 + state5; //total of states to a single int

  //totals of state for which frame to render


  if (totalState == 0) { //off
    delay (200);
    RenderFrame (ledarrayoff);
  }


  if (totalState == 1) { //run
    RenderFrame (ledarrayrun);
  }


  if (totalState == 2 or totalState == 3) { //turn anime turn run anime
  turnAnimeStep();
  }

  if (totalState == 4) { //brake
    RenderFrame (ledarraybrake);
  }


  if (totalState == 5) { //run brake
    RenderFrame (ledarraybrake);
  }


  if (totalState == 6) { //turn brake
    turnbrakeAnimeStep();
  }
    

  if (totalState == 8) { // reverse
    RenderFrame (ledarrayreverse);
  }


  if (totalState == 9) { // run reverse
    RenderFrame (ledarrayrunreverse);
  }


  if (totalState == 10 or totalState == 11) {// turn reverse and run turn reverse
  }


  if (totalState == 12) { // brake reverse
    RenderFrame (ledarraybrakereverse);
  }


  if (totalState == 13) { // run brake reverse
    RenderFrame (ledarraybrakereverse);
  }


  if (totalState == 14 or totalState == 15) { // turn brake reverse
    turnbrakeReverseAnimeStep ();
  }

    if (totalState == 20) { // party lights
    PARTYLIGHTS ();
  }

}



//Anime state machines

//turn anime machine
void turnAnimeStep()
{
      static byte frame = 0;    // reset to replay
      static unsigned long lastTime = 0;
      static unsigned long tween = 0;

      if (millis() - lastTime < tween)
        return;

      lastTime = millis();
      switch (frame) {
        case 0 :
          RenderFrame (ledarrayt1);
          tween = 200;
          frame++;
          break;

        case 1 :
          RenderFrame (ledarrayt2);
          tween = 15;
          frame++;
          break;

        case 2 :
          RenderFrame (ledarrayt3);
          tween = 15;
          frame++;
          break;

        case 3 :
          RenderFrame (ledarrayt4);
          tween = 15;
          frame++;
          break;

        case 4 :
          RenderFrame (ledarrayt5);
          tween = 15;
          frame++;
          break;

        case 5 :
          RenderFrame (ledarrayt6);
          tween = 15;
          frame++;
          break;

        case 6 :
          RenderFrame (ledarrayt7);
          tween = 15;
          frame++;
          break;

        case 7 :
          RenderFrame (ledarrayt8);
          tween = 15;
          frame++;
          break;

        case 8 :
          RenderFrame (ledarrayt9);
          tween = 15;
          frame++;
          break;
          
        case 9 :
          RenderFrame (ledarrayt10);
          tween = 15;
          frame++;
          break;

        case 10 :
          RenderFrame (ledarrayt11);
          tween = 15;
          frame++;
          break;

        case 11 :
          RenderFrame (ledarrayt12);
          tween = 15;
          frame++;
          break;

        case 12 :
          RenderFrame (ledarrayt13);
          tween = 15;
          frame++;
          break;

        case 13 :
          RenderFrame (ledarrayt14);
          tween = 15;
          frame++;
          break;

        case 14 :
          RenderFrame (ledarrayt15);
          tween = 15;
          frame++;
          break;

        case 15 :
          RenderFrame (ledarrayt16);
          tween = 15;
          frame++;
          break;

        case 16 :
          RenderFrame (ledarrayt17);
          tween = 15;
          frame++;
          break;

        case 17 :
          RenderFrame (ledarrayt18);
          tween = 15;
          frame++;
          break;

        case 18 :
          RenderFrame (ledarrayt19);
          tween = 15;
          frame++;
          break;

        case 19 :
          RenderFrame (ledarrayt20);
          tween = 15;
          frame++;
          break;

        case 20 :
          RenderFrame (ledarrayt21);
          tween = 15;
          frame++;
          break;

        case 21 :
          RenderFrame (ledarrayt22);
          tween = 15;
          frame++;
          break;

        case 22 :
          RenderFrame (ledarrayt23);
          tween = 15;
          frame++;
          break;

        case 23 :
          RenderFrame (ledarrayt24);
          tween = 15;
          frame = 0;
          break;
      }
    }

//turn brake anime machine
void turnbrakeAnimeStep()
{
      static byte frame = 0;    // reset to replay
      static unsigned long lastTime = 0;
      static unsigned long tween = 0;

      if (millis() - lastTime < tween)
        return;

      lastTime = millis();
      switch (frame) {
        case 0 :
          RenderFrame (ledarraytb1);
          tween = 200;
          frame++;
          break;

        case 1 :
          RenderFrame (ledarraytb2);
          tween = 15;
          frame++;
          break;

        case 2 :
          RenderFrame (ledarraytb3);
          tween = 15;
          frame++;
          break;

        case 3 :
          RenderFrame (ledarraytb4);
          tween = 15;
          frame++;
          break;

        case 4 :
          RenderFrame (ledarraytb5);
          tween = 15;
          frame++;
          break;

        case 5 :
          RenderFrame (ledarraytb6);
          tween = 15;
          frame++;
          break;

        case 6 :
          RenderFrame (ledarraytb7);
          tween = 15;
          frame++;
          break;

        case 7 :
          RenderFrame (ledarraytb8);
          tween = 15;
          frame++;
          break;

        case 8 :
          RenderFrame (ledarraytb9);
          tween = 15;
          frame++;
          break;
          
        case 9 :
          RenderFrame (ledarraytb10);
          tween = 15;
          frame++;
          break;

        case 10 :
          RenderFrame (ledarraytb11);
          tween = 15;
          frame++;
          break;

        case 11 :
          RenderFrame (ledarraytb12);
          tween = 15;
          frame++;
          break;

        case 12 :
          RenderFrame (ledarraytb13);
          tween = 15;
          frame++;
          break;

        case 13 :
          RenderFrame (ledarraytb14);
          tween = 15;
          frame++;
          break;

        case 14 :
          RenderFrame (ledarraytb15);
          tween = 15;
          frame++;
          break;

        case 15 :
          RenderFrame (ledarraytb16);
          tween = 15;
          frame++;
          break;

        case 16 :
          RenderFrame (ledarraytb17);
          tween = 15;
          frame++;
          break;

        case 17 :
          RenderFrame (ledarraytb18);
          tween = 15;
          frame++;
          break;

        case 18 :
          RenderFrame (ledarraytb19);
          tween = 15;
          frame++;
          break;

        case 19 :
          RenderFrame (ledarraytb20);
          tween = 15;
          frame++;
          break;

        case 20 :
          RenderFrame (ledarraytb21);
          tween = 15;
          frame++;
          break;

        case 21 :
          RenderFrame (ledarraytb22);
          tween = 15;
          frame++;
          break;

        case 22 :
          RenderFrame (ledarraytb23);
          tween = 15;
          frame = 0;
          break;
      }
}

//turn brake reverse anime machine
void turnbrakeReverseAnimeStep()
{
      static byte frame = 0;    // reset to replay
      static unsigned long lastTime = 0;
      static unsigned long tween = 0;

      if (millis() - lastTime < tween)
        return;

      lastTime = millis();
      switch (frame) {
        case 0 :
          RenderFrame (ledarraytbr1);
          tween = 200;
          frame++;
          break;

        case 1 :
          RenderFrame (ledarraytbr2);
          tween = 15;
          frame++;
          break;

        case 2 :
          RenderFrame (ledarraytbr3);
          tween = 15;
          frame++;
          break;

        case 3 :
          RenderFrame (ledarraytbr4);
          tween = 15;
          frame++;
          break;

        case 4 :
          RenderFrame (ledarraytbr5);
          tween = 15;
          frame++;
          break;

        case 5 :
          RenderFrame (ledarraytbr6);
          tween = 15;
          frame++;
          break;

        case 6 :
          RenderFrame (ledarraytbr7);
          tween = 15;
          frame++;
          break;

        case 7 :
          RenderFrame (ledarraytbr8);
          tween = 15;
          frame++;
          break;

        case 8 :
          RenderFrame (ledarraytbr9);
          tween = 15;
          frame++;
          break;
          
        case 9 :
          RenderFrame (ledarraytbr10);
          tween = 15;
          frame++;
          break;

        case 10 :
          RenderFrame (ledarraytbr11);
          tween = 15;
          frame++;
          break;

        case 11 :
          RenderFrame (ledarraytbr12);
          tween = 15;
          frame++;
          break;

        case 12 :
          RenderFrame (ledarraytbr13);
          tween = 15;
          frame++;
          break;

        case 13 :
          RenderFrame (ledarraytbr14);
          tween = 15;
          frame++;
          break;

        case 14 :
          RenderFrame (ledarraytbr15);
          tween = 15;
          frame++;
          break;

        case 15 :
          RenderFrame (ledarraytbr16);
          tween = 15;
          frame++;
          break;

        case 16 :
          RenderFrame (ledarraytbr17);
          tween = 15;
          frame++;
          break;

        case 17 :
          RenderFrame (ledarraytbr18);
          tween = 15;
          frame++;
          break;

        case 18 :
          RenderFrame (ledarraytbr19);
          tween = 15;
          frame++;
          break;

        case 19 :
          RenderFrame (ledarraytbr20);
          tween = 15;
          frame++;
          break;

        case 20 :
          RenderFrame (ledarraytbr21);
          tween = 15;
          frame++;
          break;

        case 21 :
          RenderFrame (ledarraytbr22);
          tween = 15;
          frame++;
          break;

        case 22 :
          RenderFrame (ledarraytbr23);
          tween = 15;
          frame = 0;
          break;
      }
}

//PARTYLIGHTS
void PARTYLIGHTS()
{
      static byte frame = 0;    // reset to replay
      static unsigned long lastTime = 0;
      static unsigned long tween = 0;

      if (millis() - lastTime < tween)
        return;

      lastTime = millis();
      switch (frame) {
        case 0 :          
        RenderFrame (PARTYLIGHT1);
          tween = 200;
          frame++;
          break;


        case 1 :
          RenderFrame (PARTYLIGHT2);
          tween = 200;
          frame = 0;
          break;
      }
    }


void RenderFrame(const uint32_t *arr)
    {
  for (uint16_t t = 0; t < 256; t++)
  {
    strip.setPixelColor(t, arr[t]);
  }
  strip.show();

}