Hola a todos ! estoy teniendo un problema con el modulo HC-05 de bluetooth y no sé como solucionarlo.
recién compre el modulo hc-05 e intente configurarlo, para ello seguí este tutorial :
http://saber.patagoniatecnology.com/hc-05-bluetooth-conectar-esclavo-hc05-maestro-master-save-wireless-tutorial-iot-celular-smartphone-arduino-argentina-ptec/
El problema es que cuando yo pongo "AT " en la consola y debería darme OK, no está sucediendo. No me deja configurar nada del modulo.
Lo que si me deja es conectarme a través del celular , me aparece dentro del bluetooth el hc-05 y lo he probado con aplicaciones pero a pesar de que se conecte parece que cuando yo le envió información desde el android no la recibe (tampoco el android puede recibir).
Cuando lo tengo conectado se queda parpadeando intermitentemente. Solo deja de parpadear cuando lo conecto con el celular.
Mis conexiones son :
RXD = 6
TXD = 5
EN (En el tutorial dice key pero como supongo que en el lugar de KEY aparece en será la misma) = 3
GND = GND
VCC = 5v.
Y este es mi codigo :
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(6, 5); // RX | TX
void setup()
{
pinMode(3, OUTPUT); // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
digitalWrite(3, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(38400); // HC-05 default speed in AT command more
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}
Ya probe teniendo conectado sin el EN,
Probe cambiarlos a los pines 10, 11 el (rxd, txd) ,
Probe cambiar de 5v a 3,3v.
Probe con 6 aplicaciones para celulares distintas.
Probe todo lo que se me ocurria y sin solución.
Se les ocurre algo ?
¿Has cruzado los pines TX RX del Arduino y el módulo? Ten en cuenta que por el cable que uno transmite el otro debe recibir y viceversa.
Prueba sencillamente a intercambiar los pines TX y RX, pues pudiera ser eso.
Luego está el problema de softwareserial, que no se lleva bien con ciertas velocidades, pero esa es otra historia. De todas formas, ¿No estarás cometiendo el sacrilegio que hemos visto recientemente de utilizar softwareserial en un arduino mega o leonardo?
Saludos
Los módulos Bluetooth que he usado no responden al comando AT, pero si envias AT+NAMEHC-05 si deben responder.
Que app android estas usando? Yo recomiendo Sena Blueterm
No. Ya probe intercambiar los RXD y los TXD como por lo menos 4 veces.
Estoy utilizando el serial en un arduino UNO.
Las aplicaciones que estoy utilizando son creadas por mi por el app inventor 2.
También he probado el blueterm.
En el tutorial es el mismo modulo que tengo yo. Así que debería funcionar
En el tutorial es el mismo modulo que tengo yo. Así que debería funcionar
Dudo que eso sea garantía de algo. El mismo modelo puede tener distintos firmware
De experiencia personal, el serial de la IDE no es muy confiable cuando se trata de recibir datos.
Prueba; Real Term.
-Alex.
Yo soy mas partidario de terminal externa y a ser posible usar FTDI.
Hola a todos ! al final existen varios modelos de módulos bluetooth HC-05 . Yo tengo uno que tiene un botoncito. tenía que mantener apretado el botón, luego conectar el cable VCC y ya entraba en AT MODE.
Tuto que seguí : http://www.martyncurrey.com/?p=1348
Mi problema ahora es que cuando mando AT a través del serial estoy recibiendo : ϧ†…
Supongo que sera un problema de los baudios utilizados. Pero ya use 9600 para ambos y algunas otras combinaciones sin exito alguno. Que puede ser?
Con lo referido a las app he probado algunas con el MIT app inventor. Y las he probado de celular a celular y han funcionado, así que con el arduino tendrían que funcionar no? .
Prueba a 38400 baudios. Mis HC-05 funcionan siempre a esa velocidad cuando están en modo AT.
Siempre que el Hc entra en modo At el baudrate por default es 38400.
Osease siempre que lo vas a configurar tiene que ser esa la velocidad.
Prueba con este tutorial a mi me dio resultados;
De Tech Bitar (http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/?ALLSTEPS)
Siempre que el Hc entra en modo At el baudrate por default es 38400.
Osease siempre que lo vas a configurar tiene que ser esa la velocidad.
Prueba con este tutorial a mi me dio resultados;
De Tech Bitar (http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/?ALLSTEPS)
Ya intente ponerlo en esa velocidad, de hecho todos los tutoriales que probe vienen con esa velocidad como standart. Ese tutorial que me pasaste parece no ser el modelo de HC-05 que tengo. Yo tengo el que tiene el botoncito.
Será que estoy haciendo mal las conexiones? porque en algunos tutoriales (como este : http://www.martyncurrey.com/?p=1348) utilizan resistencias ??
Encontré que el modelo de mi bluetooth es zs-040 y dice que la "baudrate" standart es 9600. Sin embargo sigo sin poder mandarle datos desde el serial lo ponga en 38400 o 9600 :/ .
Logré hacer que mis aplicaciones de android funcionen . Lo que no logro todavía es entrar en el modo AT.
Se supone que vienen con un divisor de voltaje incorporado pero, puedes hacer la prueba a conectar un divisor de voltaje externo al pin RX para que sea 3.3 V
El esquema esta en el ible que te envie.
No he visto esos con botoncito que dices, pero encontre este articulo quizas te sirva de ayuda;
Configurar HC05 y HC06 (http://www.geekfactory.mx/radio/bluetooth-hc-05-y-hc-06-tutorial-de-configuracion/).
-Alex.
Que cambiaría en el caso de que conecte el RX a un cable externo?
hola y lo solucionaste ??
Aureliano24. Estoy con el mismo problema que te sucesio a vos. me pasa exactamente lo mismo, con el celu se conecta pero la aplicacion hecha por mi tira error de conexion. me podrias dar una mano por fa? muchas gracias
Aureliano24. Estoy con el mismo problema que te sucesio a vos. me pasa exactamente lo mismo, con el celu se conecta pero la aplicacion hecha por mi tira error de conexion. me podrias dar una mano por fa? muchas gracias
Tambien tengo el mismo problema parece que no recibe ninguna señal de mi app y no logro entrar al modo AT por ningun tutorial
tengo el hc-05 con el botonsito
y arduino mega alguien ya lo solucionó?
Tambien tengo el mismo problema parece que no recibe ninguna señal de mi app y no logro entrar al modo AT por ningun tutorial
tengo el hc-05 con el botonsito
y arduino mega alguien ya lo solucionó?
Buenas,
A mi me pasó lo mismo, lo que tienen que hacer es verificar cual tipo de Modulo Bluetooth tienen en mi caso es el ZS-040 HC-05.
La conexión está en el adjunto con nombre DiagramaConexion.jpg, la particularidad de este modulo es que no necesita conectarse la PIN 34. Los pasos de configuración se explican en el siguiente Link (http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/). De todas formas ese tutorial te muestra la manera de usar el PIN 34 para otros tipos de Modulos BT.
Espero les sirva...
Hola , hice un proyecto con el H05 y Leonardo, pero no puedo conectar mi celular con el Bluetooth, lo sincronizo, ero nunca se establece la conexión, la configuración que uso es la misma que muestras, pero sin éxito. como puedo saber que esta fallando
Logré hacer que mis aplicaciones de android funcionen . Lo que no logro todavía es entrar en el modo AT.
hola, yo tambien tengo el mismo problema, estoy haciendo las app en app inventor pero no funciona, como hiciste para que te funcionara?
Gracias
Buenas,
A mi me pasó lo mismo, lo que tienen que hacer es verificar cual tipo de Modulo Bluetooth tienen en mi caso es el ZS-040 HC-05.
La conexión está en el adjunto con nombre DiagramaConexion.jpg, la particularidad de este modulo es que no necesita conectarse la PIN 34. Los pasos de configuración se explican en el siguiente Link (http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/). De todas formas ese tutorial te muestra la manera de usar el PIN 34 para otros tipos de Modulos BT.
Espero les sirva...
hola. el link solo es para los comandos AT?
Olvide mencionar que en tu caso que tienes el HC05 con un boton, debes mantenerlo pulsado y seguidamente conectarlo a los 3.3v de Arduino, cuando veas que el led rojo parpadee lentamente es que esta en modo AT.
Hola, no se si solucionaste tu problema. El módulo que viene con el botoncito es para ponerlo en modo AT
Para ello debes
1- Desconectar la alimentación (VCC o GND)
2- Presionar el botón y mantener presionando
3- Conectar la alimentación sin dejar de presionar el botón
4- Cuando el led comience a parpadear lento entonces puedes soltar el botón y mandar los comandos AT
Espero te sea útil
Bueno el mismo problema me ocurre a mi eh leido varios foros y aun no encuentro la solucion a este problema, ya hice eso de conectar y esperar a que parpade cada 3 segundos apretando el boton antes de conectar el vcc, pero cuando voy al monitor serial y escribo el "AT" sin las comillas, no me sale nada ya revise el baulio 9600 todas las configuraciones y aun no logro entrar al at del BT. mas bien lir por ahi que lograron conectarlo a sus aplicaciones de android, me gustaria siquiera el dato para tambien interntarlo mientras se busca una solucion para poder configurar el BT.
en este link encontre todo lo que necesitaba, tengo un hc-05 gw-040 https://translate.google.com.ar/translate?hl=es-419&sl=en&u=http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/&prev=search
Logré hacer que mis aplicaciones de android funcionen . Lo que no logro todavía es entrar en el modo AT.
Buen dia aureliano hay un canal de youtube que se llama editronix alli en su capitulo 11 hablan de como poner a funcionar los hc-05 solo que el de el no tiene el boton como el tuyo o el mio y le solda un puente, que hice yo segui el tuto al pie de la letra con el boton presionado y pude configurar el hc-05, bien en mi tlf se empereja pero no puedo conectarlo a mis apk android ¿como pudiste hacerlo tu?
Saludos,
Pues ayer por la tarde me llego mi HC-05 (uno de esos con botoncito, y de código GW-040), y estaba como vosotros con que no podía acceder al modo AT. Pero tras explorar por internet y hacer muchas pruebas, al final lo conseguí de forma muy rápida. Por si les ayuda, les dejo mis pasos con un Arduino Nano.
1) Conexiones:
HC-05 Arduino
STATE (sin conectar)
RX 10
TX 11
GND GND
VCC 5V
KEY 3V3 (No se si hace falta, pero yo lo puse)
2) Sketch
Usé el modo 3) de esta página:http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/ (http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/)
con una modificación de los pines software serial. El código me quedó así:
#include <SoftwareSerial.h>
SoftwareSerial BTserial(10,11); // RX | TX
char c = ' ';
void setup() {
Serial.begin(9600);
Serial.println("Arduino is ready");
BTserial.begin(9600);
Serial.println("BTserial started at 9600");
}
void loop(){
if (BTserial.available()){
c = BTserial.read();
Serial.write(c);
}
if (Serial.available()){
c = Serial.read();
Serial.write(c);
BTserial.write(c);
}
}
3) Ejecución
Subid el código y abrid el puerto serie con el Arduino IDE usando el puerto COM correspondiente a vuestra placa. Yo le puse en el modo "Ambos NL&CR" y 9600 Baudios.
El módulo HC-05 se enciende y parpadea rápidamente. Ahora dadle al botoncito (seguirá parpadeando igual, pero habrá entrado en modo comandos AT).
Escribid AT y dadle al intro... debería devolveros un OK.
Y ya está!, ya podeis aplicar cualquier cambio que queráis con comandos AT, por ejemplo, como los que proponen aquí: Ver paso 4 (http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/?ALLSTEPS). Podéis ponerlo en maestro/esclavo, cambiarle el nombre, etc, etc. Bueno, ya sabéis. Lo que yo hice fue asegurarme de que ahora en adelante el módulo si o si tiene velocidad 9600 baudios. Para eso usé el comando AT+UART=9600,1,0 Con eso ya no tengo problemas de si se comunica a 38400 baudios.
Una vez acabado de hacer cambios en el módulo, lo desconectáis y listo para trabajar!
Espero que os sirva. A mi me resolvió la vida (con el HC-05, quiero decir).
4) Extras
Y ya de paso, si queréis que se conecte automáticamente a otro dispositivo H-06 escalvo o un HC-05 en modo esclavo, no tenéis más que seguir estos pasos: Conexión de 2 dispositivos automáticamente (http://phillipecantin.blogspot.com.es/2014/08/hc-05-bluetooth-link-with-zero-code.html)
Espero que os haya sido de utilidad.
un saludo,
Buenas , a mí me ocurría exactamente lo mismo, con el mismo módulo (el del botón).
La manera con la que se solucionó el problema fue realizar un divisor de tensión entre TX de arduino y RX (HC-05):
RX(HC-05)
|
|
TX(Arduino) ---1kΩ---- ---- 2kΩ ------GND
De esta manera el nivel lógico será de 3.3V
Saludos!
Saludos,
Pues ayer por la tarde me llego mi HC-05 (uno de esos con botoncito, y de código GW-040), y estaba como vosotros con que no podía acceder al modo AT. Pero tras explorar por internet y hacer muchas pruebas, al final lo conseguí de forma muy rápida. Por si les ayuda, les dejo mis pasos con un Arduino Nano.
1) Conexiones:
HC-05 Arduino
STATE (sin conectar)
RX 10
TX 11
GND GND
VCC 5V
KEY 3V3 (No se si hace falta, pero yo lo puse)
2) Sketch
Usé el modo 3) de esta página:http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/ (http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/)
con una modificación de los pines software serial. El código me quedó así:
#include <SoftwareSerial.h>
SoftwareSerial BTserial(10,11); // RX | TX
char c = ' ';
void setup() {
Serial.begin(9600);
Serial.println("Arduino is ready");
BTserial.begin(9600);
Serial.println("BTserial started at 9600");
}
void loop(){
if (BTserial.available()){
c = BTserial.read();
Serial.write(c);
}
if (Serial.available()){
c = Serial.read();
Serial.write(c);
BTserial.write(c);
}
}
3) Ejecución
Subid el código y abrid el puerto serie con el Arduino IDE usando el puerto COM correspondiente a vuestra placa. Yo le puse en el modo "Ambos NL&CR" y 9600 Baudios.
El módulo HC-05 se enciende y parpadea rápidamente. Ahora dadle al botoncito (seguirá parpadeando igual, pero habrá entrado en modo comandos AT).
Escribid AT y dadle al intro... debería devolveros un OK.
Y ya está!, ya podeis aplicar cualquier cambio que queráis con comandos AT, por ejemplo, como los que proponen aquí: Ver paso 4 (http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/?ALLSTEPS). Podéis ponerlo en maestro/esclavo, cambiarle el nombre, etc, etc. Bueno, ya sabéis. Lo que yo hice fue asegurarme de que ahora en adelante el módulo si o si tiene velocidad 9600 baudios. Para eso usé el comando AT+UART=9600,1,0 Con eso ya no tengo problemas de si se comunica a 38400 baudios.
Una vez acabado de hacer cambios en el módulo, lo desconectáis y listo para trabajar!
Espero que os sirva. A mi me resolvió la vida (con el HC-05, quiero decir).
4) Extras
Y ya de paso, si queréis que se conecte automáticamente a otro dispositivo H-06 escalvo o un HC-05 en modo esclavo, no tenéis más que seguir estos pasos: Conexión de 2 dispositivos automáticamente (http://phillipecantin.blogspot.com.es/2014/08/hc-05-bluetooth-link-with-zero-code.html)
Espero que os haya sido de utilidad.
un saludo,
Para mí la clave ha sido poner el comando AT+UART=9600.1.0.0
Porque cuando hacía AT+UART? me daba 9600.0.0 y se conoce que era necesario el 1 en el segundo parámetro.
Gracias a madepablo
en los ultimos dias adquiri un modulo hc05 y tuve problemas para ingresar al modo AT pero logre solucionarlo de la siguiente manera.
luego de presionar el boton que trae el modulo y verificar que parpadee de forma lenta lo siguiente que hay que hacer es quitar el cable que esta conecta al pin KEY y por ultimo al abrir el monitor serial colocar en 38400 y en AMbos NL&CR.
espero les sirva haciendolo de esta forma
Yo recientemente recibí un modulo de estos, para ser exactos el MC-05 ZS-040 y no se si funciona exactamente igual que los demás.
Hasta ahora no le he dado ningún uso ya que sigo investigando como funciona. Y por el momento, tras mucho buscar por san gugel, encontré un post que indica 4 formas de entrar en modo AT.
información extraída de este enlace: http://www.martyncurrey.com/arduino-with-hc-05-bluetooth-module-at-mode/
La forma mas simple de entrar en modo AT es mantener pulsado el botón del modulo antes de darle corriente, sin embargo, no vas a mantener pulsado siempre el botón, cierto? por lo que el modulo pasa a modo AT Mini.
Esta opción puede ser útil para configurar ciertos parámetros, pero es un modo muy limitado, por lo que decido seguir investigando.
Tras probar de darle 3.3v al pin KEY antes de suministrarle corriente al modulo, con intención de entrar de esta forma en modo AT, al final me vi forzado a soldar un cable a mi modulo MC-05 en su pin 34, tal y como se indica en la pagina de antes, para forzar de esta manera el modo AT.
De esta forma conseguí mi propósito de entrar en el modo AT Full sin necesidad de pulsar el botón del modulo.
el codigo seria el siguiente:
#include <SoftwareSerial.h>
#define BT_RT 10
#define BT_TX 11
#define BTVCC 12
#define BTKEY 13
SoftwareSerial Bluetooth(BT_TX, BT_RT); // RX, TX
void setup() {
Serial.begin(9600);
pinMode(BTVCC, OUTPUT); // Marca el PIN de alimentacion para el HC-05 como salida
pinMode(BTKEY, OUTPUT); // Marca el PIN del modo AT para el HC-05 como salida
digitalWrite(BTKEY, HIGH); // Activa el modo AT Full
delay (500) ; // Espera antes de encender el modulo
Serial.println("Alimentando el modulo HC-05");
digitalWrite (BTVCC, HIGH); // Enciende el modulo
//delay(600); digitalWrite (BTKEY, LOW); // Cambia al modo AT Mini
Serial.println("Esperando comandos AT:");
Bluetooth.begin(38400);
}
void loop(){
if (Bluetooth.available()){ Serial.write(Bluetooth.read()); }
if (Serial.available()){ Bluetooth.write(Serial.read()); }
}
Si os fijáis, he tenido que invertir RX por TX en la llamada Bluetooth()
Mi duda es, si yo puse un puente reductor de voltaje tal y como se muestra en guia, al invertir RX por TX, debería también corregir el puente corrector?
Supongo que si, pero no termino de comprender que mi modulo tenga pintados de forma invertida los puertos de entrada y salida
He estado modificando el código, de manera que pueda iniciar el bluetooth en 3 modos diferentes desde la consola serial.
Teniendo en cuenta que al enviar los comandos AT debemos enviar el NL y CR, el sketch reconoce los comando de la misma forma.
Los comandos admitidos son (en minusculas):
bt at: inicia el MC-05 en modo AT Mini
bt atf: inicia el MC-05 en modo AT Full
bt on: inicia el MC-05 en modo Normal
bt off: apaga el modulo MC-05
Ademas de estos comandos, he conseguido que al estar en modo AT, dispongamos de todos los comandos, dependiendo del modo estarán disponibles o no lo estarán.
por ejemplo, despues de activar el modo at full, puedo lanzar cualquier comando AT
at+name
at+pswd
etc etc
NOTA: Sin embargo, en modo at mini no devolverá el nombre al usar at+name
#include <SoftwareSerial.h>
#define BT_RT 10
#define BT_TX 11
#define BTVCC 12
#define BTKEY 13
SoftwareSerial Bluetooth(BT_TX, BT_RT); // RX, TX
//Declaracion de variables
char inChar;
String string="";
int modoAT=0;
void setup() {
Serial.begin(9600);
}
void loop(){
if (Serial.available()){
inChar = Serial.read();
if(inChar=='\n'){
Serial.print("Comando recibido: "); Serial.println(string);
if(string=="bt at\r"){ Serial.println("Iniciando Bluetooth modo AT Mini"); modoBT(1); } // Arranca el modulo MC-05 en modo AT Mini
else if(string=="bt atf\r"){ Serial.println("Iniciando Bluetooth modo AT Full"); modoBT(2); } // Arranca el modulo MC-05 en modo AT Full
else if(string=="bt on\r"){ Serial.println("Iniciando Bluetooth modo Normal"); modoBT(3); } // Arranca el modulo MC-05 en modo Normal
else if(string=="bt off\r"){ Serial.println("Apagando Bluetooth"); modoBT(0); } // Apaga el modulo MC-05 (modo off= consumo zero)
else if(string.startsWith("at")){
Bluetooth.write("AT"); // Inicia conversacion con bluetooth
for(int x=2;x<string.length();x++){ Bluetooth.write(string.charAt(x)); } // Escribe caracteres del comando AT
Bluetooth.write('\n'); // Finaliza conversacion con bluetooth
}
string=""; // Resetea el string (inicia la espera de nuevos comandos)
}
else {string+=inChar;}
}
if(modoAT==1){
if (Bluetooth.available()){ Serial.write(Bluetooth.read()); } // En modo AT envia de bluetooth a serial
}
}
void modoBT(int x){
modoAT=0; pinMode(BTVCC, LOW); pinMode(BTKEY, LOW); // Apaga el modulo HC-05
delay(500);
pinMode(BTVCC, OUTPUT); // Marca el PIN de alimentacion para el HC-05 como salida
if((x == 1)||(x == 2)){
modoAT=1;
pinMode(BTKEY, OUTPUT); // Marca el PIN del modo AT para el HC-05 como salida
digitalWrite(BTKEY, HIGH); // Activa el modo AT Full
}
delay (500) ; // Espera antes de encender el modulo
if(x == 0){ return; } // Mantiene apagado el modulo y vuelve al loop
Serial.println("Alimentando el modulo HC-05");
digitalWrite(BTVCC, HIGH); // Enciende el modulo
if(x == 1) {
delay(600); digitalWrite(BTKEY, LOW); // Cambia al modo AT Mini
Serial.println("Esperando comandos AT Mini:");
}
else if(x == 2){ Serial.println("Esperando comandos AT Full:"); }
Bluetooth.begin(38400);
}
creo que el código puede ser interesante y que alguien le de utilidad
He estado modificando el código, de manera que pueda iniciar el bluetooth en 3 modos diferentes desde la consola serial.
Teniendo en cuenta que al enviar los comandos AT debemos enviar el NL y CR, el sketch reconoce los comando de la misma forma.
Los comandos admitidos son (en minusculas):
bt at: inicia el MC-05 en modo AT Mini
bt atf: inicia el MC-05 en modo AT Full
bt on: inicia el MC-05 en modo Normal
bt off: apaga el modulo MC-05
Ademas de estos comandos, he conseguido que al estar en modo AT, dispongamos de todos los comandos, dependiendo del modo estarán disponibles o no lo estarán.
por ejemplo, despues de activar el modo at full, puedo lanzar cualquier comando AT
at+name
at+pswd
etc etc
NOTA: Sin embargo, en modo at mini no devolverá el nombre al usar at+name
#include <SoftwareSerial.h>
#define BT_RT 10
#define BT_TX 11
#define BTVCC 12
#define BTKEY 13
SoftwareSerial Bluetooth(BT_TX, BT_RT); // RX, TX
//Declaracion de variables
char inChar;
String string="";
int modoAT=0;
void setup() {
Serial.begin(9600);
}
void loop(){
if (Serial.available()){
inChar = Serial.read();
if(inChar=='\n'){
Serial.print("Comando recibido: "); Serial.println(string);
if(string=="bt at\r"){ Serial.println("Iniciando Bluetooth modo AT Mini"); modoBT(1); } // Arranca el modulo MC-05 en modo AT Mini
else if(string=="bt atf\r"){ Serial.println("Iniciando Bluetooth modo AT Full"); modoBT(2); } // Arranca el modulo MC-05 en modo AT Full
else if(string=="bt on\r"){ Serial.println("Iniciando Bluetooth modo Normal"); modoBT(3); } // Arranca el modulo MC-05 en modo Normal
else if(string=="bt off\r"){ Serial.println("Apagando Bluetooth"); modoBT(0); } // Apaga el modulo MC-05 (modo off= consumo zero)
else if(string.startsWith("at")){
Bluetooth.write("AT"); // Inicia conversacion con bluetooth
for(int x=2;x<string.length();x++){ Bluetooth.write(string.charAt(x)); } // Escribe caracteres del comando AT
Bluetooth.write('\n'); // Finaliza conversacion con bluetooth
}
string=""; // Resetea el string (inicia la espera de nuevos comandos)
}
else {string+=inChar;}
}
if(modoAT==1){
if (Bluetooth.available()){ Serial.write(Bluetooth.read()); } // En modo AT envia de bluetooth a serial
}
}
void modoBT(int x){
modoAT=0; pinMode(BTVCC, LOW); pinMode(BTKEY, LOW); // Apaga el modulo HC-05
delay(500);
pinMode(BTVCC, OUTPUT); // Marca el PIN de alimentacion para el HC-05 como salida
if((x == 1)||(x == 2)){
modoAT=1;
pinMode(BTKEY, OUTPUT); // Marca el PIN del modo AT para el HC-05 como salida
digitalWrite(BTKEY, HIGH); // Activa el modo AT Full
}
delay (500) ; // Espera antes de encender el modulo
if(x == 0){ return; } // Mantiene apagado el modulo y vuelve al loop
Serial.println("Alimentando el modulo HC-05");
digitalWrite(BTVCC, HIGH); // Enciende el modulo
if(x == 1) {
delay(600); digitalWrite(BTKEY, LOW); // Cambia al modo AT Mini
Serial.println("Esperando comandos AT Mini:");
}
else if(x == 2){ Serial.println("Esperando comandos AT Full:"); }
Bluetooth.begin(38400);
}
creo que el código puede ser interesante y que alguien le de utilidad
Cordial saludo, esto a veces es un chicharron,,en mi caso compre el hc 05 y tan pronto lo conectaba parpadeaba rápidamente pero me dejaba entrar a comandos AT (sin hundir el botón, ni conectar el pin 34) pero cuando pedia AT+NAME no salía nada también podía entrar presionando el botoncito, un día lo tome de nuevo y no me dejaba entrar de ninguna manera y pensé que se había dañado el modulo aunque podía establecer una comunicación desde el celu con una apk., pero en el monitor serial no salía nada.
toda esta carreta, es porque deje presionado el botón por mas de 10 segundos y a partir de allí ya volvió a trabajar de nuevo con solo encenderlo y dejar presionado el botón hasta que parpadea despacio, lo que no volvió a dejar hacer es que con solo encenderlo se podían ingresar comandos AT, en un apartado leí que estos módulos tienen modo AT1 y AT2 , supongo que los modos mini y full son para esto // pero el compañero lo hace desde el programa, como seria para hacerlos desde el monitor serial??
Hola, recientemente yo restaure mi modulo HC-05 y no entraba en modo AT y tampoco enviaba datos, buscando información encontré el siguiente método y me sirvio para recuperarlo, seguí el método 1 y me funciono, lo volví a configurar y a restaurar de fabrica (AT+ORGL) y de nuevo lo configure los BAUT a 9600 y el AT+CMODE
solucion : en el COM#( terminal arduino) debes poner la opcion;
autoscroll
ambos NL & CR
38400
saludos
NO respondas hilos viejos y menos si tienen aÑos sin cambios.
Aun cuando los tienen mucha gente responde a hilos viejos y se van regenerando.
Si recibes un Warning prestale atención.
Si te interesa el tema lee las normas del foro y luego crea tu propio hilo y haz la aclaración para este o cualquier tema.