|

連接Arduino與XBee的方式主要是透過Arduino上的UART (RX/TX) 與 XBee上的DIN/ DOUT 相連接,從3Durino我們自製的Arduino + ADXL + XBee模組電路來看,Arduino上的RX就跟XBee的DOUT連接,反之TX就與DIN連接,注意!若這兩個連接的時候,Arduino就無法透過FTDI寫入資料。

連接好之後,我們以3Durino上的ADXL335感測器作為應用範例,首先看電路上面的ADXL335,我們已經連接了ADC4,5,6這三個腳位分別與adxl的X, Y, Z連接,因此我們可以透過Arduino讀取到ADXL的三個軸的感測數值。

SampleCode:
int potPin = 0; int ledPin = 13; int val = 0; int val2 =0; int val3 =0; int get; char getArr[10]; int index=0; char in; char c; int getint; boolean stateA = false; boolean stateB = false; boolean state = false; int x=0; int y=0; int z=0; int cot=10; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); digitalWrite(ledPin, HIGH); delay(1500); digitalWrite(ledPin, LOW); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } void loop() { cot -= 1; if(cot <= 0){ digitalWrite(ledPin, HIGH); cot = 10; }else{ digitalWrite(ledPin, LOW); } val = analogRead(0); val2 = analogRead(1); val3 = analogRead(2); x = analogRead(4); y = analogRead(5); z = analogRead(6); Serial.print(240,BYTE); //Start Serial.print(82,BYTE); //ID Serial.print(" x = "); if(x != 240 || x != 247 || x != 82){ Serial.print(x); }else{ Serial.print(0,BYTE); } Serial.print(" y = "); if(y != 240 || y != 247 || y != 82){ Serial.print(y); }else{ Serial.print(0,BYTE); } Serial.print(" z = "); if(z != 240 || z != 247 || z !=82 ){ Serial.print(z); }else{ Serial.print(0,BYTE); } Serial.println(247,BYTE); delay(1); }
[download code]
輸出的結果:

那要怎樣讀取到數值呢?可以利用FTDI USB to Serial的轉板連接上3Durino就可以看到上面的資料

以上的數值都確定之後,就可以把XBee裝上3Durino上面,接下來就可以在另外一顆Xbee上面看到跟FTDI上看到一樣的資料。

|