Сам же отвечаю на свой вопрос.Поборол ХВее и для всех выкладываю проги и описание.Может поможет кому...
Передача команд по XBEE.
Имеем:
1.Freeduino 2009 2 шт.
2.XBee 2 шт.
3.XBee shield 2 шт.
4.Кабель УСБ 1 шт.
5.Питание для Фридуины в виде 8 батареек АА.
6.Светодиоды разных цветов 2шт. + токоограничивающие резисторы к ним.
7.Провода.
Про настройку ХВЕЕ очень хорошо рассказано тут:
http://wiki.amperka.ru/%D0%B2%D0%B8%D0% … 0%B7%D1%8C
Там же много хороших уроков.
Логика такова-одна фридуина подключена к компу и читает значения из СОМ порта компа.Другая питается от батареек и обособлена от компа.Команды между Фридуинами передаются по ХВее.
Если ввести 1, то загорится светодиод 1 на удалённой (питающейся от батареек) плате.Если нажать 0 то загорится светодиод 2 на удалённой плате.Если ввести любой символ, отличный от 0 и 1, то оба светодиода моргнут 4 раза.
Программы.
Плата передатчик:
-----------------------------------------------------------------------------------------
void setup()
{
Serial.begin(9600);//Создаём подключение на скорости 9600
}
void loop()
{
while (Serial.available() == 0);//ждём сигнала с порта
int val = Serial.read();//создаем переменную типа int в которую
// пихаем полученное из порта значение
Serial.print(val,DEC); //пуляем переменную как десятичное
//число в порт
Serial.flush();//Очищает очередь данных.
}
------------------------------------------------------------------------------------------
Плата приёмник с диодами:
------------------------------------------------------------------------------------------
int warning = 7;// светодиод "аварийный" на порте 7
int normal = 5;// светодиод "нормальный" на порте 5
void setup()
{
Serial.begin(9600);//стартуем подключение на скоросте 9600
pinMode (warning, OUTPUT);// порт 7 как выход
pinMode (normal, OUTPUT);// порт 5 как выход
}
void loop ()
{
while (Serial.available() == 0);//ждём сигнала от первой дуины
int var = Serial.read() - '0';//читаем значение как простое число(десятичное)
if (var == 1)//если это 1 то...
{
digitalWrite(warning,HIGH); // ...зажигаем "аварийный" диод
digitalWrite(normal,LOW);// тушим "нормальный" диод
}
else if (var == 0) // если это 0 то...
{
digitalWrite(normal,HIGH);//...зажигаем "нормальный" диод
digitalWrite(warning,LOW);// тушим "аварийный" диод
}
else // ну а если ни то, ни другое, а что либо ещё (например 2)
{
digitalWrite(warning,HIGH);//зажигаем "аварийный" диод
digitalWrite(normal,HIGH);//зажигаем "нормальный" диод
delay(200);// пауза
digitalWrite(warning,LOW);//тушим "аварийный" диод
digitalWrite(normal,LOW);//тушим "нормальный" диод
delay(200);// пауза
digitalWrite(warning,HIGH);
digitalWrite(normal,HIGH);
delay(200);
digitalWrite(warning,LOW);
digitalWrite(normal,LOW);
delay(200);
digitalWrite(warning,HIGH);
digitalWrite(normal,HIGH);
delay(200);
digitalWrite(warning,LOW);
digitalWrite(normal,LOW);
delay(200);
digitalWrite(warning,HIGH);
digitalWrite(normal,HIGH);
delay(200);
digitalWrite(warning,LOW);
digitalWrite(normal,LOW);
delay(200);
Serial.flush();//Очищает очередь данных
}
}
Проги не оптимизировал.Может показаться по детски,но меня пока устраивает.