본문 바로가기
아두이노_프로세싱/아두이노

아두이노간 xbee통신

by 돌돌쌤 2012. 6. 27.

아두이노간 xbee통신

프로그램 버전 : Arduino - 1.0

아두이노끼리 유선은 물론

xbee를 통해 무선통신이 가능하다.

한쪽 아두이노에서 센서 또는 스위치 등으로 신호를 받고

그신호를 다른 아두이노에서 받아 처리하여 출력하는 형식이다.

간단하게

우노에서 스위치를 누르면 숫자 5를 xbee를 통해 날리고

메가에서 숫자5를 받아 출력하는 식으로 구성해보면

우노의 배선

스위치 입력은 11번에 연결하고

xbee 쉴드 장착



우노의 스케치 소스

-------------------------------------------------------------------------------

#include <SoftwareSerial.h>
SoftwareSerial xbeeS(2,3);   //xbee 통신을 위해 구성
void setup(){
  xbeeS.begin(9600);     //xbee 통신 시작
  pinMode(11,INPUT);    //11번을 스위치 입력
  pinMode(13,OUTPUT);
}
void loop(){
  if(digitalRead(11)==LOW){
    digitalWrite(13,HIGH);
    xbeeS.write(5);      //스위치 입력이 있으면 xbee에 5를 보냄
  }
  digitalWrite(13,LOW);
}

------------------------------------------------------------------------------------

신호를 받을 메가의 배선



메가에서의 스케치 소스

------------------------------------------------------------------------------------

int a;
void setup(){
  Serial.begin(9600);     //시리얼 통신 0번 pc와 통신
  Serial3.begin(9600);   //메가는 하드웨어적으로 시리얼 통신을 0~3번까지 제공하므로

//소프트웨어적으로 시리얼 통신을 구성할 필요 없다.

                                  // 통신할 통신장치를 1~3번에 연결하고 사용하면 된다.

                                  // SoftwareSerial을 구성하면 통신이 잘 안됨???
  pinMode(13,OUTPUT);
}
void loop(){
  if(Serial3.available()>0){
    a = Serial3.read();          //xbee의 값을 저장
    if(a==5){
       digitalWrite(13,HIGH);
       Serial.println(a);          // 값을 시리얼 모니터에 출력
       }
  }
  digitalWrite(13,LOW);
}

---------------------------------------------------------------------------------------