serielle Schnittstelle und Terminal

Das Verhalten ist völlig korrekt. Die serielle Schnittstelle weiß ja nicht ob und wieviele Zeichen kommen. Dein Programm ruft vermutlich die Funktion sehr schnell hintereinander auf. Sobald das erste Zeichen da ist wird dieses erkannt und ausgegeben. Deshalb ist der nächste Aufruf etwas später dran und deshalb sind dann vermutlich die nächsten 3 Zeichen aufgelaufen.

Darauf musst Du Dich einstellen. Schau Dir mal an wie andere das lösen.

http://www.arduino.cc/playground/Code/Messenger
http://biot.com/arsh/

Gruß,
Udo