problema con juegos de leds y los caracteres no validos,

Hola buenas,soy nuevo,tengo una duda,quiero hacer una plaqueta la cual tenga leds y juegos de leds que controlo directamente desde el pc,pero tengo un problema,cuando entra un caracter no valido los leds se quedan apagados,pero lo que yo quiero es que quede como el ultimo juego de luces el cual se envio cuando pase eso ose ingrese un caracter invalido. Los caracteres validos son A,B,C y D unicamente. podrian ayudarme? esto es lo que tengo hecho hasta el momento:
char DATO =0;
char guarda;
int leds[4] = {5, 4, 3,2};
void setup(){
Serial.begin(9600);
for(int pin=0; pin<4; pin++){
pinMode(leds[pin], OUTPUT);
}
Serial.println(“a) Parpadear en orden los pines cada 200ms si llega ‘A’”);
Serial.println(“b) Parpadear los pines pares y luego los impares cada 200ms si llega ‘S’”);
Serial.println(“c) Parpadear en orden ascendente y apagar en orden descendente cada 200ms si llega ‘D’”);
Serial.println(“d) Parpadear todos juntos cada 1 segundo si llega ‘F’”);
}
void loop(){
if(Serial.available()>0){
DATO = Serial.read();
}
switch (DATO){
case ‘A’:
digitalWrite(leds[0], HIGH);
delay(200);
digitalWrite(leds[0], LOW);
delay(200);
digitalWrite(leds[1], HIGH);
delay(200);
digitalWrite(leds[1], LOW);
delay(200);
digitalWrite(leds[2], HIGH);
delay(200);
digitalWrite(leds[2], LOW);
delay(200);
digitalWrite(leds[3], HIGH);
delay(200);
digitalWrite(leds[3], LOW);
delay(200);
guarda = DATO;
Serial.print("Repoduciendo…: ");
Serial.println(DATO);
break;

case ‘S’:
digitalWrite(leds[0], HIGH);
digitalWrite(leds[2], HIGH);
delay(200);
digitalWrite(leds[0], LOW);
digitalWrite(leds[2], LOW);
delay(200);
digitalWrite(leds[1], HIGH);
digitalWrite(leds[3], HIGH);
delay(200);
digitalWrite(leds[1], LOW);
digitalWrite(leds[3], LOW);
delay(200);
guarda = DATO;
Serial.print("Repoduciendo…: ");
Serial.println(DATO);
break;
case ‘D’:
digitalWrite(leds[0], HIGH);
delay(200);
digitalWrite(leds[1], HIGH);
delay(200);
digitalWrite(leds[2], HIGH);
delay(200);
digitalWrite(leds[3], HIGH);
delay(200);
digitalWrite(leds[3], LOW);
delay(200);
digitalWrite(leds[2], LOW);
delay(200);
digitalWrite(leds[1], LOW);
delay(200);
digitalWrite(leds[0], LOW);
delay(200);
guarda = DATO;
Serial.print("Repoduciendo…: ");
Serial.println(DATO);
break;
case ‘F’:
digitalWrite(leds[0], HIGH);
digitalWrite(leds[1], HIGH);
digitalWrite(leds[2], HIGH);
digitalWrite(leds[3], HIGH);
delay(1000);
digitalWrite(leds[0], LOW);
digitalWrite(leds[1], LOW);
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
delay(1000);
guarda = DATO;
Serial.print("Repoduciendo…: ");
Serial.println(DATO);
break;

}

}

Moderador:
En el título no debe usarse la palabra Ayuda y evita por favor los urgentes. El urgente se resuelve preguntando antes. Edita!!
Los códigos deben ir con etiquetas. Edita!!.

Lee las Normas del foro

Para eso existe "default".
Urgentemente googlea "switch case arduino" y listo.

Saludos