Ir ao conteúdo
  • Cadastre-se
Oziel Rossow da Silva

Não consigo programar me módulo hc 05 via pic 16f628a

Recommended Posts

Olá! Gostaria q alguém me auxiliasse, comprei um módulo bluetooth hc 05 pensando q era só programar o pic pra trabalhar com ele pronto, mas descobri q vai além disso, ele também deve ser programado e até onde eu sei o próprio pic pode programa lo , mas com os tutoriais q vi nenhum consegui assimilar bem e não deu certo! Então alguém poderia me dizer como programar meu hc 05 com pic 16f628a eu uso mikro c para programar 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para programar ele você procurar por  bluetooh circuit AT Commands HC 05

Vai ser algo como isso aqui

http://www.instructables.com/id/AT-command-mode-of-HC-05-Bluetooth-module/

 

Mas essa programação AT é só para mudar configurações do módulo, como velocidade, senha e nome (caso você tenha mais de um). Não é super necessária se você só quer fazer testes nele e escrever algumas coisas no serial...

 

Agora para usá-lo é só tem duas configurações você ligar ele no RX TX do teu microcontrolador ou usar, através de software, as portas digitais de teu mic para transformá-las em seriais (isso se faz com uso de uma biblioteca SoftwareSerial para teu pic). Se quiser você também pode usar alguma biblioteca para usar o mesmo(mas depende se o que você está atrás não está presente só usando a comunicação serial)... Atentar também que , neste último caso, que nem todas as portas digitais servem para a comunicação serial e além disse tem problema de velocidade...

 

Se não entender nada de inglês você pode tentar usar o google tradutor ou achar algum tutorial sobre o assunto em português... Qualquer coisa pergunte... mas fica ruim coisa do tipo "não sei nada me ensina do zero" ^^ Arranje um esquema e faça as perguntas.

 

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Pela atenção! Quer dizer q com as configurações de fábrica do hc 05 ja são suficientes pra realização de alguma tarefa no 16f628a?

Porque eu não consegui nada até agora.

Na verdade eu quero montar um circuito q leia cararacteres como,  EX:"A" e coloque por exemplo a PORTARA1 EM NÍVEL LÓGICO 1. Da pra fazer?

Poderia me passar o código pronto pra eu ver onde estou errando? Eu utilizo o mikroc não me familiarizo com outros compiladores 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, só a configuração básica já dá para usar o modulo, sem precisar nada mais... a senha é 1234, normalmente e nome do módulo é HC05 ou coisa do gênero na rede de bluetooth.

 

Sim, dá para fazer o que você quer... só escrever no serial, tem programas até para o windows na loja só procurar bluetooth serial na loja que tem no teu pc ^^

 

Sobre o circuito, você não falou o nome do teu pic para eu procurar exemplos de montagem ^^

Tipo isso:

image-f69bb9d8267b4d6e9e11f1ce519c01ed.p

No caso acima se for um standalone ou pode ser diferente se você usar circuito de desenvolvimento para pic que é um circuito já com porta USB para programar.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu pic 16f628a,  mas além do diagrama eu precisava do código q faz o led acender com o envio do carácter "a" pra mim estudar ele. Pois eu já vi algunalguns tutoriais no YouTube mas nenhum funcionou. Temo q meu módulo esteja com problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só ligar módulo sozinho no 5v e no terra com um regulador de tensão de 5V, só ai ele liga sozinho e você pode tentar conectar nele com teu aparelho... Eu já tive amigos que não conseguiram ligar no bluetooth e ele usava um iPhone... também não sei se era pirata... mas outro colega com Android e no meu tablet funcionava. 

 

Só de conectar/parear com o módulo já dá para ver se ele está bom ou pelo menos se comunicando... Depois de confirmar isso, me passa o link do tutorial que você viu X)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Esse vídeo ensina a inserir comandos at no módulo com o pic

 

Sim eu conecto ele com meu celular. já montei  ele com o pic só q eu utilizei um aplicativo de celular bluetooth serial pra enviar comandos para o modulo e o modulo eniar para o pic, mas sem êxito. 

 

Eu cheguei a conectar o rx  do módulo bluetooth com o tx do pic sem divisor de tensão, será q pode ter queimado a entrada. Mas estou enviando comandos deveria funcionar mesmo assim

