Comunicazione seriale

ok, ho provato a fare qualche modifica....

if (Serial.available()>0 )
{
if(Serial.read() =='a')
{
delay(50);
a = Serial.read()-48;
b = Serial.read()-48;
c = Serial.read()-48;
d = Serial.read()-48;
delayTime = (a1000)+(b100)+(c10)+(d1);
Serial.println(a);
Serial.println(b);
Serial.println(c);
Serial.println(d);
Serial.println(delayTime);

}
else if (Serial.read() == 'b')
{
x = 1;
Serial.println(x);
}

in effetti la variabile delayTime viene cambiata ...ad esempio se scrivo a0030 allora delayTime = 30, il problema arriva con il comando b... x non diventa 1 e non stampa nemmeno il suo valore...(questo accade anche togliendo l'esle)...
Giusto per informazione sto facendo un progetto in cui cambio orientamento e velocità di un motore passo passo, il delayTime è la velocità del motore ( tempo tra un passo[scatto] e l'altro) e la x mi decide la rotazione [x =0 fermo, x =1 orario, x = 2 antior]...come posso risolvere ?