duvida na comunicação entre arduino e bluetooth

Boas, estou a desenvolver um projecto académico em que pretendo controlar uma luz no arduino em que a ordem de ligar/desligar é recebida por bluetooth, a minha duvida está em como estabelecer a comunicação entre o arduino e o bluetooth.

O arduino que tenho é: Arduino mini pro; A placa bluetooth é: HC06 Serial Bluetooth Brick

A conexão que estabeleci foi: Arduino HC-06

GND -------------- G(GND) VCC -------------- V 2 -------------- D0(TX) 3 -------------- D1(RX)

O código que utilizo no arduino para estabelecer a ligação ao bluetooth e ligar/desligar a luz é:

#include

SoftwareSerial bt(2, 3); // RX TX
int led = 13;
int caractere;

void setup() {
bt.begin(9600);
pinMode(led,OUTPUT);
}

void loop() {
if (bt.available()) {
caractere = bt.read();
if(caractere == '1') {
digitalWrite(led,HIGH);
bt.println("OK, led ligado.");
}
if (caractere == '0') {
digitalWrite(led,LOW);
bt.println("OK, led desligado.");
}
}
delay(100);
}

Emparelhei o bluetooth do arduino e o do meu pc e utilizei o programa puTTY para receber os dados, mas não estou a receber qualquer informação. Alguém sabe dizer o que se deve fazer para receber dados no arduino através do bluetooth?

Com que baud abriste o Putty? Abriste a porta COM correcta no teu pc que representa o Blutooth? Quando escreves algum caracter no putty este é enviado de imediato, e deves ver a piscar um led de TX no modulo bluethooth. O teu tem esse led?

Abri o Putty com o baud 9600, a porta COM que utilizo é uma que tem o nome HC-06 'Dev B' utilizo o led 13 porque é o led do arduino mini pro, mas quando digito o carácter 1 no putty não é enviado nada.

A que tensao alimentas-te o bluethooth? Sabes que ele é alimentado a 3.3V e nao a 5V certo?

o arduino que tenho é o Arduino Pro Mini 328 - 5V/16MHz, e fiz a ligação das portas GND -- G(GND), VCC -- V, 2 -- D0(TX), 3 -- D1(RX) directamente ao modulo bluetooth(HC06 Serial Bluetooth Brick)

Eu tenho alguns módulos, tanto com RX de 5v quanto com RX de 3.3v, já queimei um módulo por usar 5v no RX, hoje ele apenas transmite, no RX leio caracteres que parecem outra lingua LOL

Estás a usar 9600, é essa a velocidade padrão do módulo?

Alguns posts atrás tentava ajudar um colega e coloquei um código para identificar a velocidade via comandos AT. Serve para testar se esta respondendo aos comandos.

Estou a usar o baud 9600, o Default Baud rate do bluetooth é: 38400

Eu pretendia ligar um modulo bluetooth a um Arduino Pro Mini 328 - 5V/16MHz, é possivel indicar qual o bluetooth mais indicado?

Você pode usar esse bluetooth (e se bem me lembro, pode alimentá-lo com os 5v do regulador do próprio pró mini, se não tiver outras coisas ligadas a este pino, pois ele não é capaz de fornecer muita corrente).

Você olhou o outro tópico, testou o código que postei lá? o tópico é este: http://forum.arduino.cc/index.php?topic=212282.0

Estive a ver o tópico que indicaste, a ligação que eu fiz é:

depois testei com o codigo:

#include <SoftwareSerial.h>

const int rxpin = 2;
const int txpin = 3;
SoftwareSerial bluetooth(rxpin, txpin);

void setup(){
  Serial.begin(9600);
  bluetooth.begin(9600); // initialize the software serial port
  Serial.println("Serial ready");
  bluetooth.println("Bluetooth ready");
}

void loop(){
  if (bluetooth.available()){
    char c = (char)bluetooth.read();
    Serial.write(c);
  }
  if (Serial.available()) {
    char c = (char)Serial.read();
    bluetooth.write(c);
  }
}

emparelhei com o putty e tentei comunicar dados mas não esta a dar, não consegui perceber o que esta a acontecer de errado.

Teu módulo é igual ao do sampaiopt http://forum.arduino.cc/index.php?topic=212282.0 que também esta com problemas. o.O

Se o módulo esta configurado para 38400 e você não alterou o baudrate do médulo para 9600 (usando comandos AT), com 9600 não vai funcionar. Você já tentou "tudo com 38400"?

Ola colega vejo que inda nao resolves-te o teu problema.Eu tenho um HC-06, entao vamos lá ver o que se arranca
O meu modulo é alimentado por 3.3V, ja o teu visto ter a board de suporte onde o tens soldado deves alimenta-lo a 5V.O meu modulo por defeito vem com o baud a 9600, nunca o alterei, o teu até pode ter algo diferente, mas acredito mesmo que o tenhas a comunicaçao simplesmente no putty devia aparecer caracteres malucos e nao da forma que relatas.
Entao palpitame que o teu problema seja estares a escolher a COM do teu bluethooth errada.
Preparei te um pequeno exemplo que fiz com o meu modulo para o tentares repetir e tirares as tuas conclusoes.O meu funcionou tudo como esperado.Quando encaixo o meu bluethooth e o emparelho com o meu modulo "ganho " 2 portas COM.Tens de testar o putty em uma delas, pois uma dá a outra nao.
O que fiz foi digamos um eco entre o bluethooth e uma outra porta COM usando o FTDI232.Envio na porta COM certa do lado do Bluethooth e espero receber na outra.A comunicaçao passa pelo modulo e comprova o seu funcionamento.
Assim depois tens a certeza que o teu modulo trabalha e podes avançar para a programaçao no arduino.

