Последовательная связь между Arduino
Я пытаюсь отправить данные из Arduino Mega в UNO.
Мастер - код посылает символы "x" и "a" каждые полсекунды на ведомый Arduino UNO.
Ведомый получает символы и переключает состояние бортового светодиода.
Здесь я пытаюсь напечатать какой-то текст в начале цикла и полученные символы.
Вместо букв он печатает цифры, как указано ниже.
Почему эта строка Serial.println('Soft serial avaialble')
печатает числа?
Как напечатать реальный текст, полученный от мастера?
> 27749
> 97
> 27749
> 120
> 27749
Мастер-код:
// Include the Software Serial library
#include <SoftwareSerial.h>
// Define a Software Serial object and the used pins
SoftwareSerial softSerial(8, 9); // RX, TX
void setup() {
Serial.begin(9600);
softSerial.begin(9600);
}
void loop() {
// Sends characters 'x' and 'a' every half second.
if (Serial.available()) {
softSerial.write('x');
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
Ведомый код:
// Include the Software Serial library
#include <SoftwareSerial.h>
// Define a Software Serial object and the used pins
SoftwareSerial softSerial(8, 9);
// LED Pin
int LED = 13;
void setup() {
softSerial.begin(9600);
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
Serial.println('Soft serial avaialble');
if (softSerial.available()) {
int com = softSerial.read();
if (com == 'x') {
Serial.println(com);
digitalWrite(LED, LOW);
} else if (com == 'a'){
Serial.println(com);
digitalWrite(LED, HIGH);
}
}
}
@Shyam3089, 👍0
2 ответа
Лучший ответ:
В вашем подчиненном устройстве вы объявили com
как int, поэтому Serial.println() интерпретирует его именно так. Если вы хотите сохранить его как int, за исключением печати, приведите аргумент Serial.println () к char:
Serial.println((char)com);
В дополнение к замечанию Жробера обратите внимание, что строки в C++ разделены двойными кавычками, таким образом:
Serial.println("Soft serial avaialble");
Большое спасибо. Я не знал об этом., @Shyam3089
Хороший улов, @EdgarBonet - я пропустил это., @JRobert
- Как связаться с GPS SIM900a без serial monitor
- Прослушивание последовательных портов
- AT-команда не отвечает на последовательный монитор
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Последовательная связь между двумя Arduino (запрос и получение)
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
Спасибо. Это работает!, @Shyam3089