Arduino: utilizando serie y software serie con módulo bluetooth

Mi propósito es usar Arduino para configurar la comunicación entre una PC y un dispositivo Android usando un módulo bluetooth HC-05.

Uso la comunicación USB entre la PC y el Arduino (Monitor de serie) y un SoftwareSerial para conectarme al HC-05.

Mi problema es que la comunicación funciona bien desde BT a la PC, pero no funciona como se esperaba en la otra forma. Al enviar desde la PC a BT, todos los caracteres enviados son recibidos por el dispositivo BT solo cuando cierro el Monitor Serial en la PC o cuando reinicio el Arduino.

He excluido un problema con el Módulo BT o la aplicación de Android porque si en Arduino implemento un código "ECHO" (escribir en Android y enviar en Android) todo funciona bien.

Con el código Arduino publicado debajo, el comportamiento esperado es: Arduino restablecer-> Hola palabra enviada, Serial monitor abierto-> no pasa nada, carácter escrito en serial monitor-> carácter recibido en BT, carácter escrito en BT-> carácter recibido en Serial Monitor , Monitor de serie cerrado-> no pasa nada.

El comportamiento real es: Arduino reset-> Hola palabra enviada, Monitor de serie abierto-> 2 Hola palabra en BT y 1 ("buenas noches") en PC, carácter escrito en serie monitor-> nada, carácter escrito en BT-> carácter recibido en el Monitor de serie, el Monitor de serie cerrado-> caracteres anteriores escritos en el monitor de serie recibido + Hello Word.

¿Como puedo solucionar 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);

  }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta