Configuração dos módulos bluetooth HC5, HC-06 e JY-MCU com Arduino.
Como funciona o Bluetooth?
O sistema utiliza uma freqüência de rádio de onda curta (2.4 GHz) para criar uma comunicação entre aparelhos habilitados. Como seu alcance é curto e só permite a comunicação entre dispositivos próximos, seu consumo de energia é bem baixo.
A comunicação do Bluetooth se dá através de uma rede chamada piconet, que só permite a conexão de até oito dispositivos. Porém, para aumentar essa quantidade, é possível sobrepor mais piconets, capacitando o aumento de conexões pelo método chamado de scatternet.
O Módulo Bluetooth é usado para comunicação wireless entre o Arduino e outro dispositivo com bluetooth, como por exemplo um Smartphone Android.
Características e ligação ao Arduino
O módulo possui 4 pinos : Vcc (alimentação de 3,6 à 6v), GND, RX e TX, os dois últimos utilizados para comunicação com o Arduino via serial.
Configuração dos parâmetros do módulo HC-5, HC-06 e JY-MCU.
A configuração do módulo bluetooth se dá por uma série de comandos AT, que vamos enviar pelo serial monitor.
O serial monitor se conecta ao Arduino via porta serial, que por sua vez se conecta ao módulo bluetooth por uma segunda porta (pinos 2 e 3), que chamaremos de MinhaSerial. Essa nova serial foi criada utilizando-se a biblioteca SoftwareSerial, uma biblioteca que permite que você defina outras portas do Arduino como RX e TX.
Carregue este programa no Arduino para execução dos comandos AT Confoguração:
//Modulo bluetooth HC-5, HC-06 e JY-MCU
//Carrega a biblioteca SoftwareSerial
#include <SoftwareSerial.h>
//Define os pinos para a serial (RX, TX)
SoftwareSerial MinhaSerial(2,3);
String command = "";
void setup()
{
//Inicia a serial
Serial.begin(115200);
Serial.println("Digite os comandos AT :");
//Inicia a serial configurada nas portas 2 e 3
MinhaSerial.begin(9600);
}
void loop()
{
if (MinhaSerial.available())
{
while(MinhaSerial.available())
{
command += (char)MinhaSerial.read();
}
Serial.println(command);
command = "";
}
if (Serial.available())
{
delay(10);
MinhaSerial.write(Serial.read());
}
}
Carregue o serial monitor e configure as caixas no rodapé para sem fim de linha, e o baud rate para 115200, conforme destacado abaixo. Aguarde a mensagem “Digite os comandos AT“:
Para verificar se o módulo está respondendo aos comandos, digite AT (em maiúsculas mesmo) na parte superior da tela e depois clique em ENVIAR:
Ao receber a mensagem OK, é sinal de que o comando AT foi processado corretamente pelo módulo e o mesmo está respondendo. Na tabela abaixo temos os comandos AT suportados assim como a função de cada um:
Comando | Resposta | Função |
AT | OK | Teste de comunicação |
AT+VERSION | OKlinvorV1.8 | Mostra a versão do firmware |
AT+NAMExyz | OKsetname | Altera o nome do módulo |
AT+PIN1234 | OKsetPIN | Altera a senha do módulo |
AT+BAUD1 | OK1200 | Seta o baud rate em 1200 |
AT+BAUD2 | OK2400 | Seta o baud rate em 2400 |
AT+BAUD3 | OK4800 | Seta o baud rate em 4800 |
AT+BAUD4 | OK9600 | Seta o baud rate em 9600 |
AT+BAUD5 | OK19200 | Seta o baud rate em 19200 |
AT+BAUD6 | OK38400 | Seta o baud rate em 38400 |
AT+BAUD7 | OK57600 | Seta o baud rate em 57600 |
AT+BAUD8 | OK115200 | Seta o baud rate em 115200 |
AT+BAUD9 | OK230400 | Seta o baud rate em 230400 |
AT+BAUDA | OK460800 | Seta o baud rate em 460800 |
AT+BAUDB | OK921600 | Seta o baud rate em 921600 |
AT+BAUDC | OK1382400 | Seta o baud rate em 1382400 |
Testando a comunicação com o módulo bluetooth
Depois de configurado, é hora de testar o envio de comandos para acionar as portas do Arduino. Monte o circuito abaixo, composto pelo módulo bluetooth ligado aos pinos 2 (RX) e 3 (TX) do Arduino, conforme figura abaixo:
Obs.: Note que a ligação RX do bluetooth está ligado ao pino 3(TX) do Arduino e TX do bluetooth está ligado ao pino 2(RX) do Arduino.
Programa Arduino para teste de funcionamento do módulo bluetooth envia caracteres para controle de 4 canais(A-B, C-D, E-F, G-H):
Aqui está o programa exemplo para Arduino utilizado no projeto
com o aplicativo Arduino Bluetooth RC 4 Channels.
------------------------------------------------------------------------------------------------------------------------------------
#include <SoftwareSerial.h>//
SoftwareSerial mySerial(2, 3); // 2-RX, 3-TX
int ch1 = 4;
int ch2 = 5;
int ch3 = 6;
int ch4 = 7;
void setup()
{
mySerial.begin(9600);
pinMode(ch1, OUTPUT);//Pino digital saÃda do Arduino(4-ch1);
pinMode(ch2, OUTPUT);//Pino digital saÃda do Arduino(5-ch2);
pinMode(ch3, OUTPUT);//Pino digital saÃda do Arduino(6-ch3);
pinMode(ch4, OUTPUT);//Pino digital saÃda do Arduino(7-ch4);
}
void loop()
{
char caracter = mySerial.read();
//--------------------------------ch1---------------------
if(caracter == 'A')
{
digitalWrite(ch1,HIGH);
}
if(caracter == 'B')
{
digitalWrite(ch1,LOW);
}
//---------------------------------ch1----------------------
//---------------------------------ch2---------------------
if(caracter == 'C')
{
digitalWrite(ch2,HIGH);
}
if(caracter == 'D')
{
digitalWrite(ch2,LOW);
}
//---------------------------------ch2----------------------
//---------------------------------ch3---------------------
if(caracter == 'E')
{
digitalWrite(ch3,HIGH);
}
if(caracter == 'F')
{
digitalWrite(ch3,LOW);
}
//---------------------------------ch3----------------------
//---------------------------------ch4---------------------
if(caracter == 'G')
{
digitalWrite(ch4,HIGH);
}
if(caracter == 'H')
{
digitalWrite(ch4,LOW);
}
//---------------------------------ch4----------------------
delay(10);
}
Nenhum comentário:
Postar um comentário