sea side she side

写真と山、資格が好きなアラフォーエンジニアのブログ

XBeeでLEDチカ

      2019/01/14

XBee WiFiがどうも壊れたっぽい感じがする中、XBeeも使ってみたくなって買ってみました。

左下がXBee WiFiで右下がXBee S2(XB24-ZB)、上のはSWITCHSCIENCEさんのXBeeピッチ変換基板とソケットのセットです。LEDとかは面倒なのでつけずに使ってます。

でさっそくXbee経由でLEDチカやってみました。

まずArduino側に接続するXbeeの設定。

X-CTUで
Function Set: ZIGBEE COORDINATOR AT
PAN ID: お好きな数字(相手とそろえる)
DH: 相手側XBeeのアドレス1行目
DL: 相手側XBeeのアドレス2行目
と最低限の設定します。

XBeeのアドレスは裏面の書いてあります。revの下2行です。

次はPCと接続するXbeeの設定。

X-CTUで
Function Set: ZIGBEE ROURTER AT
PAN ID: お好きな数字(相手とそろえる)
DH: 相手側XBeeのアドレス1行目
DL: 相手側XBeeのアドレス2行目
と同様の設定をします。

設定が終わったらArduinoにスケッチをアップロードします。アップロードするときにはXBeeは抜いておきます。

int val;

void setup(){
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop(){
  if(Serial.available()>0){
    val=Serial.read();
  }
  if(val=='H'){
    digitalWrite(13, HIGH);
  } else {
    digitalWrite(13, LOW);
  }
}

シリアルを受信して、「H」だったら13番ピンにつないだLEDを点灯、それ以外だったらLEDを消灯するだけの簡単なものです。

PCと接続する方のXBeeはUSBtoSerialモジュールと接続します。ただしXBeeは3.3VなのでTXDとDINは抵抗で分圧してから接続します。

Serial   XBee
3.3V(17) - Vcc(1)
RTD(5)  - Dout(2)
TXD(1)  - Din(3)  ※要分圧
GND(25) - GND(10)

これで、PC-USBtoSerial-XBee <-> XBee - Arduinoの接続準備が整いました。

PC側はTeraTermを起動させてSerial Portを選びボーレート9600で接続。

あれ、おかしい。動かない。あれやこれや調べているうちにもしやと思ったら…。

XBeeを乗せるWIRELESS PROTO SHIELDのスイッチでした。シルクにはUSBとMICROと記載があるのですが、microSDが刺さるものもあってSD使うときにって意味だと勝手に予想して思い込んでいましたが、まったく違いました。

SELEIAL SELECTスイッチによってXBeeの有線接続先を切り替えられます。
スイッチをMICRO側にすると、Arduino⇔XBeeの接続になります。ただしArduinoからのデータは、USBシリアルによってPCにも送信されるのでご注意ください。
スイッチをUSB側にすると、PC(USBシリアル経由)⇔XBeeの接続になります。このモードを使う場合、Arduinoには事前に下記の「空スケッチ」を書き込んで下さい。

SWITCHSCIENCEさんより引用

ということでスイッチ切り替え、TeraTermにL、Hを入力するとLEDが点滅するようになりました。

 - Make , , , ,