HC-05 Bluetooth me muestra caracteres raros en modo at

Pues eso señores. Me muestra caracteres ���O���O���O��� cuando mando alguna orden.
Mi modelo es el del botón.

Conexiones:
RXD - >11
TXD - > 10
GND → GND
VCC → 5V

Codigo:

    #include <SoftwareSerial.h>

    #define RxD 10
    #define TxD 11

    SoftwareSerial BTSerial(RxD, TxD);

    void setup()
    {  
      BTSerial.flush();
      delay(500);
      BTSerial.begin(38400);
      Serial.begin(9600);
      Serial.println("Preparado para enviar comandos AT:");

      BTSerial.print("ATrn");

      delay(100);

    }

    void loop()
    {

      if (BTSerial.available())
        Serial.write(BTSerial.read());

      if (Serial.available())    
        BTSerial.write(Serial.read());  

    }

En la consola tengo puesto Ambos NL & CR a 9600 baudios.

He provado a conectar a 3.3 voltios y nada.

Enviar datos enviar bien porque el reset lo reinicia.

Wasaapp... Lo mas seguro es que uno de los tres baud rates esten desajustados. Me explico.

1baudrate es el de modulo que tienes que configurar en modo AT.

2 El segundo esta en el softserial... Debe ser igual que el primero.

  1. El baudrate que tiene tu consola. Estas usando realTerm?.

-Alex.

AlexLPD: Wasaapp... Lo mas seguro es que uno de los tres baud rates esten desajustados. Me explico.

1baudrate es el de modulo que tienes que configurar en modo AT.

2 El segundo esta en el softserial... Debe ser igual que el primero.

  1. El baudrate que tiene tu consola. Estas usando realTerm?.

-Alex.

Gracias por contestar

Estoy usando la consola del IDE de arduino, he probado con varias versiones. Pero todas van mal.

No entiendo muy bien con que quieres decir que esta mal configurado el baudrate y eso del softserial.

Quieres decir que el del arduino y el del bluetooth tienen que ser el mismo? Si pongo los dos a 9600 no responde nada el bluetooth.

Y lo del baudrate.. como le digo el baudrate mediante AT?

Un saludo

Hmmm cosa fácil, de momento no estoy en la PC. Pero busca. Instructables AT comand. O busca un posy mío referente a Bluetooth.

Ese ible te dice como acceder al modo AT de tu dispositivo BT.que no es mas que la configuracion. El hardware en si tiene una velocidad. La cual vas a modicar usando un sketch y siguiendo las instrucciones.

Después tienes que ir a tu sketch. Estas usando soft serial? Es decir creas un puerto serial virtual o usas los pines TX y RX?

Y tercero por experiencia propia el monitor serial de IDE no te va a recibir datos. Baja te RealTerm y ahí recibirás tus datos sin problemas.

Tengo un post q resolverá casi todas tus dudas. Debe salir en el foro bajo una búsqueda de; blueetoth requieres especial configuration? AlexLPD

Espero haberte ayudado. Cualquier cosa. -Alex.

Estoy usando soft serial (Creo)

SoftwareSerial BTSerial(RxD, TxD);

Imagino que así se usará.

Que lo que estoy intentando hacer es cambiarle el nombre y la pass al modulo. He visto varios tutoriales y la gente lo hace así, con el IDE de arduino. Primero manda un "at" por consola para recibir "ok". Pero cuando he visto esos caracteres raros ya he parado.

OK entonces apenas estas configurando el equipo lo q pasa es q tu serial de idea arduino no tiene el mismo baudrate del que pusiste en el sketch ...

Alex

Le he cambiado el baudrate al modulo mediante AT (porque enviar comandos si que funciona)

Modifico mi sketch:

Serial.begin(9600); Serial.println("AT commandes:"); BTSerial.begin(9600);

Pero si pongo algo distinto a 48400 en BTSerial.begin , deja de enviar/recibir comandos.

Si modifico ambos, tampoco funciona:

Serial.begin(38400); Serial.println("AT commandes:"); BTSerial.begin(38400); // HC-05 vitesse par défaut pour la commande AT