Captura de ecra? 2014-02-3, a?s 21.09.12.png

Captura de ecra? 2014-02-3, a?s 21.09.26.png

Captura de ecra? 2014-02-3, a?s 21.09.38.png

Mais umas fotos :grin:
Se nao conseguires à primeira corrre no putty todas as portas do teu bluethooth.A porta que abres no putty do interface FTDI232 é facil e nao ha duvida olhando no gestor de dispositivos.A incognita é qual a COM do teu bluethooth.
Nao te esqueças que sempre que desligas a alimentaçao do modulo convem ser se ele continua emparelhado.Em caso de duvida remove-o e volta a emparelha-lo.
Testa e diz como correu

Captura de ecra? 2014-02-3, a?s 21.09.51.png

Bom dia, o exemplo que explicaste é para testar o bluetooth? e possível ligar a porta ftdi a placa bluetooth sem estar ligada ao arduino?

Não consegui perceber como fizeste o echo no putty, por onde enviaste a string?

Não consegui perceber como fizeste o echo no putty, por onde enviaste a string?

Ok vou então tentar explicar melhor. O cenário que tenho montado é: No meu pc liguei um Bluetooth externo (USB) e liguei o meu conversor FTDI232 sem o arduino(sim podes liga-lo sem o arduino). O meu modulo Bluetooth esta a ser alimentado no meu MEGA so para receber a alimentação dos 3.3V.Este ao ser alimentado difunde o seu nome.No meu pc faço a detecçao e emparelho o colocando o pin 1234. Ao emparelhar ganho duas portas serie novas. No meu caso a COM7 e COM8 Entao agora vou abrir o putty numa dessas COM ( a mim a correcta é a COM8, tens de testar com ambas) e vou escvrever no putty.Ao escrever esses dados estarão a ser transmitidos via Bluetooth onde deverão estar a sair no pino de TX do teu modulo HC-06 . Para escutar a saída do modulo liguei o pino TX do modulo Bluetooth ao pino RX do interface FTDI232. O interface FTDI232 também cria um porta serie, que eu também abri no putty para escutar o pino de TX do modulo. O resultado é o que escrevo na COM8 no putty aparece na COM 9 que é a porta do FTDI que esta a escutar o pino do modulo

Obrigado pelas ajudas e pelo tempo que disponibilizaram, fiz o exemplo que indicaste e consegui emparelhar, enviar e receber dados.

Optimo agora partes para a programaçao do arduino

Bom Dia!
Tenho um projeto com arduino mega e bluetooth hc-06. Apos ligar o arduino mega tudo funciona perferitamente, o led o bluetooth fica piscando aguardando uma conexão, e permite a cenexão com o celular android e ha o trafego normal de informação entre ambos. O meu projeto o celular não fica o tempo todo conectado ao bluetooth, sendo assim, percebi que apos um grande intervalo de tempo (1 ou 2 horas) sem conexão o bluetooth hc-06 apaga o seu led como se ele se desligasse e não consigo fazer conexão apos isso, para resolver tenho q desligar o arduino mega da fonte e religa-lo para o bluetooth voltar a funcionar.

Não sei se isso seria um defeito, pois me parece um tipo de economia, tipo se ficar um determinado tempo sem conexão ira desligar.
Por favor peço a ajuda dos senhores pois não achei nada parecido na internet, gostaria de deixar meu Bluetooth pronto aguardando para se conectar durante todo o dia.

Grande abraço a todos.

Por favor, nao coloques a mesma mensagem em dois sitios diferentes...

Se tens uma duvida, abre um post novo e coloca la a duvida e espera que alguem responda. Quantos mais posts colocares menores sao as probabilidades de receberes resposta. ;)

Provavelmente esse tópico já foi resolvido, mas vim aqui mesmo assim deixar uma observação ali, pra quem vir futuramente pesquisar, ler!

Irmão, ali você tá ligando a serial do bluetooth direto no Arduino e não pode! O HC-05 e HC-06 trabalham em TTL-LV 3.3v, você precisa jogar um divisor de tensão entre o TX do Arduino e o RX do bluetooth senão você vai queimar a porta serial do bluetooth, pois a serial do Arduino trabalha com 5v. Ali você pode montar um divisor com um resistor de 2k e outro de 1k, o de 2k jogando pro terra, a saída você joga no RX do bluetooth. Se não colocar divisor, VAI queimar, se é que já não queimou...

OBS: O divisor só se faz necessário entre a TX do Arduino e RX do bluetooth, entre o TX do bluetooth e o RX do Arduino não é necessário.