Как передавать символы или просто использовать xbee, как последовательный монитор

У меня есть arduino mega и uno, у mega есть xbee s2c в качестве координатора, а у uno-xbee s2c в качестве маршрутизатора, оба в режиме AT ( прозрачный ). Когда я отправляю целые числа из uno с помощью Serial.write (), координатор получает все в порядке, но когда я пытаюсь использовать float, отрицательные числа и символы, я получаю целые числа, но, как я узнал, отправляя символы, это в ASCII. Я попробовал Serial.print (), но безрезультатно. Есть ли способ отправить отрицательный float от одного xbee к другому в режиме AT?

Код координатора

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // дождитесь подключения последовательного порта. Требуется только для собственного USB-порта
  }
  Serial1.begin(9600);
  Serial.println("Comersing test!");
}

void loop() {
  if(Serial1.available()>0){
         Serial.print(Serial1.read());
    }
}`

Код UNO

#include <SoftwareSerial.h>
 SoftwareSerial xbSerial(8, 7); // RX, TX
void setup() {
  xbSerial.begin(9600);
  xbSerial.write("First data sent!");

}
int x=4;
void loop() {
  // put your main code here, to run repeatedly:
      xbSerial.write(x);
      x++;
      delay(1000);
      delay(1000);
      delay(1000);
}

если я изменю x в Uno на плавающий, отрицательный или символ, я получу странные значения.

, 👍1

Обсуждение

Пожалуйста, добавьте свой код (для отправки/получения). Похоже, у вас есть неявное преобразование типов., @Mikael Patel

Если вы можете отправлять ASCII и у вас есть контроль над обоими концами данных, вы можете отправлять числа в виде текстовых строк (не очень эффективно). Если номер имеет ограниченный диапазон, т. е. -127 -> +127, вы можете отправить 0, когда хотите передать -127, 1 для -126 и т. Д., @Code Gorilla


1 ответ


-1

XBee не может отправлять отрицательные целые числа, так как он работает в шестнадцатеричном формате и имеет диапазон от 0 до 255

,

Боюсь, что это неправда, если бы это было так, то ни один компьютер не смог бы представлять отрицательные числа. Все зависит от кодировки., @Code Gorilla