Problema con subrutinas controladas desde el puerto serial

Saludos

Mi problema es el siguiente, estoy elaborando un proyecto, para ello necesito que la arduino entre en tres modos distintos (día - noche - paro) a través de un dato enviado desde el puerto serial en el modo día (prendera relevadores según ciertas condiciones dadas por la lectura de 3 sensores de temperatura y 3 de nivel, en el modo noche uno de los relevadores permanecerá apagado y los demás seguirán funcionando según los valores de los sensores, en el modo paro la arduino apaga todos los relevadores deja de leer los sensores y queda en espera de dato por el puerto serial para ponerse en modo día o noche) sin embargo no logro hacer que la arduino haga subrutinas continuas.

En programa siguiente quería hacer un ejemplo sensillo de subrutinas controladas por el puerto serial de tal forma que cuando le llegue una "a" por el puerto serial (monitor serial) la arduino imprima "Es de Día" pero que lo haga sin interrupción hasta que le mande una "b", cunado esto suceda ahora se imprimirá "es de noche". Sin embargo solo me ejecuta algunas veces la impresión y después deja de hacerlo, hasta que vuelvo a enviar una “a” o una “b” . Ojala alguien pueda ayudarme o si ya han hecho algo similar me den un ejemplo.

char dato;
char aux;
void setup()
{
dato=0;
Serial.begin(9600);
Serial.flush();
}
void loop()
{
if (Serial.available() > 0)
{
dato = Serial.read();
Serial.println(dato);
}
aux=dato;
if(aux=='a')
{
Serial.println("Es de día");
}
if(aux=='b')
{
Serial.println("Es de NOCHE");
}
}

Gracias de ante mano por sus respuestas y comentarios