Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
26 Jan 2015 22:52
por fmatheus
Olá Pessoal,
Estou tentando fazer um projetinho para acender um LED via Android utilizando um módulo bluetooth HC-06 ligado ao PIC 16F628A
A idéia é bem simples:
- Envio através de um aplicativo criado com o APPInventor a letra 'a' para acender o LED
- Envio a letra 'b' para apagar o LED
Consigo conectar com o módulo HC-06 dentro do APP normalmente mas o LED não acende de jeito nenhum;
Já cheguei até fazer um teste utilizando um outro PIC como transmissor via serial e funcionou normalmente, entretanto quando uso o APP do Android para
enviar o comando, não funciona.
O que estou fazendo de errado
O código é este aqui
cpp code
#include "C:\Users\ASUS\Downloads\CURSOS\PIC\16F628A\COMUNICAÇAO SERIAL 2 PICS\CCS\SERIAL_RECEPCAO.h"
#use delay(clock=12000000)
//#include <16F628A.h>
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
#include <string.h>
char liga;
char desliga;
char entrada[2];
#int_RDA
void rda_isr(void){
entrada[0]=getc();
liga='a';
desliga='b';
if(entrada[0]==liga)output_high(pin_A0); //ON
else if(entrada[0]==desliga)output_low(pin_A0);//OFF
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,99, 1);
//setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(int_rda);
enable_interrupts(global);
while (true);
}
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
27 Jan 2015 09:07
por chipselect
Supondo que o código está funcional pois funciona ligado na serial em uma placa diferente, tente localizar onde está o problema, divida o sistema para localizar
1- verifique se o problema é com o HC06
teste o seu módulo hc06 pareado com o computador, alimente o módulo, faça um loopback (tx e rx ligados entre si e desligados do pic) e abra um hyperterminal.
Tudo que você enviar pelo hyperterminal ao módulo pela porta COM gerada no pareamento deverá voltar, se não receber de volta, ou está usando a COM errada, ou o módulo não está conversando com o PC, ou o módulo já era.
2- verifique se o problema é com o PIC
Faça um código de echo na serial no PIC, ou seja, tudo que ele recebe, manda de volta pela serial, se o seu hardware permitir, e ligue numa serial do PC e repita o teste com o hyperterminal do HC06 agora com o PIC. Na verdade, considerando que o pic esteja OK, esse código será usado pra testar a conversa com o HC06.
3- verifique se o problema é com a ligação entre o PIC e o HC06
Com o código de echo na serial, ligue o PIC no HC06, efetue o pareamento com o pc e repita o teste com o hyperterminal... Se não estiver conversando, mas os dois testes anteriores foram OK, então pode ser que o pino TX e RX do HC06 com o PIC estejam invertidos.
4- se tudo funcionou perfeitamente nos 3 testes anteriores, verifique se o problema é com a comunicação entre o HC06 e o Android...
Com a montagem do teste 3, baixe a aplicação Bluetooth SPP do Google Play (é algo similar a um hyperterminal para bluetooth) para Android, abra a conexão com o HC06 e repita o teste feito com o hyperterminal, agora usando o Bluetooth SPP
Se tudo funcionou, então reveja o código que faz o led piscar quando recebe algo da serial, pois o sistema de comunicação está operando normalmente. Neste caso, pegue o código do último teste e, junto com o echo, ascenda o led e teste o timer ativo junto. Também pode ser a aplicação utilizada no Android que não está OK, então tente utilizar o Bluetooth SPP para testes.
Não conheço muito o compilador que você está usando, eu usava o Hitech + Hitide (eclipse), e a serial eu fazia a configuração direta nos registradores.
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
27 Jan 2015 10:05
por andre_luis
Posso estar enganado, mas pela descrição do problema, o meu 1º palpite seria o aplicativo Android, já que ele informou que de um PIC pra outro funciona normalmente.
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
27 Jan 2015 12:26
por fmatheus
chipselect escreveu:Supondo que o código está funcional pois funciona ligado na serial em uma placa diferente, tente localizar onde está o problema, divida o sistema para localizar
O código está funcional porque já realizei um teste com um outro PIC transmitindo os comandos pela serial e funcionou normalmente.
Consigo parear e conectar com o módulo normalmente dentro do Aplicativo
Também ja fiz um teste com o Bluetooth SPP enviando os comandos manualmente e também não obtive êxito.
A minha dúvida em relação ao código é como o módulo/aplicativo está enviando os comandos e como devo tratar eles, para o caso por exemplo de em vez de esperar a letra 'a' pode estar chegando um valor em ASCII correspondente a letra, no caso do 'a' minúsculo é 97 em decimal e 61 em Hex. Mas já testei assim também e não funcionou.
Já pensei também em fazer esse teste que vc sugeriu de ligar o módulo HC-06 ao PC, para isso acredito que tenha que usar um max232 correto?
Nesse caso, ainda vou ter que usar divisores de tensão porque as linhas TX e RX do HC-06 trabalham com 3.3v.
Outra questão é se devo fazer algum cálculo e configurar algum timer para poder ajustar o valor do baud rate para trabalhar a 9600 (Veloc. padrão do HC-06) dentro do CCS.
Desde já agradeço a colaboração dos colegas aqui do fórum
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
27 Jan 2015 12:41
por andre_luis
fmatheus escreveu:Outra questão é se devo fazer algum cálculo e configurar algum timer para poder ajustar o valor do baud rate para trabalhar a 9600 (Veloc. padrão do HC-06) dentro do CCS
Em princípio, o compilador já faz isso pra voce :
- Código: Selecionar todos
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
28 Jan 2015 19:10
por fmatheus
andre_teprom escreveu:fmatheus escreveu:Outra questão é se devo fazer algum cálculo e configurar algum timer para poder ajustar o valor do baud rate para trabalhar a 9600 (Veloc. padrão do HC-06) dentro do CCS
Em princípio, o compilador já faz isso pra voce :
- Código: Selecionar todos
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
Obrigado André,
Gostaria de mais alguma dica do que pode estar errado no projeto
Algum dos colegas aqui do fórum já fez algum projeto assim?
PIC x PIC funciona certinho, ou seja, comando 'a' acende o LED e comando 'b' apaga o LED
BLUETOOTH X PIC nada acontece
Vou colocar aqui o código do Aplicativo que estou usando para aqueles que dominam o APPInventor

Esse código eu peguei de um tutorial onde o cara usa o módulo bluetooth para acender um LED utilizando o arduino
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
28 Jan 2015 20:17
por chipselect
não conheço o app inventor, mas para ter mais indícios do que pode ser, utilize o bluetooth spp, uma vez que aparentemente o problema está no software.
https://play.google.com/store/apps/deta ... P&hl=pt_BRse funcionar com esse app, você terá absoluta certeza que é o seu aplicativo.
Editado:
Segue um vídeo que encontrei no youtube:
https://www.youtube.com/watch?v=XqxV9QOqkiI
Re: Módulo Bluetooth HC-06 + PIC 16F628A

Enviado:
28 Jan 2015 20:33
por fmatheus
chipselect escreveu:não conheço o app inventor, mas para ter mais indícios do que pode ser, utilize o bluetooth spp, uma vez que aparentemente o problema está no software.
Pois é mas como disse anteriormente já testei com o Bluetooth SPP e também não fuciona