xbee模塊主要功能是實現無線數據通訊,利用xbee模塊分別與pcDuino和Arduino鏈接,經過串口讀寫數據,能夠輕鬆實現兩者之間的數據傳輸。在pcDuino端按下開關按鈕控制arduino端的LED燈亮,反之arduino端的開關則控制pcDuino端的LED燈。 git
Xbee模塊 oop
LED燈控制部分 ui
原理圖 spa
線路鏈接: code
一、經過T-board 鏈接pcDuino和xbee模塊,T-board上的電平開關必須打到5V blog
二、Arduino部分 圖片
注意:xbee的波特率設置爲9600 get
線路連好以後,編譯運行程序代碼。運行成功後,按下pcDuino這端的LED燈開關,紅色LED燈亮 it
按下arduino這端的LED燈開關,綠燈亮 編譯
兩個開關同時按下時
程序代碼:
Code for pcDuino:
#include <core.h> #include "Serial.h" #define led_pin 9 #define button_pin 10 unsigned char flag; void setup() { //Initialize serial and wait for port to open: pinMode(led_pin,OUTPUT); pinMode(button_pin,INPUT); int rate = 9600; Serial.begin(rate); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } void loop() { if (Serial.available() > 0) { char receive = Serial.read(); if(receive=='a') flag++; if( (flag%2) ) digitalWrite(led_pin,HIGH); //LED off else digitalWrite(led_pin,LOW); //LED on } if(digitalRead(button_pin)==LOW) { delay(10); if(digitalRead(button_pin)==LOW) Serial.print('b'); delay(200); } }
Code for arduino:
#include <SoftwareSerial.h> #define RxD 11 #define TxD 12 #define led_pin 9 #define button_pin 10 unsigned char flag; SoftwareSerial mySerial(RxD,TxD); void setup() { pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); pinMode(led_pin,OUTPUT); pinMode(button_pin,INPUT); mySerial.begin(9600); // the Bee baud rate } void loop() { if(digitalRead(button_pin)==LOW) { delay(10); if(digitalRead(button_pin)==LOW) mySerial.print('a'); delay(200); } if(mySerial.available()) { char RX = mySerial.read(); if(RX=='b') flag++; if(flag%2) digitalWrite(led_pin,HIGH); else digitalWrite(led_pin,LOW); } }