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(){
}