Le he escrito a quien me lo vendió y dice que vendrá defectuoso. He probado con ART+UART para modificar el baudrate al que trabaja el modulo pero nada ¿Qué opinais?

Alguna idea?

nitrosito: Alguna idea?

que modelo tienes? puedes poner foto o enlace?

Jose..tienes q revisar el baud rate De tu modulo bt De tu sof serial. De tu e sketch no el q usas para configurar lo.

Y el de el puerto com de windows.

Alex.

Saludos

Para cambiar la velocidad de tu modulo debes enviar

 BTSerial.print("AT+BAUD");  BTSerial.print(baudios);

Donde baudios pueden ser: 1 -----> 1200 2 -----> 2400 3 -----> 4800 4 -----> 9600 5 ----->19200 6 ----->38400 7 ----->57600 8 ----->115200

En mi caso envio

 BTSerial.print("AT+BAUD4");

Para configurarlo a 9600

Si dejo el codigo asi

void setup()
{

  Serial.begin(9600);
  Serial.println("AT commandes:");
  BTSerial.begin(9600);  // HC-05 vitesse par défaut pour la commande AT
   BTSerial.print("AT+BAUD4");
}

void loop()
{
  // lecture des commandes AT par le serial port(9600)
  if (BTSerial.available()) Serial.write(BTSerial.read());

  // envoie à HC-05 de commandes AT saisi
  if (Serial.available()) BTSerial.write(Serial.read());
}

No imprime nada en la consola. Y si pongo: BTSerial.begin(38400); // HC-05 vitesse par défaut pour la commande AT

Siguen saliendo caracteres raro

Fotos:

Creo que no estas usando el pin Enable o Key, Revisa este tutorial y confirma Modify the HC-05 bluetooth.

Hay que recordar que no todos los módulos tienen el mismo firmware, así que tendrás que probar todo lo que puedas.

Una cosa importante que leí sobre el HC-05, hay una forma de activarlo para que comience con una velocidad de fabrica. Pero no recuerdo la secuencia exacta ni donde lo leí.

Por eso le recomendaba al amigo q se diera una vuelta por el instructable de BH de HC configuration AT commands.

m.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/step2/The-Arduino-Code-for-HC-05-Command-Mode/

Tienes q cargar el sketch.... Despegar el modulo. Encender arduino... Re conectar el modulo para acceder al modo AT.

-Alex.

Si en modo at entra fijo. Lo que hago es quitarle la alimentacion. Pulso boton, conecto alimentacion y se pone a parpadear lento cada 2s.

Los modelos q tienen botón lei que se entraba asi.

Si comandos recibe, porque lo puedo reiniciar y tal. Pero cuabdo tiene que devolver algo, como la version o el nombre, devuelve caracteres ilegibles

Saludos

Busca un software para comunicación serial y trata de ver lo que responde en hexadecimal.

Entonces tienes problemas el baudrate de tu serial no es igual q el de HC... Puedes ver donde esta el error o reiniciar el serial con un baudrate hasta q veas caracteres.

Buenas, he tenido problemas parecidos con la librería SoftwareSerial y el modo AT del hc-05, por lo visto la librería tiene problemas con algunas velocidades. Al final lo conseguí usando el Serial1 de una mega(una leonardo también lo tiene). Dos puertos serie por hardware vaya. Si no tienes una mega o una leo a mano, prueba con esta librería no llegué a usarla pero no tiene mala pinta: https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html. La sintaxis es similar a SoftwareSerial.

Y recuerda que aunque estos módulos se pueden alimentar con 5 voltios no toleran la lógica a 5V sino a 3,3V... eso me dió problemas con velocidades más altas +115200baud, hasta que puse un logic level shifter (¿cómo se llama esto en español? juas) de 5V a 3,3V. Un divisor de voltaje hacia el RX del módulo ya haría el apaño o un simple adaptador de usb a serial directo al hc-05 para configurarlo...

Resumiendo mis experiencias con SoftwareSerial no han sido muy buenas :sob:

Salud.

Probare lo que me habéis dicho, y la librería. A ver si hay suerte.

El domingo por la tarde o el lunes os cuento