Связь между двумя модулями Bluetooth
Я успешно подключил два модуля Bluetooth, HC-05 и HC-06, как на этом сайте:
http://www.martyncurrey.com/connecting-2-arduinos-by-bluetooth-using-a-hc-05-and-a-hc-06-pair-bind-and-link/
У меня есть Arduino Nano, которая является ведомым устройством (HC-06), и Arduino Mega, которая является ведущим устройством (HC-05), и вот код для них обоих:
Приёмник - Мастер
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX | TX
String Data = "";
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop(){
while (mySerial.available()){
Serial.println(mySerial.read())
}
}
Отправитель - Подчиненный
#include <SoftwareSerial.h>
SoftwareSerial BTserial(11, 10); // RX | TX
int c = 100;
void setup() {
Serial.begin(9600);
BTserial.begin(9600);
}
void loop(){
BTserial.println(c);
}
Я попробовал
BTserial.write(c)
И тоже не работает. Я получаю числа вроде 245 255. А когда я меняю отправляемые данные, числа меняются, поэтому я знаю, что они взаимодействуют. Думаю, это переменная проблема. Я перепробовал кучу интернет-кодов, которые якобы работают, но, похоже, в этом случае они не работают.
@Josh Miles, 👍0
1 ответ
println выводит переменную c типа int как строку "100" с /r/n в конце. Функция read считывает её как байты и выводит байты как числа с символом новой строки в конце. Таким образом, получаются значения ASCII: 1, 0, 0, \r и \n.
используйте write() для записи байта в Bluetooth и на последовательный монитор
- Bluetooth-модуль HC-05 — команда INQ не работает
- Самая низкая мощность, возможная в Arduino
- В чем разница между delay() и delaymicroseconds()
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- Программирование Arduino на Паскале?
- Bluetooth-модуль HC-05 не принимает AT-команды
- Проблемы с последовательной связью от Arduino к Bluetooth HC-05
- Я могу отправлять на software serial, но не прочитать?