envio de datos de C# a Arduino

Hola, necesito de su ayuda!!!...estoy intentando enviar los datos desde C# a arduino pero no lo consigo, intento enviar un float que tiene valores entre 0 a 0.5 y para generar pruebas cuando el valor sea mayor a 0.3 encender un led y cuando sea menor apagarlo, pero lo unico que hace es prender el led a penas genero la comunicacion y no se paga nunca...Ayuda!!!

Este es el codigo de arduino

int val;
float xVal;

void setup(){
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}
void loop(){
  if(Serial.available() > 1){
    val = Serial.read();
    if(val=='s'){
      xVal=Serial.read();
      Serial.print(xVal);
      if(xVal > 0.3){
        digitalWrite(13, HIGH);
      }else{
        digitalWrite(13, LOW);
      }
      delay(500);
    }
  }
}

Este el parte de C# solo la comunicacion

Joint manoD = esqueleto.Joints[JointType.HandRight];
                    Joint codoD = esqueleto.Joints[JointType.ElbowRight];
                    SkeletonPoint posicionMano = manoD.Position;
                    float angX = posicionMano.X;
                    string a = angX.ToString();
                    port.Write("s");
                    port.Write(a);
                    mensaje = string.Format("X{0}",posicionMano.X);

en la parte de mensaje muetro el valor de posicionMano.X que es el float que intento enviar y en pantalla me muestra bien los valores pero arduino no los lee bien :S

Si haces un programa básico en C# que envie datos por el puerto Serie no vas a tener problemas para que Arduino lo lea.
Debe haber 100's de ejemplos que no requieren de ayuda alguna. Hay que quemarse las neuronas un poco.
Me parece.

2 segundos de Google Interfacing your arduino with a C# program

Aquí hice un ejemplo y descargable.

http://forum.arduino.cc/index.php?topic=265971.msg1879489#msg1879489

Saludo.

Buen trabajo!!