Prueba este código para que entiendas como funciona. salió hace poco en este post
http://arduino.cc/forum/index.php/topic,89264.msg684695.html#msg684695dependiendo de los if o while y como manejes las temporizaciones puedes hacer que unas dependan de otras y demás
un saludo
long tiempofuncion1 = 1000; // cada segundo
long tiempofuncion2 = 3000; // cada 3 segundos
long TiempoInicial1;
long TiempoInicial2;
void setup() {
Serial.begin(9600);
TiempoInicial1=millis(); // inicia la variable al momento actual para temporizador 1
TiempoInicial2=millis(); // inicia la variable al momento actual para temporizador 2
}
void loop() {
if (millis() >= (TiempoInicial1+tiempofuncion1)) {
funcion1();
TiempoInicial1=millis(); // reset de inicio
}
if (millis() >= (TiempoInicial2+tiempofuncion2)) {
funcion2();
TiempoInicial2=millis(); // reset de inicio
}
}
void funcion1()
{
Serial.println("Dentro de la funcion 1");
}
void funcion2()
{
Serial.println("Dentro de la funcion 2");
}