Не могу прочитать сообщение от 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 ответ

Решение

Это была просто странная аппаратная проблема. Хорошо работает на других досках

Другие вопросы по тегам