Соединение 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);
}
}
@Olujide Oluade, 👍0
Обсуждение1 ответ
Выводы xbee могут считывать только около 1,2 В, что будет показывать 256 бит. Вам следует проверить, сколько выдает фоторезистор, поскольку он может выдавать что-то большее, чем может выдержать вывод xbee.
- Serial.read() не работает в инструкции IF
- Случайные символы, генерируемые ДСВ дисплеем во время Serial.read()
- Joy-IT RS232 Shield и уровни напряжения RS232
- Как подключиться к Arduino с помощью WiFi?
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
Проверьте, получает ли Vref полное (1024) значение АЦП., @Md . Sojib Ahmed