Не могу прочитать сообщение от HM10, запись работает. (прием и отправка данных по Bluetooth)
В настоящее время я пытаюсь создать устройство на базе Arduino, которое использует связь Bluetooth (HM10). Я подключил HM10 к Arduino с помощью SoftwareSerial.h и подключил Arduino к ПК через USB, я использую последовательный монитор для связи между платой и ПК.
Идея проста: плата должна просто прочитать сообщение из последовательного соединения "A" и передать его через другое последовательное соединение "B" в HM 10. HM10 затем отправляет сообщение через Bluetooth на подключенное устройство. Также он должен получить сообщение по последовательному соединению "B" от HM10 и передать его на мой компьютер по последовательному соединению "A"
На моем мобильном устройстве я использую приложение MSMBle для подключения по Bluetooth к HM10 и связи с ним.
После подключения arduino к ПК, открытия последовательного монитора и подключения моего телефона с помощью этого приложения к HM10 я могу отправить текст ASCII с помощью последовательного монитора с моего компьютера на arduino, и мой телефон его получает, я вижу его на своем мобильном телефоне. Но когда я посылаю какое-то сообщение по блютузу на HM10, Arduino не получает его.
HM10 получает его: если я подключаю HM10 напрямую к своему ПК, я могу получать и отправлять сообщения с моего последовательного монитора. Таким образом, HM10 получает сообщение и передает его последовательно (TR, TX) в Arduino, но Arduino просто не читает его по какой-то причине.
Я использую этот учебник: введите описание ссылки здесь
Это код:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX
// Connect HM10 Arduino Uno
// Pin 1/TXD Pin 7
// Pin 2/RXD Pin 8
void setup() {
Serial.begin(9600);
// If the baudrate of the HM-10 module has been updated,
// you may need to change 9600 by another value
// Once you have found the correct baudrate,
// you can update it using AT+BAUDx command
// e.g. AT+BAUD0 for 9600 bauds
mySerial.begin(9600);
mySerial.print("AT+NAMEnazwak2");
Serial.print("serial_ok");
}
void loop() {
//Serial.print("test");
char c;
if (Serial.available()) {
c = Serial.read();
mySerial.print(c);
}
if (mySerial.available()) {
c = mySerial.read();
Serial.print("ok");
Serial.print(c);
}
}
Пожалуйста, помогите мне, что я делаю не так?
1 ответ
Это была просто странная аппаратная проблема. Хорошо работает на других досках