Ayuda Programar con librería DmxSimple

Hola a todos:

Os planteo aquí una duda de programación con la librería DmxSimple.

Programé un “show” con varios movimientos con motores y cambios de escena con luces"

escena inicial, movimientos, escena 2, movimientos.

/*
Creador: davmax
Fecha : Marzo/2015
Título : davmax

*/

#include <DmxSimple.h>

void setup()
{
// 1.- Seleccionar el pin 3 como terminal para envío de datos al dispositivo DMX-512
DmxSimple.usePin(3);

// 2.- Se le indica a la biblioteca DMXSimple que la red sólo tiene 20 canales habilitados
// (1-8 motores, 9-11 tira RGB-LEDs,12-20 canales dmx luminarias ).
DmxSimple.maxChannel(20);
}

void loop(){
/* ESCENA 1*/
{DmxSimple.write(1,119); // MOTOR 1 CONTINUO giro lento
DmxSimple.write(4,0); // POSICION motor 4
DmxSimple.write(3,0); // POSICION motor 3
DmxSimple.write(6,0); // POSICION motor 6
DmxSimple.write(8,0); // POSICION motor 8
DmxSimple.write(9,128); // rgb ROJO AL 50%
DmxSimple.write(11,255); //rgb AZUL A FULL
DmxSimple.write(12,255); //dmx 12 a 100%
DmxSimple.write(17,200); //dmx 17 al 80%
DmxSimple.write(13,179); //dmx 13 al 70%
DmxSimple.write(14,179); //dmx 14 al 70%
}
/* MOVIMIENTOS motores /
for (int i = 0; i <=15; i++)
{ DmxSimple.write(4,128);//movimiento motor 1
DmxSimple.write(3,128);//movimiento motor 3
DmxSimple.write(6,128);//movimiento motor 6
delay(400); // ESPERA 0,4 SEGUNDOS
DmxSimple.write(4,0);//movimiento motor 1
DmxSimple.write(3,0);//movimiento motor 3
DmxSimple.write(6,0);//movimiento motor 6
delay(400);} // ESPERA 0,4 SEGUNDOS
delay(3000);
/
ESCENA 2 luces*/
for (int i = 0; i <=255; i++)
{ DmxSimple.write(18, i);// FADE UP dmx 18
delay(20);}
for (int i = 128; i <=255; i++)
{ DmxSimple.write(9, i);// FADE UP dmx 9
delay(20);}
for (int i = 255; i >= 0; i–)
{ DmxSimple.write(11, i);// fade down dmx 11
delay(20);}
for (int i = 179; i >= 0; i–)
{ DmxSimple.write(13, i);// fade down dmx 13
DmxSimple.write(14, i);// fade down dmx 14
delay(20);}
for (int i = 0; i <=179; i++)
{ DmxSimple.write(15, i);// FADE UP dmx 15
DmxSimple.write(16, i);// FADE UP dmx 16
delay(20);}
/* MOVIMIENTOS motores */
for (int i = 0; i <=15; i++)
{ DmxSimple.write(4,128);//movimiento motor 1
DmxSimple.write(3,128);//movimiento motor 3
DmxSimple.write(6,128);//movimiento motor 6
delay(400); // ESPERA 0,4 SEGUNDOS
DmxSimple.write(4,0);//movimiento motor 1
DmxSimple.write(3,0);//movimiento motor 3
DmxSimple.write(6,0);//movimiento motor 6
delay(400);} // ESPERA 0,4 SEGUNDOS
delay(3000);

}

Con esta programacion, primero realizamos un cambio en la luz, luego cambio en los motores, todo secuencial.

Mi pregunta es la siguiente:

¿como podria hacer que los motores se movieran mientras los cambios de luz se realizan?
Que se realicen a la vez los movimientos de los motores con sus tiempos y demás, con los cambios de las escenas?

No sé si me expliqué con claridad.
Muchas gracias por vuestro tiempo
Un saludo

_52_ayuda_dmx_simple.ino (2.43 KB)

Prueba incluir los movimientos en el mismo bucle for que los cambios de luces.

Pero harían el movimiento los motores en vez de 15 veces 255 veces.

Los for de luces son para subir y bajar intensidad de 0 a 100% en 5 segundos (20milisegundos, 255 veces)
los for de motores son para moverlos 15 veces....
no sabria como juntar esos 2 for en uno, por eso mi pregunta.....