Practical Limits of Serial communications?

One problem

Val = Serial.read ();

You're not waiting for a char for be received.

Check out Serial.available()


Rob