Seleccionar un vector desde la comunicación serial

les dejo una simplificación del código

#define led    D1
#define led2   D2
#define ON      1
#define OFF     0

 uint8_t  *PTR = NULL;
 uint16_t VECES = 0;
 uint8_t   I = 0, OUT = 0;

 uint8_t   WHEEL_rojo_[] = {40, 2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,
                                2,0,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,0,0};

 uint8_t   WHEEL_azul_[] = {32, 1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,
                                1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0};

                            
 uint8_t   WHEEL_verde_[] = {36, 2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1,
                                 2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,1};                             



void setup() {
  Serial.begin(115200);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  _run();
  if (Serial.available()) SERIAL_event();
}

void _run(){ 
  
  PTR = &WHEEL_rojo_[0]; /// aca es que quiero poder cambiar el vector via serial
  
  VECES = *PTR;
  for(I=0; I<VECES; I++){
    PTR ++;
    OUT = *PTR;
    switch(OUT){
      case 0:
        digitalWrite(led, OFF);
        digitalWrite(led2, OFF);
        break;
      case 1:
        digitalWrite(led, ON);
        digitalWrite(led2, OFF);
        break;
      case 2:
        digitalWrite(led, ON);
        digitalWrite(led2, ON);
        break;
    }
    delay(100);
  }
}

void SERIAL_event(){
  
}