Boa noite pessoal,

Estou tentando configurar o modulo Bluetooth HC-06 a partir de comandos AT, encontrei bastante coisa na internet e seguir todos os procedimentos, porem não recebo de volta o OK dos comandos, para a configuração do modulo, alguém que já trabalhou com esse modulo saberia me dizer o que estou fazendo de errado?

Modulo

Esquema de ligação;

Obs(Utilizei um divisor de tensão no pino RX do modulo com 2 resistores de 10K(output= 2,5v)

Código :

#include <SoftwareSerial.h>

//Define os pinos para a serial
SoftwareSerial mySerial(10, 11); // RX, TX
String command = ""; // Stores response of bluetooth device
// which simply allows \n between each
// response.

void setup()
{
//Inicia a serial
Serial.begin(115200);
Serial.println("Digite os comandos AT :");
//Inicia a serial configurada nas portas 10 e 11
mySerial.begin(38400);
}

void loop()
{
// Read device output if available.
if (mySerial.available())
{
while(mySerial.available())
{ // While there is more to be read, keep reading.
command += (char)mySerial.read();
}
Serial.println(command);
command = ""; // No repeats
}

// Read user input if available.
if (Serial.available())
{
delay(10); // The DELAY!
mySerial.write(Serial.read());
}
}

Porem não recebo de volta o OK do modulo na serial, quando digito Inicio os comandos AT.

Exibições: 11923

Responder esta

Respostas a este tópico

vc já errou no circuito, sorte sua se não queimou sua porta RX do bluetooth, pois vc colocou 5 vc nela e ela deve receber somente 3.3

isso pode te ajudar:

http://blog.filipeflop.com/wireless/tutorial-arduino-bluetooth-hc-0...

eduardo essas placas funcionam de 3,6 a 6 v tenho uma ligado sempre em 5v e nunca deu pau ...mas no caso da duvida eh sempre bom nao ariscar kkkkkk

Jose eu entendo vc pq eu tbm tenho uma que funciona assim, o problema é que nessas placas novas ele funciona de 3.3 a 6 volts somente na alimentação, no pinos de comunicação repare que está escrito somente 3.3, para o TX beleza, pois ele somente vai enviar para o arduino e não possui retorno, mais o RX vai receber do arduino diretamente 5 volts que pode danifica-lo rapidamente, recentemente um usuário do meu canal passou por isso, agora o modulo dele está apenas recebendo e não enviando informações, abraços Guerreiro!

po q bom q vc comentou nunca tinha parado pra pensar sobre isso !!!!!

a logica eh esse mesmo se o modulo trabalha com alimentaçao de 3,3 entao seria logico mesmo q os sinais tx  e rx trabalhe na mesma tensao !!!

vlw pela informaçao !!!!

Há verdade,  fiquei bem confuso nessa parte, pq muitos tutoriais que vi o pessoal não utilizava o divisor de tensão no pino RX, e ele vem indicando (level3,3v) mas seria para o pino tx ou rx?

Mas acho que foi isso mesmo, a primeira vez que utilizei liguei o pino Rx direto no arduino, dps é que fui utilizar o divisor de tensão.

Mas então estava certo a maneira que fiz para configurar? provavelmente a entrada rx do modulo queimou? Estou conseguindo me conectar normalmente pelo celular com ele, só não consigo configurar

Obrigado ae :D

Não estava certo, pois vc não ligou o pino key.

vc tem que usar o esquema que foi feito no HC-05, ele que está no modo de configuração

No caso então eu preciso soldar um fio no pino Key? o meu modulo vem apenas com os 4 pinos, nos exemplos que vi o pessoal não utilizava o pino key para o HC- 06, apenas para o HC-05.

Mas então preciso soldar um fio no pino Key e liga-lo nos 3.3V

e fazer um divisor de tensão no pino RX?

E outra pergunta, é a mesma configuração para o HC-05?

Obrigado novamente!

Olá Felipe, mude mySerial.begin(38400);  para (57600) e tente novamente.

Na sua montagem apenas necessita de um divisor de tensão no rx do Bluetooth.

Se não funcionar tente essa sketch abaixo.

 

#include <SoftwareSerial.h>//Inclui a biblioteca SoftwareSerial

int bluetoothTx = 2; //
int bluetoothRx = 3; //

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); //Cria a instância, informando os pinos de controle

void setup()
{
Serial.begin(9600); // Begin the serial monitor at 9600bps
bluetooth.begin(57600); // Start bluetooth serial at 9600

}

void loop()
{
if(bluetooth.available()) // If the bluetooth sent any characters
{
char letra = bluetooth.read();//Recebe caracter via Bluetooth
//Compara o valor recebido para que as saídas do relay board se acionem
Serial.println(letra);


}
}

 

Atenciosamente equipe LDG

Use esse para parametrização:

#include <SoftwareSerial.h>//Inclui a biblioteca SoftwareSerial

int bluetoothTx = 2; //
int bluetoothRx = 3; //

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); //Cria a instância, informando os pinos de controle

void setup()
{
Serial.begin(9600); // Begin the serial monitor at 9600bps
bluetooth.begin(57600); // Start bluetooth serial at 9600

}

void loop()
{
if(bluetooth.available()) // If the bluetooth sent any characters
{
// Send any characters the bluetooth prints to the serial monitor
Serial.print((char)bluetooth.read());
}
if(Serial.available()) // If stuff was typed in the serial monitor
{
// Send any characters the Serial monitor prints to the bluetooth
bluetooth.print((char)Serial.read());
}
// and loop forever and ever!
}

Atenciosamente LDG

LBG, mudei a velocidade para (57600), e não deu certo, eu mandei o comando AT e o modulo não me retornou nada, dai conectei ele pelo celular e enviei um caractere, e recebi o mesmo  na serial, porem em uma forma estranha, dai eu alterei a velocidade do Bluetooth para (9600); e recebi os caracteres normais na serial, porem nada dos comandos AT retornarem o OK. Tentei o Skecth utilizando a porta 2 e 3 como rx e tx, e aconteceu novamente a mesma coisa, o modulo não responde aos comandos AT, e quando eu envio um caractere para o modulo, só consigo ver o mesmo na serial com a velocidade do modulo setada em 9600.

Tentei o segundo sketch, e não aconteceu nada, mesmo eu alterando a velocidade para 9600, não recebi nada na serial.

Cheguei a conclusão, que o modulo parece trabalhar na velocidade de 9600baud, só nessa velocidade consigo visualizar os caracteres vindo do celular, tentei as outras velocidades para a configuração, mas quando digito AT, simplesmente não recebo nada na serial.

Oque pode está acontecendo?

Se poder me ajudar ficarei muito grato.

Obrigado novamente!

Esse módulo funciona em todos os baud rate, o modo de fabrica é 9600, alguns podem vir diferentes. Você falou que quando mudou para 9600 funcionou normal, simplesmente você irá modificar as sketchs acima com esse baud rate 9600, o problema que pode estar ocorrendo é que seu tx e rx podem estar invertidos em relação a essas sketcks. Tente inverter.

Atenciosamente LDG

Eu inverti os pinos, a luz do modulo até brilhou mais forte, mas creio que isso não é normal. E não funcionou, não conseguir nem receber os caracteres vindo do celular.

O meu modulo está com problema?  o pino tx é para envio e o rx para recebimento certo?

No caso o meu tx está funcionando corretamente? pois eu consigo enviar os caracteres do celular, e visualiza-lo na serial, porem creio que o pino rx esteja com problema, pois ele recebe os comandos vindo da serial, e sempre que mando um comando AT não tenho nada de retorno.

Obrigado novamente LBG.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço