Cartel maqueta Tres leds con diferentes funciones

Hola. La aplicación es intentar iluminar una pequeña maqueta que tiene un cartel con tres lineas. las tipicas que salen en las peliculas del MOTEL, americanas. una frase superior, una en medio y otra inferior.
Cada una se ilumina con diferentes secuencias ( ver imagen de la secuencia)

Estoy intentando programar tres leds, que tienen diferentes secuencias cada uno. HAsta aqui bien. he realizado un programa con los tres timers.

Mi problema es que no se como modificar que cada led, uno de los leds, tenga diferentes parapadeos. Es decir:

LED 13, que se apague 2 segundos, se encienda dos segundos y luego parpadee 5 veces en intervalos de 200 ms.

El primer parapdeo lo hago (apagar y encender 2 segundos) bien pero los otros no se como implementarlos, para que se produzcan despues de la primera secuencia

// Parametros del pin 12
const int pinLed12 = 12;
long intervalo1 = 600;
long timer1 = millis();
int estadoPin12 = LOW;

// Parametros del pin 13 
const int pinLed13 = 13;
long intervalo2 = 200;
long timer2 = millis();
int estadoPin13 = LOW;

// Parametros del pin 8 
const int pinLed8 = 8;
long intervalo3 = 3000;
long timer3 = millis();
int estadoPin8 = LOW;

void setup() {
  pinMode(pinLed12, OUTPUT); //pin 12 como salida
  pinMode(pinLed13, OUTPUT); //pin 13 como salida
  pinMode(pinLed8, OUTPUT); //pin 13 como salida
}

void loop() {
 
  if ( (millis() - timer1) > intervalo1){
    parpadeo_12(); //invoca rutina de parpadeo pin 12
  }
  if ( (millis() - timer2) > intervalo2){
    parpadeo_13(); //invoca rutina de parpadeo pin 13
  }
    if ( (millis() - timer3) > intervalo3){
    parpadeo_8(); //invoca rutina de parpadeo pin 8
  }
}

void parpadeo_12(){ //rutina de parpadeo pin 12
  if (estadoPin12 == LOW)
      estadoPin12 = HIGH;
    else
      estadoPin12 = LOW;
    digitalWrite(pinLed12, estadoPin12);
    timer1 = millis();
}

void parpadeo_13(){ //rutina de parpadeo pin 13
  if (estadoPin13 == LOW)
      estadoPin13 = HIGH;
    else
      estadoPin13 = LOW;
    digitalWrite(pinLed13, estadoPin13);
    timer2 = millis();
}

void parpadeo_8(){ //rutina de parpadeo pin 8
  if (estadoPin8 == LOW)
      estadoPin8 = HIGH;
    else
      estadoPin8 = LOW;
    digitalWrite(pinLed8, estadoPin8);
    timer3 = millis();
}

Aqui la posible secuencia

Hola jordiWR,

Por qué no metes la instrucción de parpadeo dentro de un bucle for?

Voy a investigar como se puede hacer. muchas gracias por la pronta respuesta

JordiWR:
Mi problema es que no se como modificar que cada led, uno de los leds, tenga diferentes parapadeos.

Pseudocódigo.

pin led1
array tiempos_led1 {1000,2000,3000}
array estado_led1 {true, false, true}

bucle for recorriendo tiempos.
Si tiempo del indice se cumple
cambiar estado del led por estado_led1 del índice.

En resumen, usa un array con los tiempos y el valor que necesitas. Si eres muy maniático con el número de variables a usar como yo, hazlo de dos dimensiones y en vez de usar dos tipo int, bool, haz uno bidimensional de int y los true y false pásalos a 0 y 1.

No sé, es simple, sólo es establecer un orden y un tiempo. Ya he puesto varios ejercicios resueltos así de semáforos en este foro.