Diferença entre os módulos bluetooth HC-05 e HC-06

Muita gente fica na dúvida entre adquirir um módulo bluetooth HC-05 ou um HC-06. Mas afinal, qual é a diferença entre eles, já que geralmente os módulos são muito parecidos visualmente?

diferença módulo bluetooth hc-05 e hc-06

A diferença básica entre os módulos é que o HC-05 pode ser configurado nos modos Master (mestre), Slave (escravo) e Loopback, e o HC-06 apenas no modo Slave.

Em quais situações devo utilizar os modos Master ou Slave?

Tudo vai depender do seu projeto, mas imagine um circuito em que exista um sensor de temperatura, e que você necessite de um aviso quando a temperatura atingir determinado valor. Nesse caso, seria mais indicado um HC-05 no modo Master, que faria a conexão com algum outro dispositivo, como celular, um computador ou outro módulo bluetooth, e daria o alerta sem a necessidade de checar o sensor à todo instante.

Por outro lado, em circuitos onde você precisa enviar comandos ao Arduino e apenas checar o estado de sensores esporadicamente, pode ser utilizado o HC-06 ou o próprio HC-05 em modo Slave.

Diferenças de configuração entre o bluetooth HC-05 e HC-06

Tanto o HC-05 como o HC-06 podem ser configurados por meio de comandos AT, à partir de programas de controle serial como o Serial Monitor,o Termite e o TeraTerm.

Por ter mais recursos o HC-05 possui mais comandos AT do que o HC-06. Eu elaborei uma tabela mostrando os principais comandos disponíveis para cada um:

Arrisco a dizer que para o HC-06 os únicos comandos disponíveis são esses da tabela. Como são muitos tipos de firmware disponíveis, podemos ter algum tipo de comando diferente ou não documentado, mas basicamente no HC-06 você configura o nome, senha e velocidade da serial. Já no HC-05 além dos comandos básicos temos comandos para configuração do modo master/slave, comando para pareamento, rastreamento de dispositivos, etc.

Uma lista completa dos comandos aceitos pelo HC-05, com exemplos de utilização, você encontra aqui.

Configuração do módulo bluetooth com comandos AT

Como eu comentei anteriormente, os módulos são configurados utilizando-se uma série de comandos AT, enviados ao módulo via porta serial.

O módulo HC-06 é um pouco mais simples de configurar. Resumidamente, basta conectar o HC-06 ao Arduino, carregar o programa e enviar os comandos AT.

No caso do HC-05, para enviar esse comandos temos que utilizar um pino adicional do HC-05, o pino KEY , que deve estar em estado ALTO (HIGH). Esse procedimento coloca o módulo em “modo AT”. Alguns módulos vem até mesmo com um pequeno botão para colocar esse pino em nível HIGH.

Conexão do HC-05 no Arduino

Para configurar o HC-05 utilizando um Arduino Uno, faça a ligação abaixo, utilizando um divisor de tensão no pino RX do módulo.

ATENÇÃO: Nunca é demais lembrar, e aqui no blog eu já comentei isso várias vezes. Os módulos bluetooth mais comuns trabalham com nível de sinal de 3.3V (não confundir com a alimentação do módulo, que pode ser de 3.6 à 6V). Assim, para usar o módulo com as placas Arduino que trabalham com nível de sinal de 5V, utilize sempre um divisor de tensão para evitar danos ao módulo bluetooth.

Para calcular o valor dos 2 resistores que formam o divisor de tensão, acesse este link. Preencha os campos R1 e R2 com o valor dos resistores que você possui, coloque a tensão de entrada como 5V e clique em Calcular para calcular a tensão de saída, que não deve exceder 3.3V.

Na imagem abaixo está uma simulação desse cálculo, com o uso de resistores de 470 ohms e 680 ohms:

Vamos utilizar os pinos 6 e 7 como RX e TX usando a biblioteca SoftwareSerial, que permite o uso de outros pinos do Arduino como interface serial. O pino 3.3V do Arduino será conectado ao pino KEY do módulo:

Para programar o módulo, primeiramente carregue este programa no Arduino:

// Programa : Modulo BT HC-05 - Programacao
// Autor : Arduino e Cia

// Carrega a biblioteca SoftwareSerial
#include <SoftwareSerial.h>
   
// Define os pinos para a serial   
SoftwareSerial MinhaSerial(6, 7); // RX, TX  
String command = "";   
   
void setup()   
{  
  // Inicia a serial  
  Serial.begin(115200);  
  // Mensagem inicial
  Serial.println("Digite os comandos AT :");  
  // Inicia a serial configurada nas portas 6 e 7
  MinhaSerial.begin(38400);  
}  
   
void loop()  
{  
  // Verifica se ha comunicacao com o modulo
  // e efetua a leitura
  if (MinhaSerial.available()) 
  {  
     while(MinhaSerial.available()) 
     {
       command += (char)MinhaSerial.read();  
     }  
   Serial.println(command);  
   command = "";
  }  
  
  // Envio de comandos
  if (Serial.available())
  { 
    delay(10);
    MinhaSerial.write(Serial.read());  
  }  
}

Abra o serial monitor e selecione a velocidade de comunicação para 115200 e também os parâmetros NL (New Line) e CR (Carriage Return), conforme destacado. Em alguns segundos a mensagem Digite os comandos AT aparecerá na tela:

Digite os comandos AT na parte superior do Serial Monitor e clique em ENVIAR. Se o comando for aceito pelo módulo, você receberá a mensagem OK após cada um deles.

Utilize os comandos AT abaixo para as principais tarefas:

Gostou deste post sobre as diferenças entre os módulos bluetooth HC-05 e HC-06? Pesquise outros posts sobre o assunto aqui mesmo no Arduino e Cia!

3.7/5 - (9 votos)

Related posts

EasyEDA: Desenho de circuitos eletrônicos e PCB

by Arduino e Cia
8 anos ago

Automação residencial usando MQTT

by Arduino e Cia
3 anos ago

Controle de motor DC com módulo MOSFET IRF520N

by Arduino e Cia
4 anos ago
Sair da versão mobile