Arduino: usando Serial e Software Serial com módulo bluetooth

Meu objetivo é usar o Arduino para configurar a comunicação entre um PC e um dispositivo Android usando um módulo Bluetooth HC-05.

Eu uso a comunicação USB entre o PC e o Arduino (Serial Monitor) e um SoftwareSerial para conectar ao HC-05.

Meu problema é que a comunicação funciona bem da BT para o PC, mas não funciona como esperado no outro caminho. Ao enviar do PC para a BT, todos os caracteres enviados são recebidos pelo dispositivo BT somente quando eu fechar o Monitor Serial no PC ou quando eu reiniciar o Arduino.

Eu excluí um problema com o módulo BT ou com o aplicativo Android porque, se no Arduino eu implementar um código "ECHO" (escrever no Android e enviar no Android), tudo funciona bem.

Com o código Arduino postado abaixo o comportamento esperado é: Arduino reset-> Hello word enviado, Serial monitor open-> nada acontece, caractere escrito em serial monitor-> caractere recebido em BT, caractere escrito em BT-> caractere recebido em Serial Monitor , Monitor serial fechado-> nada acontece.

O comportamento real é: Arduino reset-> Olá palavra enviada, Serial monitor aberto-> 2 Hello word em BT e 1 ("boa noite") no PC, personagem escrito em serial monitor-> nada, personagem escrito em BT-> caractere recebido no Serial Monitor, monitor serial fechado-> caracteres escritos anteriores no monitor serial recebido + Hello Word.

Como posso resolver este problema?

Código:

#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