[Problema] comunicaciones XBEE

Hola.

Necesito saber en mi código ¿por qué cuándo envío datos analógicos entre dos arduinos no responde como se esperaría?
Probado con dos arduinos uno conectados por TX RX y también, con dos uno arduinos UNO con sus correspondientes XBEE.
El emisor tiene dos pulsadores digitales y un potenciómetro analógico (pin 2 y pin 3 digital pulsador – pin A0 analógico potenciómetro).
El receptor tiene dos leds para comprobar que responden a los pulsadores del emisor (pin 7 digital led // pin 12 digital led).

Si solo actuamos sobre los pulsadores, los leds responden correctamente.
Pero al actuar sobre el potenciómetro, no se que ocurre pero no responde al código programado al 100% como inicialmente empezamos, ya que después de actuar sobre el potenciómetro los leds no se encienden cuando activamos los pulsadores del emisor. También ocurre que al actuar sobre el potenciómetro los leds parpadean secuencialmente.
Y curiosamente en el monitor del receptor todo se visualiza correctamente.

##################################################################################################

CÓDIGO del emisor

int valorAnalogicoA0 = 0;
int valorAnalogicoA1 = 0;

void setup()
{
Serial.begin(19200); // declaramos la velocidad del puerto

pinMode(2, INPUT);
pinMode(3, INPUT);

}

void loop() // entramos en el bucle
{
valorAnalogicoA0 = analogRead(0);
valorAnalogicoA1 = analogRead(1);
analogWrite(6, valorAnalogicoA0/4);
Serial.print(digitalRead(2)); // primer dato enviado (leemos el valor de la entrada 2)
Serial.print(','); // separamos por una coma
Serial.print(digitalRead(3)); // tercer dato enviado (leemos el valor de la entrada 3)
Serial.print(','); // separamos por una coma
Serial.println(valorAnalogicoA0/4);
delay(100); // retardo de 10 msegundos
}

########################################################################

CÓDIGO del receptor

#include <Servo.h>

int count = 0;
int a = 0, b = 0, c = 0, d = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
int LEDpin7 = 7;
int LEDpin12 = 12;
int valorservo = 0;
Servo myservo; // crea un objeto tipo servo para controlar el servo

void setup()
{
Serial.begin(19200); // declaramos la velocidad del puerto
pinMode(LEDpin7, OUTPUT);
pinMode(LEDpin12, OUTPUT);
myservo.attach(8); // En EduBasica el servo se conecta al pin 8

}

void loop() // entramos en el bucle
{
if (Serial.available() > 0)
{
if (count < 7) // si el dato leido es menor que 7, saca por pantalla e incrementa
{

count++; // incrementa el contador
//Serial.print(count);

switch (count) // analiza cada valor enviado por el puerto serie
{
case 1: // contador a 1 sera el primer dato
a = Serial.read(); // lee ese dato y lo asigna a a
break;

case 2: // contador a 2 sera el segundo dato
b = Serial.read(); // lee ese dato y lo asigna a b (es una ',')
break;

case 3: // contador a 3 sera el tercer dato
c = Serial.read(); // lee ese dato y lo asigna a c
break;

case 4: // contador a 2 sera el segundo dato
d = Serial.read(); // lee ese dato y lo asigna a d (es una ',')
break;

case 5: // contador a 2 sera el segundo dato
e1 = Serial.read(); // lee ese dato y lo asigna a e1 (bit analogico 2)
break;

case 6: // contador a 2 sera el segundo dato
e2 = Serial.read(); // lee ese dato y lo asigna a e2 (bit analogico 1)
break;

case 7: // contador a 2 sera el segundo dato
e3 = Serial.read(); // lee ese dato y lo asigna a e3 (bit analogico 0)
break;
}

if (a == '1') // analiza si a es 1
{
digitalWrite(LEDpin7, HIGH); // activa el led salida 7
}
else digitalWrite(LEDpin7, LOW); // en caso contrario lo desactiva
Serial.print (char(a)); // saca por pantalla el valor de a en ASCII

Serial.print (char(b)); // saca por pantalla ","

if (c == '1') // analiza si c es 1
{
digitalWrite(LEDpin12, HIGH); // activa el led salida 12
}
else digitalWrite(LEDpin12, LOW); // en caso contrario lo desactiva
Serial.print (char(c)); // saca por pantalla el valor de c en ASCII

Serial.print (char(d)); // saca por pantalla ","

Serial.print (char(e1)); // saca por pantalla bit 2 analogico

Serial.print (char(e2)); // saca por pantalla bit 1 analogico

Serial.print (char(e3)); // saca por pantalla bit 0 analogico

valorservo = char(e1)+char(e2)+char(e3);
myservo.write(valorservo);

}
else // en caso contrario salto de linea y comienza la cuenta
{
Serial.println(""); // salta a la siguiente linea en pantalla
count = 0; // pone el contador a 0
}

}
}

#############################################################################################

Donde pones
if (a == '1')
creo que deberías poner
if (a == 1)
no estás leyendo datos de tipo char del puerto serie, sino bits y bytes.........ya que estás enviando las lecturas digitales y anañlógicas.
Salu2.

Gracias por tu respuesta pero eso ya lo he probado y hace lo mismo.

Viendo un poco más a fondo el código del receptor veo que usas el mismo puerto serie para el XBee y para el monitor serial..........es conveniente que no uses el mismo puerto para las dos cosas, puedes crear un puerto en cualquier otra pareja de pines con la librería software serial y usar ese puerto hecho por software para el XBee ya que la conexión al pc de la placa de aruduino no la puedes cambiar y a la fuerza será la de los pines 0 y 1.
Salu2.

Perdona por tardar en responder, tenías toda la razón, así si funciona.

Mil gracias y saludos.