Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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
  • Autor do tópico
  •  

    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.

    Editado por Bommu Perneta

    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
  • Autor do tópico
  • 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
  • Autor do tópico
  • 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

    Colocou na porta RB4 o led? Vou fazer um teste aqui no meu simulador.

     

    adicionado 8 minutos depois

    Ops... corrigindo RB4

     

    ^^

    Editado por Bommu Perneta

    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...

    Editado por Bommu Perneta

    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

    Editado por Bommu Perneta

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Na verdade eu ainda não testei com esse resistor, amanhã vou fazer o teste. Hj eu estou sem tempo. 

    Mas sobre os fusiveis,  como eu desabilita eles ou habilito? Pra q servem?

    Editado por Oziel Rossow da Silva

    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...

    Editado por Bommu Perneta

    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






    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

    ×