Robofun 機器人論壇

標題: mega 與xbee與多通道傳輸的問題(結束 [打印本頁]

作者: a125125460    時間: 2012-10-9 16:38
標題: mega 與xbee與多通道傳輸的問題(結束
本帖最後由 a125125460 於 2012-10-10 23:13 編輯

可能我的問法讓很多人困惱要怎麼回我....於是我還是講詳細一點好了
希望各位能給點意見或是想法,


實驗目的:利用x,y軸搖桿(通過xbee傳)去控制兩個不同的電燈泡(同時**)


我的預想是利用mega提供的四組通道其中的兩組去控制,

以下是我傻傻的程式發送端:

int potPinX=3;
int sensorValueX,m,n;
int potPinY=4;
int sensorValueY;
void setup(){
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{  
int sensorValueX=analogRead(potPinX);
m=sensorValueX/4;
int sensorValueY=analogRead(potPinY);
n=sensorValueY/4;
Serial.print(m,BYTE);
Serial1.print(n,BYTE);
delay(100);

}

接收端:


#include<stdlib.h>
byte sensorValueX;
byte sensorValueY;
int m,n;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
  pinMode (9,OUTPUT);
  pinMode (10,OUTPUT);
}
void loop() {  
  if (Serial.available() > 0){
sensorValueX=Serial1.read();
  m = int(sensorValueX);  
    Serial.println( m);
sensorValueX=Serial.read();
  n = int(sensorValueY);  
    Serial.println(n);
   
  }
delay(100);
}

很明顯的...我失敗了,

顯示出來的,只有原本Serial().print 的值,

至於Serial1().print 的~卻是0,

雖然我知道是因為,xbee並沒有提供給serial1()的rx與tx

但是我真的不知道因該怎麼做了

我真的想知道,要如何同時傳多個訊號,並且能夠接收到並且不會搞混的方法

拜託了~各位大大

作者: vegewell    時間: 2012-10-10 14:13
回復 1# a125125460


你可以一個mega 連接兩個xbee,
也就是兩個發送端對一個接收端,
看不出來不能這樣做,
不過我現在手上沒這玩意幫你實驗,
---
其實一個xbee ,delay()設定短一點,跟同時差不多.
作者: a125125460    時間: 2012-10-10 21:08
本帖最後由 a125125460 於 2012-10-10 21:36 編輯

感謝回復,
我已經有想法了~
測試中~
作者: a125125460    時間: 2012-10-10 22:54
好了.....終於搞定了能夠同時接受訊號
也不會互相干擾到(xbee設定上有動手腳
以下是程式碼:
y的發送端:
int potPinY=3;
int sensorValueY;
void setup(){
Serial.begin(9600);
}


void loop()
{  
int sensorValueY=analogRead(potPinY);
Serial.print(sensorValueY/4,BYTE);


delay(500);


}


x的發送端:


int potPinX=3;
int sensorValueX;
void setup(){
Serial.begin(9600);
}


void loop()
{  
int sensorValueX=analogRead(potPinX);
Serial.print(sensorValueX/4,BYTE);


delay(500);


}




接收端:




#include<stdlib.h>
byte sensorValueX;
byte sensorValueY;
int m,n;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
  pinMode (9,OUTPUT);
  pinMode (10,OUTPUT);
}
void loop() {  
  if (Serial.available() > 0){
sensorValueX=Serial.read();
  m = int(sensorValueX);  
    Serial.println(m);
  }
if (Serial1.available() > 0){
sensorValueY=Serial1.read();
n = int(sensorValueY);  
Serial.println(n);
  }
delay(500);
}



以上程式都經驗累積的結果....爬了一推該死的英文文章


以下是圖








當然...這只是初步....
接下來的發展與創意才是重點~~

作者: sing6625    時間: 2013-7-29 15:23
回復 4# a125125460


   你好,我想請問,我照著你的方法做可是傳出來的值好像不對也。。。我不懂少了什麼。。。#include<stdlib.h>這個library裡面有嗎?




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2