adicionado 19 minutos depois

Agora estou sem tempo, mas assim que puder eu vou montar o projeto q não tive êxito,  com diagrama esquemático e o código,  e também as dúvidas,  creio q assim fica mais fácil para as duas partes

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu colega* colocava direto o HC05 dele, sem divisor de tensão... mas já vi que vários indicam colocar o divisor e eu tenho que concordar já que o fabricante diz que a entrada é de 3,3V. Mas queimar na hora não vai, pode reduzir a vida útil do mesmo.

 

Esse vídeo ai em cima é para os comandos AT. O led que ele coloca para piscar é só para indicar o final da linha de comando, só um indicador e não é o que você quer fazer ^^

 

Um exemplo mais com funções a mais além de só ligar e desligar o led, tentai ai

http://microcontroladores-c.blogspot.com.br/2015/08/bluetooth-com-pic-16f648a.html

Esse exemplo ai de cima é um exemplo meio misturado... o cara aproveitou um exemplo gringo... alguns funções não tem utilidade X)

 

Não achei um exemplo direto nesse pic... mas deve obedecer o mesma ligação de outros pic... o Pino Rx do módulo ligado no Tx do pic e o Tx do módulo ligado no Rx do pic. Fazer o divisor de tensão igual é feito no arduino para evitar problema e pronto. Da parte de código só colocar um if para ler o serial e de acordo responder ligando e desligando o led...

 

Se não conseguir, fala que eu ou outro pode fazer algum circuito e código para você, mas só em casos mais extremos*     ^^

 

 

adicionado 0 minutos depois

ah... o modulo provavelmente está bom, já que está ligando... só falta confirmar um comunicação serial nele para ver se funciona... X)

adicionado 7 minutos depois

Uma ligação "típica" mas ai o cara controla por PWM

 

http://blogareadeteste.blogspot.com.br/2015/10/controle-pwm-via-bluetooth.html

adicionado 18 minutos depois

Olha aqui montado, com problema, mas foi resolvido pelo povo do forum... (esta em espanhol acredito eu ^^)

 

http://www.forosdeelectronica.com/f24/pic-bluetooth-celular-pic-basic-pro-detallado-102926/

 

Enfim...dá uma pesquisada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu usei era 9600. ^^

 

Escolha a velocidade que você quiser e que não dê erro... ou pelo menos o que você aceitar... para aumentar a velocidade quando começa a dar muito erro é aumentar o cristal externo para mais Hz. Tem um continha para fazer o máximo baud no serial ... mas basicamente o povo testa com a velocidade que dá e ajusta o que puder para ter mais estabilidade em maiores velocidades.

 

Algumas atividades necessitam de maior comunicação para serem viáveis ... mas acender um led não é uma delas no que você pede ^^ 9600 tá bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Eu peguei um código pronto na internet q devolve pra o celular tudo q o celular envia. Ou seja o microcontrolador só ecoa. Pra testar o módulo bluetooth 

 

Mas quando eu envia o carácter "a" ele me devolve "z", por exemplo. 

 

Será q o problema ta no baudrate? 

Ou é outra coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo é esse:

 

char uart_rd;
void main() 
{

  uart1_init(19200);              
  delay_ms(2000);                 

  uart1_write_text("start");


  while (1) 
  {
    if (uart1_data_ready()) 
    {
      uart_rd = uart1_read();    
      uart1_write(uart_rd);      
      
    }
  }
}

 

o problema de comunicaçao estava no baudrate q estava em 9600 no codigo acima, mudei para 19200 e funcionou certinho.

 

agora a pergunta: tenho q mudar muito o codigo acima, pra apenas acender um led com "a" e apagar com "b"? o led esta em rb5

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
 char uart_rd;
void main() 
{

  uart1_init(19200);              
  delay_ms(2000);                 

  uart1_write_text("start");
 TRISB=0; //todas portas B são saídas
  PORTB=0; //valor inicial das portar B em valor LOW

  while (1) 
  {
    if (uart1_data_ready()) 
    {
      uart_rd = uart1_read();    
      if (uart_rd=='b'){portb.f4=1;delay_ms(500);portb.f4=0;} //lê o valor e se for igual a 'b' ele liga a B4 por 500ms 
      //e desliga a porta B... vai acender uma vez e desligar
      uart1_write(uart_rd);
      
      
    }
  }
} 

