اول راه حل دومتون رو میگم به جای استفاده از Delay از تابع millis استفاده کن
https://www.arduino.cc/en/Reference/Millis


کدتون برای دریافت 3 بایت رو تا حالا اینجوری ندیده بودم
جالب بود
البته ورژن صحیح ترش برای 2 بایت این شکلیه :
کد:
while(Serial.available() < 2); //wait until there are two bytes in the bufferMAP = Serial.read() << 8 ;   //read MSB into MAPMAP += Serial.read();        //read LSB into MAP
من همیشه با حلقه for می نویسم