XBeeをデジタル(アナログも可)入力読み取りデバイスおよび、無線送信デバイスとして 使用してもう一つのXBeeにデータを送信するためのスケッチです。 今回はXBee(送信機)によりデジタルで1Chの情報(0か1か)を読み取り、送信し、XBee(受信機)により 受信し、その情報をArduino(ATmega328)で読み取ります。


/*
Read Digital Input
Receiver= ZigBee Coordinator API mode ver 218C
Sender= ZigBee Router AT mode ver 228C
*/

int DI=0; //DIとしてデジタル入力値を扱う(integer形式)

void setup() {
pinMode(12, OUTPUT); //受信してHIGHの情報を読み取った時13番ピンをHIGHとする。
pinMode(13, OUTPUT); //受信チェック用
Serial.begin(9600); //Serial通信の設定
}

void loop() {
if(Serial.available()==0){DI=0;} //Serialに情報が来ていなければ DI=0とする
if(Serial.available() > 20){//0-21バイトを受信
if(Serial.read()==0x7E){ //スタートバイトを見つけたら
digitalWrite(13,HIGH); delay(10); digitalWrite(13,LOW);//確認用のLED点灯
for (int i=1; i < 20; i++){byte discard=Serial.read();}
//1-19バイトまでを読み飛ばす(0 byteはすでに読み取り済み)
DI=Serial.read(); //20バイト目をDIに読み取る
Serial.print(DI); //確認用にSerialにデータを送る。
for (int i=21; i <22; i++){byte discard=Serial.read();} // Serial.read()の余りのデータを消去
}
}
if(DI==1){digitalWrite(12,HIGH);delay(1000);}// DI=1であれば12端子をHIGHとする。1000msecそのまま
if(DI==0){digitalWrite(12,LOW);}//DI=0であれば12端子をLOWとする。
}

戸田よろず研究所トップページへ

ここで公開するアイデア/装置は安全性を保障しておりません。 用途に応じた設計を行い、十分な安全検査を行ってからご利用ください。 本サイトの情報の営利目的での利用はご遠慮ください。 本サイトの内容の無断転載を禁じます。© 2012 TYK