Why doesn't Serial.read() read multiple character?
if (Serial.available() &gt;0) {


This is like saying "I won't go into that room until there is at least one dog in there".  Someone tells you there is a dog there. You go into the room and say "Hey, why aren't there two dogs there?".

If you want to read two bytes one approach is to wait until they are available:

  if (Serial.available() &gt;= 2) {