SOLUCIONADO recibir datos seriales y compararlos

Compañeros estoy recibiendo datos de peso de una balanza electrónica al arduino, peroquiero que imprima solo cuando el peso es mayor a 100.50 kg, la cadena de datos que recibo antes de pasarla por mi arduino contiene unas cuantas letras ST.GS 80.00KG es por eso que se las he quitado para que guarde solo los numeros 80.00 , hasta alli va todo bien pero cuando hago la comparacion para ver si es mayor que 100.50 Kg se quedan plantados los datos o no imprime nada

//CONFIGURACION PARA EL DATO SERIE//
    float numero;
    String inString = "";
    float cadena;


//CONTADORES//
int conta=1; // Contador para el número de lecturas
int contaSd=0;//Contador para el timer SD


void setup() {
  
 Serial.begin(9600); 
 delay(10);


}

void loop() {

if(Serial.available()> 0){
  char inChar = Serial.read();
  if (isDigit(inChar) || inChar == '.') {
      inString += inChar;
    }
    if (inChar == '\n' ) { 
     cadena=(inString.toFloat());
     
     if(cadena >= 100.50){
      Serial.print("PESO,");
      Serial.println(cadena);
      inString = "";
     }
        
    }
}
}

Con un poco de suerte si el unico dato numerico de la cadena es el peso ,puedes probar con parseFloat():

//CONFIGURACION PARA EL DATO SERIE//
    float numero;



void setup() {

 Serial.begin(9600);
}

void loop() {

if(Serial.available()> 0){
  numero = Serial.parseFloat();
  Serial.println(numero);
}

todo bien pero el numero se queda colgado, es decir a medida que subo o bajo el peso, el dato no cambia y solo me sigue imprimiendo el primer dato que llega.

100.50
100.50
100.50
100.50
100.50
100.50

y sigue asi por mas que le ponga o quite peso.

Claro porque por ningún lado veo que la variable "numero" es reseteada. Deberías hacer un bucle que cada 500 milisegundos verifique si la variable "numero" ha cambiado y si lo ha hecho que lo imprima con serial.println....

Saludos

Compañero ya esta funcionando con este codigo, quizas habra otra pregunta mas tarde pues aun me falta mucho por hacer y quizas tenga problemas,muchas gracias por la ayuda.

//CONFIGURACION PARA EL DATO SERIE//
    float numero;



void setup() {

 Serial.begin(9600);
 delay(10);
}

void loop() {

if(Serial.available()> 0){
  numero = Serial.parseFloat();

  if(numero > 10.50){
  Serial.println(numero);
  return;
  }
}
}

park: todo bien pero el numero se queda colgado, es decir a medida que subo o bajo el peso, el dato no cambia y solo me sigue imprimiendo el primer dato que llega.

100.50 100.50 100.50 100.50 100.50 100.50

y sigue asi por mas que le ponga o quite peso.

Habria que ver con que frecuencia manda los datos la bascula ,y conque frecuencia los actualiza.podria ser que llene el buffer del serial con los mismos datos porque la bascula los envia muchas veces por segundo o bien que la bascula no actualiza el peso con mucha frecuencia.pero son suposiciones ,supongo que en el datasheet de la bascula pondra estos datos.

if(Serial.available()> 0){

Se ejecuta cuando hay datos en el buffer y el buffer por defecto no puede tener mas de 64 bytes asi que ahi tienes tu limite. El loop lo consulta en todo momento de modo que no creo que llegue muy rápido. Yo pondría algo como

float numero, anterior;
// lo que sigue

// el setup y el loop

  if (numero > 10.50 && numero != anterior){ // solo imprime numeros distintos y mayores a 10.50
     Serial.println(numero);
    //return; // return de donde?
     anterior = numero;
  }

compañeros la verdad funciona con los 2 codigos pues los dos estan correctos, de todas maneras aumente un flush para borrar el buffer, en realidad es por seguridad, no se si sera necesario.Ah el return, bueno estaba en el codigo anterior y se me ovido borrarlo. adjunto el codigo que funciona, pero el de surbyte y jose tambien funciona muy bien. Muchas gracias por la ayuda. Aun me falta agregar un teclado matricial, pero ya es otra pregunta para no restarle importancia a la pregunta.

const int pinled = 12;
const int boton = 11;

int botonestado = 0;
int estadoled = 0;

//CONFIGURACION PARA EL DATO SERIE//
   
float numero;

void setup() {
  
pinMode(pinled, OUTPUT);
pinMode(boton, INPUT);

 Serial.begin(9600);
 delay(10);

}

void loop() {

 botonestado = digitalRead(boton);

 if( botonestado ==HIGH){
  digitalWrite(pinled, HIGH);
  
 }

if(Serial.available()> 0){
  numero = Serial.parseFloat();

  if(numero > 10.50){
  digitalWrite(pinled, LOW);
  Serial.println(numero);
  Serial.flush();

  }
}


}