Não sou acostumado muito com o pic ^^ vê se não dá erro ai , se tiver erro aviso que testo aqui no meu simulador, não testei o código fiz de cabeça huauhauha

adicionado 11 minutos depois

Se funcionar avisa que é só fazer pequenas modificações para fazer o que você quer ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode colocar tanto como portb.f4 ou portb.b4... Seria a porta 4 do port B que é a porta 4 .

 

É uma porta aleatória que coloquei... poderia de B0 a o número total que você tem ai na porta B5.

 

então se quer fazer ligar digitalmente a porta b0 pode ser dado pelo comando PORTB.B0;   ou PORTB.F0

ou variações... o que seu dispositivo aceitar... dá para ver pelo datasheet.

Compartilhar este post


Link para o post
Compartilhar em outros sites
char uart_rd;
void main() 
{

  uart1_init(19200);              
  delay_ms(2000);                 

  uart1_write_text("start");
 TRISB=0; //todas portas B são saídas
  PORTB=0; //valor inicial das portar B em valor LOW

  while (1) 
  {
    if (uart1_data_ready()) 
    {
      uart_rd = uart1_read();    
      if (uart_rd=='b'){portb.f4=1;delay_ms(500);portb.f4=0;delay_ms(500);} //lê o valor e se for igual a 'b' ele liga a B4 por 500ms 
      //e desliga a porta B... vai acender uma vez e desligar
      uart1_write(uart_rd);
      
      
    }
  }
} 

Dei uma ajeitada, colocando um tempo de delay de 500 ms para gerar a onda quadrada e está funcionando aqui na minha simulação pelo menos a parte lógica.

 

Vê se funciona ai... porque já revisei isso olhe datasheet e não to vendo erro ainda

 

justo.PNG.663166ab94dd4f7020bdd464d7cb9304.PNG

 

ignore esse carinha Rx e Tx ai do lado finja que ele é o teu módulo bluetooth.

adicionado 5 minutos depois

escreva b e envie... com uma se possível com uma nova linha (usando o teu celular)

 

ou mande duas vezes o b em dois tempos diferentes e avise no que deu... Qualquer coisa pesquiso mais ainda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

---OFF tópico---

 

Vamos ver se resolvemos esse problema ^^ minhas férias terminam segunda feira e vou ficar sumido daqui  ^^ Apesar de ter gente bastante competente aqui para cuidar desses códigos mais simples ^^

 

Enfim... seria muito bom você mostrar um desenho do teu circuito junto como você está alimentando o mesmo, pois no desenho ai em cima não tem isso (mostrando o regulador de tensão e os capacitores). você também não mostrou os fuses que está usando no teu programador...

 

fuizzzzz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os fusíveis só dar uma leitura no datasheet do pic para ver para que servem... cada um ativa/desativa uma propriedade diferente. você pode adicioná-los por linha de comando ou via opções no menu do mikroC Pro, por exemplo.

3.png.e3e2a39ee06010ad048044fdef060306.png

2.PNG.cd3e007ff08139b73278b9d1c38d280e.PNG

a primeira opção Oscillator você troca entre os tipos de ociladores do pic, podendo ser interno ou externa. Watchdog normalmente se desabilita quanto você está lidando como um timer1 por exemplo (interrupt)... de cabeça não recordo muito bem para que serve o power up timer mexe com o reset e outras coisas ... RE3/MCLR você pode desabilitar o mesmo para funcionar como pino digital ou habilitar para ter um botão reset... e por ai vai ... só copiar o nome dar um ctrl+f no pdf do datasheet do pic que você acha cada termo e o que cada um faz...

 

 

Nos mantenha informados sobre seu progresso... Eu estou lhe ajudando aqui porque até onde sei ainda está no limite da minha habilidades, se passar por esse nível em um level muito alto eu prontamente desisto peço ajuda.

 

Não crie outros tópicos sobre o assunto... acredite ou não tem gente além de mim olhado os tópicos e gente muito boa... Enfim. Esperando os resultados de amanhã ^^

adicionado 25 minutos depois

ah essas fotos ai em cima são do pic P16f883 (é de outro tópico que estava tratando além do seu) o teu é diferente um pouco... mas é a mesma lógica... olha no datasheet. Enfim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×