mantener led parpadeando mientras se ejecuta otra tarea

Buenas tardes,
tengo una duda con un codigo que estoy preparando.
estoy montando un robot el cual hace una serie de movimientos.
He implementado 4 leds que parpadean en todo momento.
Estoy dandole vueltas a la cabeza y no se como hacerlo.
Me gustaría que los leds parpadeen durante 0.5 segundos y estén un segundo apagados en todo momento mientras el robot ejecute una serie de tareas, es decir necesito que ejecute la tarea de hacer parpadear los leds y simultaneamente que el robot pueda moverse y ejecutar una serie de tareas.
Es probable que la solución sea una chorrada, pero ahora mismo no se me ocurre nada.
Alguna sugerencia??

he encontrado en internet este código pero no me sirve ya que quiero que esté encendido por un tiempo diferente al que quiero que esté apagado.

/*
  Parpadeo sin la función delay()
  Enciende y apaga la luz emitida por el LED, conectado a un pin digital, sin usar la función
  delay().
  */

// asigna a la constante pin_led con el valor 13
const int pin_led = 13;

// Variables que cambiarán:
int estado_led = LOW;             // estado_led usado para configurar el LED
long millis_anteriores = 0;        //  Almacenara la ultima vez que el LED fue actualizado

// la siguiente variable es tipo long porque representa el tiempo, medido en milisegundos.
long intervalo = 1000;           // intervaloo en el cual parpadea (millisegundos)

void setup() {
  // se configura el pin digital como pin de salida
  pinMode(pin_led, OUTPUT);      
}

void loop()
{
  // aca escribes el codigo que correra repetidamente
  // asigna a la varible millis_actuales el valor de la funcion millis()

   unsigned long millis_actuales = millis();
 
  if(millis_actuales - millis_anteriores > intervalo) {
    // almacena la ultima vez que parpadeo el LED
    millis_anteriores = millis_actuales;  

    // si el LED esta apagado, entonces se prende o viceversa.
    if (estado_led == LOW) {
      estado_led = HIGH;
    } else {
      estado_led = LOW;
    }
    // configura el LED con la variable estado_led
    digitalWrite(pin_led, estado_led);
  }
}

un saludo y muchas gracias.

Ve a Documentación y lee el primer hilo creo que se llama máquina de estados.
Debes armar una máquina de estados tal que realice la tarea usando millis() para no frenar la ejecución del código.
Luego de ver la teoría en el post#14 yo explico usando un caso similar al tuyo como convertir un código con delays en una máquina de estados.

Post#14 de máquina de estados escrito por cgriell

Habitualmente uso máquiinas de estados, ya que acabo de resolver un problema de este modo aporte el código en el post#10 de este hilo comportamiento no esperado de delay().

Justamente delay que no se lleva de la mano con casi nada mas que con blink, pierde terreno todos los dias.
Para quienes lean este hilo vean un ejemplo modesto de como usar una máquina de estados.

En tu caso el código que encontraste es el mismo o parecido a BlinkWithoutDelay.ino de tu IDE. Mira como hacer parpadear los leds sin usar delay y justamente usando milllis().

le voy a dar una vuelta al asunto.
muchísimas gracias y felices fiestas.

Te mande privado para que estas consultas las concentres en tu verdadero proyecto del auto de control y no por todo el foro.

Para tener un "paralelismo" (parpadear LEDs mientras corre un programa) más "limpio", puedes recurrir a las interrupciones por timer.
Mencionas que van a parpadear todo el tiempo, así que la implementación debe de ser sencilla.

buenos días, lo que os preguntaba era para el siguiente proyecto:
http://forum.arduino.cc/index.php?topic=444324.0