Arduino: korzystanie z Serial i Software Serial z modułem Bluetooth

Moim celem jest wykorzystanie Arduino do skonfigurowania komunikacji między komputerem a urządzeniem z systemem Android za pomocą modułu Bluetooth HC-05.

Korzystam z komunikacji USB między komputerem PC a Arduino (Serial Monitor) i SoftwareSerial, aby połączyć się z HC-05.

Moim problemem jest to, że komunikacja działa dobrze z BT na PC, ale nie działa w oczekiwany sposób w inny sposób. Podczas wysyłania z komputera PC do BT wszystkie wysłane znaki są odbierane przez urządzenie BT tylko po zamknięciu monitora szeregowego na komputerze lub po zresetowaniu Arduino.

Wykluczyłem problem z modułem BT lub aplikacją na Androida, ponieważ jeśli w Arduino implementuję kod „ECHO” (pisz w Androidzie i wysyłam w Androidzie), wszystko działa dobrze.

Z kodem Arduino opublikowanym poniżej oczekiwane zachowanie to: Reset Arduino-> Wysłane słowo Hello, Monitor szeregowy otwarty-> nic się nie dzieje, znak zapisany na monitorze szeregowym-> znak odebrany przez BT, znak zapisany na BT-> znak odebrany na Serial Monitor , Monitor szeregowy zamknięty-> nic się nie dzieje.

Prawdziwe zachowanie to: Reset Arduino-> Wysłane słowo Hello, otwarty monitor szeregowy-> 2 Witaj słowo na BT i 1 („dobranoc”) na PC, znak zapisany na monitorze szeregowym-> nic, znak zapisany na BT-> znak odebrany na Serial Monitor, Serial monitor closed-> poprzedni zapisany znak (y) w otrzymanym monitorze szeregowym + Hello Word.

Jak mogę rozwiązać ten problem?

Kod:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
int a=0;
char c;
char d;
void setup() {
  Serial.begin(9600);
  Serial.println("Goodnight moon!");
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}
void loop() {
  delay(10);
  if (Serial.available()) {
    c=Serial.read();
    delay(10);
    Serial.write(c);
  }
  delay(10);
  if (mySerial.available()) {
    d=mySerial.read();
    delay(10);
    mySerial.write(d);

  }
}

questionAnswers(6)

yourAnswerToTheQuestion