接続の送信をシールドするためのXbeeシールドは正しく受信されません

セットアップ: ウノ2XArduino 2x XBees S1 2xスパークフンxbeeシールド。

私の最初のarduinoはフォトレジスタから値を読み取り、その値を2番目のarduinoに送ります。 私はarduinoが値を送信していることを知っています。なぜなら、2番目のxbeeをコンピュータに直接接続してシリアルモニタを開いたときに、正しい値がシリアルモニタに表示されたからです。しかし、問題は、私はsparkfunシールドとarduinoに2番目のXbeeを添付するときに私は繰り返し間違った値を取得します。

誰かが私が間違っていることを教えてもらえますか? 私はプロジェクトを強化する前に正しい値を得るためにこれをやっています。

送信者スケッチ

#include  
#include 
#include 
int photocellPin = A0;    //the cell and 10K pulldown are connected to a0

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int photocellReading;    //the analog reading from the analog resistor divider
 SoftwareSerial XBee(2,3);
void setup(void) {

  Serial.begin(9600);
  XBee.begin(9600); 
  lcd.begin(16, 2);
 //Print a message to the LCD.
  lcd.print("Wireless LightDimmer");  

}
 void loop(void) {
  photocellReading = analogRead(photocellPin);  
  lcd.setCursor(0, 1);
  lcd.print("Photocell= ");
  lcd.setCursor(11, 2); 
  lcd.print(photocellReading);
  //Serial.println(photocellReading);
  lcd.setCursor(20, 0);
  lcd.print("Measured in lux"); 

  delay (500);
  lcd.setCursor(20, 3);
  lcd.print(" ");
//Serial.print("Analog reading = ");
//Serial.print(photocellReading);   
   photocellReading = 1023 - photocellReading;
 unsigned int LEDbrightness = map(photocellReading, 0, 1023, 0, 255);
   Serial.println( LEDbrightness);
    XBee.print(LEDbrightness);

  delay(1000);
}

スケッチを受け取る

#include 
#include 

SoftwareSerial XBee(2,3);

void setup() {
//Begin Serial communication
 Serial.begin(9600);
 }
void loop(){
 while ( Serial.available() > 0) {
 unsigned int num =  Serial.read();
 Serial.println(num);
 delay(2000);
 }
}

enter image description here enter image description here

0
フル(1024)ADC値を得るVrefを調べます。
追加された 著者 vharron,

1 答え

xbeeピンは約1.2Vしか読み取ることができず、256ビットを表示します。光抵抗器は、xbeeピンが処理できる以上のものを与える可能性があるので、光抵抗器がどれくらい出力しているかを確認する必要があります。

0
追加された