arduino - rs232

certo perchè tu fai

if(Serial.available()){

quindi se la seriale non ha caratteri salti la lettura. Invece tu devi metterti in attesa finchè non c'è qualcosa da scrivere;

while(Serial.available()==0){
  //aspetta
}

in pratica blecca il programma fiunchè non c'è qualcosa sulla seriale. non è detto che sia abbastanza per essere un float o che sia un valore valido, però