on the sender i have this:
void setup(){
Serial.begin(9600);
}
void loop() {
//val="<Hello Arduino!>";
Serial.write ("<Arduino!>"); //sends an "On" message
delay(1000);
}
and on the receiver i have this:
#define SOP '<'
#define EOP '>'
bool started = false;
bool ended = false;
char inData[80];
byte index;
void setup()
{
Serial.begin(9600);
// Other stuff...
}
void loop()
{
// Read all serial data available, as fast as possible
while(Serial.available() > 0)
{
char inChar = Serial.read();
if(inChar == SOP)
{
index = 0;
inData[index] = '\0';
started = true;
ended = false;
}
else if(inChar == EOP)
{
ended = true;
break;
}
else
{
if(index < 79)
{
inData[index] = inChar;
index++;
inData[index] = '\0';
}
}
}
// We are here either because all pending serial
// data has been read OR because an end of
// packet marker arrived. Which is it?
if(started && ended)
{
// The end of packet marker arrived. Process the packet
char ltr = inData[0];
inData[0] = '0';
int val = atoi(inData);
Serial.println(val);
// Reset for the next packet
started = false;
ended = false;
index = 0;
inData[index] = '\0';
}
}
But nothing appear in serial monitor of receiver, where is my mistake?my xbee comunication is Ok, i have tested with a last program and data is sending and receive is ok