Control de servo e interfaz

Pues tengo un problema y no se a que es debido,primero creo la instancia en la interfaz (hecha en java)
try {
settings = new Parameters();
} catch (Exception ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE, null, ex);
}

settings.setPort(“COM7”);
settings.setBaudRate(“9600”);
settings.setByteSize(“8”);
settings.setStopBits(“1”);
settings.setParity(“N”);
//Instance COM7.

try {
com7 = new Com(settings);
Thread.sleep(2000);
com7.sendSingleData(Integer.parseInt(pasos.getText()));

// Settings parameters COM·.
} catch (Exception ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE, null, ex);
}
try {
com7.close();
} catch (Exception ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE, null, ex);
}
}

Donde pasos es un numero,luego en arduino tengo puesto :

#include <Servo.h>
#undef int
#undef abs
#undef double
#undef float
#undef round

Servo servo1;
//definer que utilizamos un display de 2 renglones

int entrada = 0;

void setup() {
servo1.attach(9);
// initialize both serial ports:
Serial.begin(9600);

}

void loop() {

if (Serial.available()) {

entrada = Serial.read();

if(entrada ==0){

servo1.write(180);
delay(20);
servo1.write(0);
delay(20);
servo1.write(90);
delay(20);
servo1.write(0);
delay(20);

}
else
{

servo1.write(0);
delay(20);

}

Pero el motor lo unico que me hace es moverse un poco hacia delante y luego volver a su posicion meta el numero que le meta :S
Alguna idea de a que puede ser debido?
gracias

Comprueba que reciba correctamente los números, es decir que haz que se encienda un led si lee un 4 y le pasas un 4. En caso de que falle, ya sabes cual es el problema, mira el formato en que envías el valor
Salu2

Despues de comprobarlo veo que solo me envia el 0 bien,con el 1 me llega un 6,con el 2 me llega el 24 .
No entiendo el porque, si envio los numeros en entero y los leo en entero :S