【xBee】xBeeを使ってArduino二台を無線シリアル通信
前回、xBeeの設定方法を紹介しました。
この記事では、xBeeを使ってArduinoのシリアル通信を無線化してみたいと思います。
(有線のシリアル通信の方法はこちら)
shizenkarasuzon.hatenablog.com
1.用意するもの
・Arduino 2台
・xBee 2台
・配線用コード 数本
ハードウェア
下のような回路を2つ組んでください
(Arduinoは電源電圧が5Vで、xBeeは3.3Vで動いていますが、ロジックレベル変換ICを使わなくても一応上の回路で動きました)
くみ上げると、このようになります。
プログラム:
送信側と受信側でプログラムを二つ用意します。ハードウェアは両方同じなので、どっちにどのプログラムを書き込んでも構いません。
送信側は、13ピンについているLEDのON/OFF命令を送信します。受信機はそのON/OFF命令に従って、受信機側ArduinoのLEDを点灯・消灯させます。
もし、二つのArduinoのLEDが同時に点滅を繰り返していれば、シリアル通信ができている証拠です。
送信側:
int LED = 13; int count = 0; void setup(){ Serial.begin(9600); pinMode(LED, OUTPUT); } void loop(){ count++; Serial.write(count); if((count % 2) == 1){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } delay(1000); }
受信側:
int LED = 13; void setup(){ Serial.begin(9600); pinMode(LED, OUTPUT); } void loop(){ while(Serial.available()){ byte inChar = (byte)Serial.read(); if((inChar % 2) == 1){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } delay(10); } }