Соединение Xbee Shield to Shield отправляет, но не принимает правильно

Настройка: 2XАрдуино Уно 2x XBees S1 2 щита Sparkfun xbee.

Мой первый Arduino считывает значения с фоторезистора и отправляет значения на второй номер Arduino. Я точно знаю, что Arduino отправляет значения, потому что, когда я подключил второй xbee непосредственно к компьютеру и открыл последовательный монитор, на последовательном мониторе появились правильные значения. Но проблема в том, что когда я подключаю второй Xbee к его экрану SparkFun и Arduino, я получаю повторяющиеся неправильные значения.

Может кто-нибудь сказать мне, что я делаю неправильно? Я делаю это, чтобы убедиться, что получу правильные значения, прежде чем расширять проект.

Скетч отправителя

#include <LiquidCrystal.h> 
#include <SoftwareSerial.h>
#include <XBee.h>
int photocellPin = A0;     // ячейка и раскрывающийся список 10 КБ подключены к 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;     // аналоговое чтение с аналогового резисторного делителя
 SoftwareSerial XBee(2,3);
void setup(void) {

  Serial.begin(9600);
  XBee.begin(9600); 
  lcd.begin(16, 2);
  // Выводим сообщение на ЖК-дисплей.
  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("Аналоговое чтение = ");
 // Serial.print(photocellReading);
   photocellReading = 1023 - photocellReading;
 unsigned int LEDbrightness = map(photocellReading, 0, 1023, 0, 255);
   Serial.println( LEDbrightness);
    XBee.print(LEDbrightness);

  delay(1000);
}

получение скетча

#include <SoftwareSerial.h>
#include <XBee.h>

SoftwareSerial XBee(2,3);

void setup() {
 // Начинаем последовательную связь
 Serial.begin(9600);
 }
void loop(){
 while ( Serial.available() > 0) {
 unsigned int num =  Serial.read();
 Serial.println(num);
 delay(2000);
 }
}

, 👍0

Обсуждение

Проверьте, получает ли Vref полное (1024) значение АЦП., @Md . Sojib Ahmed


1 ответ


1

Выводы xbee могут считывать только около 1,2 В, что будет показывать 256 бит. Вам следует проверить, сколько выдает фоторезистор, поскольку он может выдавать что-то большее, чем может выдержать вывод xbee.

,