Problema recepcion datos Xbee series 2

Buenas tardes, tengo un problema con mis Xbee, los acabo de programar, uno como coordinador y otro como End Device, Estoy enviado un entero que recupero desde un sensor de temperatura, hasta ahi todo bien, pero el que recibe la informacion en el puerto serial conectado a arduino me muestra numeros que no corresponden, ejemplo -12, -58, 50, 104 etc (Tambien probe con palabras y me muestra igual esos numeros), pero si lo conecto al Xbee Explorer USB y me voy al terminal del X-CTU me entrega correcta la informacion. Que puede ser? conversion de datos? no lo se, si a alguien le ocurrio este problema que me ayude por favor.

Gracias

Hola a todos, estimado amigo, leete este hilo y casi seguro que se solucione el problema que tienes. Un saludo http://arduino.cc/forum/index.php/topic,50658.0.html

Gracias revisare y luego te cuento como me fue.
Gracias por la respuesta ojala sea ese mi problema

Probe los ejemplos pero no logro recibir el dato correcto. Hay dos ejemplos en ese link, cual de los dos es menos complicado?

Hola,

Si usas Serial.print(xxx), ten en cuenta que envias código ASCII. Ejemplo: temp=5; Serial.print(temp);

En el otro lado recibes un 53 (ASCII del 5). Si el número tiene dos dígitos, pues recibiras dos carácteres ASCII, etc.

¿Te puede estar pasando ésto? De todas formas, con la información que dás, es un poco dificil que alguien te ayude, ya que no hay código ni nada...

Gracias Igor por la pronta respuesta, quiero comenzar desde cero en este tema por lo que he reseteado mis arduinos y he puesto lineas basicas para entender el tema. En el que envia los datos tengo esto:

int temp = 5;
void setup() {
  Serial.begin(9600);

}

void loop() {
  Serial.print(temp);
  delay(2000);
}

Y en el que recibo uso estas simples lineas

int temp = 0;
void setup() {
  Serial.begin(9600);

}

void loop() {
  temp = Serial.read();
  Serial.println(temp);
  delay(2000);
  
}

Y claro me imprime el valor 53, pero al usar el Serial.println(byte(temp)); lo transforma a 5. Ahora quiero usar dos numeros, que sera lo mas correcto? o lo mas standard para poder recibir sin problemas los valores?

Gracias

Como quieres temperatura, que va a ser un número que cabe en un byte, lo que puedes hacer es mandar el byte, en vez del número convertido a ASCII.

Serial.print(temp,BYTE)

http://www.arduino.cc/en/Serial/Print

;)

Hice lo que me dijiste, ahora envío con el Serial.print(temp,BYTE) y recibo con Serial.print(temp) en el otro Xbee y funciona perfecto. Ahora la pregunta del millon, cuando tenga temperaturas bajo cero me pasara lo mismo?

Te aconsejo que te estudies un poco como va el tema de los tipos de datos (variables) =>http://arduino.cc/es/Reference/HomePage Luego mira como convertir un ascii a número y viceversa, porque una vez entendido, te resultará sencillo pensar algo para tu aplicación. Es sólo pensar si recibo "1" "2" "3", como lo paso a 123. Por cierto, esto ha salido muchísimo en el foro y tiene que haber muchos ejemplos resueltos... Ejemplo=> http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1284131061

Saludos

Igor R.

Dhanny,

lo lógico sería utilizar una resolúción para la transmisión igual que la del sensor de temperatura, en su defecto, si utilizas un sensor analógico la del puerto del Arduino, 10 bits.

Si estás utilizando un sensor I2C de 8 bits un byte es la unidad de transmisión adecuada (entiendo que estás transmitiendo los mV de la entrada) si utilizas un sensor analógico, o un I2C de 10 bits mejor transmite dos bytes.

http://www.zigbe.net/

Gracias por las respuestas, fueron de mucha ayuda, Zigbe31416 el sensor que uso es este http://www.olimex.cl/pdf/INEX/ZX-Thermometer.pdf creo que convierte el voltaje a 10bit. Mi ultima pregunta por que cuando abro el terminal me aparecen siempre dos lecturas -1 y despues 254, despues de esto comienza a darme la temperatura normal.

Gracias nuevamente

http://www.arduino.cc/es/Serial/Read - Sección 'Devuelve'

Chiva, muchas gracias, ya he solucionado ese tema. Amigos un poco de paciencia ya que soy un novato en Arduino y Xbee. Gracias