Creo que el problema esta en la forma en la que envías y recibes datos.
Tienes que crearte un mini protocolo con un carácter de inicio y fin
eg:
Desde el emisor:
Si quieres que el buzzer suene por 2 segundos debes enviar el comando para el buzzer "B" el comando de high "1" y el tiempo "2" quedando la cadena en B12
Si quieres un motor tendrás que enviar el comando para el motor "M" luego quizás el valor como 255 quedando la cadena en M255
Tu protocolo tiene que ser siempre de la misma longitud:
B120 //anado un 0 para hacerlo de 4 caracteres
M255 //no hay cambios
Para hacerlo aun mas estable añades un carácter de inicio "<" y fin ">"
Tu protocolo de envió quedaría "" donde X es una letra y N un numero.
En el receptor:
Tienes que desgranar el protocolo
si recibo "<" y recibo "X " y recibo "N" y "N" y "N" y ">" almaceno XNNN en un array luego en función de este array mandas ordenes:
if array[0] = B y array[1]= 1
{
pinbuzeer = high;
delay(array[2]);
}
Esa es la idea general.
Trabaja en ello y si quieres y necesitas mas ayuda el fin de semana que viene tendré mas tiempo que este.(hacemos un hackaton virtual)