quarta-feira, 28 de outubro de 2015

Controle PWM via Bluetooth - Microcontrolador Pic16F628A



    Aplicação:

    Este projeto tem o objetivo de utilizar a comunicação wireless através do módulo Bluetooth HC-05 e com isso, trocar dados  com o microcontrolador da Microchip (Pic 16F628A) para se obter o ajuste da modulação de largura de  pulso (PWM), criando-se um controle desejado sobre a carga. Sendo aplicado em projetos que envolvam semicondutores como: TBJ, MOSFET, TRIAC e C.Is como no caso do C.I L298N por exemplo. E com isso, podemos controlar: motores, servo-motores e controle de iluminação a led.
     Os comandos feitos através do aplicativo S2 Terminal no Smartphone, sendo compostos dos caracteres:
  • "H" ou "h" irá aplicar  um PWM com a eficiência sobre a potência de 99% e aparecerá no display do smarphone "POTENCIA MAXIMA!";

  • "P" ou "p" irá aplicar  um PWM com a eficiência sobre a potência de 75% e aparecerá no display do smarphone: "POTENCIA APROX:75%"     
   
  • "M" ou "m" irá aplicar  um PWM com a eficiência sobre a potência de 50% e aparecerá no        display do smarphone: "POTENCIA APROX:50%"  
     

  •  "L" ou "l" irá aplicar  um PWM com a eficiência sobre a potência de 25% e aparecerá no             display do smarphone: "POTENCIA APROX:25%"   

  • "+" aumentará gradativamente o nível de modulação, o usuário selecionará manualmente os níveis de eficiência sobre a potência e aparecerá no display do smarphone: "AUMENTANDO POTENCIA:"   e os valores em decimal de sua resolução de 10 bits, ou seja, 0 à 1023 A cada comando deste ligará ou desligará o led amarelo;
     
  • " - " diminuirá gradativamente o nível de modulação, o usuário selecionará manualmente os níveis de eficiência sobre a potência e aparecerá no display do smarphone: "DIMINUINDO POTENCIA:"   e os valores em decimal de sua resolução de 10 bits, ou seja, 0 à 1023. A cada comando deste ligará ou desligará o led verde;

  • "0" (zero)  desligará o sistema da modulação e aparecerá no display do smartphone: "SISTEMA DESLIGADO!". O programa começa nesta etapa.
   
    Se enviar quaisquer caracteres diferentes do que vimos acima, aparacerá no display do  smartphone: "Comandos:H,P,M,L,0=DES,+,-".

         O resultado do PWM será visto através do  led vermelho.




     Componentes:

     4 resistores 1/4 W %5 (330R);
     1 resistor 1/4 W %5 (560R);
     1 resistor 1/4 W %5 (10k);
     2 capacitores de cerâmica (22pF ou 33pF);
     1 cristal oscilador (4MHz);
     1 chave tactil;
     1 led tipo fosco amarelo (3mm);
     1 led tipo fosco verde (3mm);
     1 led tipo fosco vermelho (5mm);
     1 microcontrolador Pic 16F628A;
     1 Módulo Bluetooth (HC-05 ou HC-06);
     1 Gravador compatível com a família Microchip (Pickit2, ICD2 e etc);
     1 Smartphone ou Tablet com o aplicativo S2 Terminal para Bluetooth instalado;

     


     Esquema Elétrico:


     
  



     Obs: O módulo HC-05 no esquema foi criado por mim, não é componente do Protheus!

    
     Descrição:

     O funcionamento deste projeto, seguiremos as etapas em cada bloco da figura abaixo:



     




      O Smartphone como  CPU que irá enviar e receber dados através da rede sem fio, utilizando a tecnologia Bluetooth e com um aplicativo especial pra acessar o terminal de entrada e envio de dados via  serial RS 232, logicamente o mesmo tipo de comunicação de dados que o módulo Bluetooth  HC-05 opera.
     
        No link abaixo, podemos ver teoricamente o funcionamento do protocolo RS 232  e suas evoluções com o passar dos anos.      

        Comunicação RS 232, 422 e 485

     
        Na prática temos que analisar:


  • A tensão de operação de cada dispositivo que estará no barramento, por exemplo, neste caso o Pic funciona com as taxas máximas TX e RX de 5Vcc diferente do módulo HC-05 que funcionará com a máxima de 3,3Vcc por isso que aplicaremos os resistores R5 e R6 para igualarmos a tensão de transmissão. No caso de outros dispositivo teremos que montar drivers mais sofisticados para executar uma boa transmissão, como no caso da porta serial do nosso computador que opera com o barramento na faixa de  +15Vcc e -15Vcc;

  • O comprimento do barramento, na norma, limite dos fios de 15 m de comprimento, não se aplicará aqui porque utilizaremos a rede wireless. Precisando só analisar a distância do sinal do módulo;



  •  O emissor possui a pinagem TX e o receptor com a pinagem RX : dispositivo A pinagem = TX para pinagem RX do dispositivo B,  no dispositivo B pinagem = TX para pinagem RX   do dispositivo A;  

  • A parte virtual, ou seja, o software usado para interface dos dois dispositivos. Neste projeto o aplicativo S2 Terminal Bluetooth utilizando a CPU do Smartphone que enviará os dados e controlará o acionamento do microcontrolador Pic 16F628A com o firmware desenvolvido na linguagem C do compilador CCS Pic;

   

            
       A Tecnologia Bluetooth:


    Resumidamente é um tecnologia  sem fio de padrão global que funciona através de ondas eletromagnéticas de rádio frequência de curto alcance, permitindo que o dispositivo detecte o outro independente de suas posições e que ambos estejam no limite de alcance necessário para o reconhecimento dos aparelhos a serem conectados. Sua frequência por ser padronizada, é de 2,4 à 2,5 GHz. 
       As classes desta tecnologia serve para definir o raio de alcance do hardware:

  •       Classe 1: potência mávima de 100mW e alcance de 100m; 
  •       Classe 2: potência máxima de 2,5mW e alcance de 10 m;
  •       Classe 3: potência máxima de 1mW e alcance de 1 m;

     
       Para mais detalhes acessem:

       O que é Bluetooth? Como surgiu e como funciona?




      Módulo HC-05:

     Trata-se de um dispositivo muito utilizado para projetos desde simples aos mais avançados. São muito populares nas comunidades do Arduino. Se encaixa na classe 2 como vimos acima. Neste projeto ele será a ponte que transitará os dados entre o Smartphone e o Pic, convertendo as ondas RF do Bluetooth no barramento RS 232.

      No link abaixo está seu manual completo:

      Manual Módulo HC-05


     
      Controle:

     Através de um sistema microprocessado utilizando o Pic 16F628A que irá interpretar os caracteres enviados pelo aplicativo S2 Terminal do Smartphone e com isso executará diversos níveis de modulação de pulso. Nesta etapa é necessário entender o conceito dos comando no barramento RS 232 e em seguida do PWM.


      Comandos pela Serial RS 232:
   
     Os comandos que usamos no programa: "H, h, P, p , M, m, L, l, +, - e o 0" são codificados em binário e interpretado segundo a Tabela ASCII. Por exemplo, seguindo a tabela o carácter "H"  será: 01001000b , 48 em hexadecimal e 72 em decimal. Basta consultarmos a tabela para sabermos para os outros caracteres.

      Para mais detalhes prático vejam no vídeo:

      https://www.youtube.com/watch?v=btcEa1mmxKo

      Para visualização ou download da tabela ASCII:

      Tabela ASCII



      Modulação de Largura de Pulso (PWM):

     O Pic 16F628A possui somente um canal de PWM, o pino RB3, no qual é identificado pelas siglas:  CCP1 (Capture, Compare, PWM). De forma geral, o microcontrolador gerará pulsos de resolução de 10 bits de aproximadamente 5Vcc em um certo tempo, com isso denominamos Duty Cyclo (Ciclo de Dever ou no popular Ciclo de Trabalho). A potência média da carga dependerá disso.

       O período do PWM neste projeto será:

       Período(pwm) = (PR2+1) * (1/(Fosc/4)) * (Prescaler Timer2)

       Período(pwm) = (249+1) * (1/(4MHz/4)) * 1

       Período(pwm) = 250 micro segundos;

       Então A frequência do PWM será:

       F(pwm) = 1/(250us)
    
       F = 4 kHz;


       Onde:

       Prescaler: tem a função de definir o número de vezes que um determinado evento deve ocorrer, antes do registrador ser incrementado. Para o Timer2 o prescaler é de até 1:16 nescaso estamos utilizando 1:1.
       
       Fosc :  Frequência do Cristal Oscilador Externo;
     
      O PR2 (Registrador de Período 2) e o  Prescaler são configurados na programação CCS Pic C para o uso do Timer 2 que é contador de 8 bits.

        Nos links abaixo teremos as explicações mais detalhas dos Timers do Pic e o Duty Cycle e o datasheet do microcontrolador:

       Mais sobre o Duty Cycle

       Timers no CCS Pic C

       Pic 16F628A datasheet


         

        Conclusões:

    O projeto está funcionando perfeitamente, nos limites de alcance do módulo HC-05. Como a programação do protocolo RS 232 está configurada com a interrupção, ou seja, toda vez que trocar dados ocorrerá um estouro que incrementará uma função no sistema, deixando o processamento dos dados mais eficaz.
     
      O único erro que ocorre é quando o smarthphone esquenta, gera alguns erros nos caracteres das mensagens recebidas no aplicativo S2 terminal, mas nada no funcionamento do PWM.

      Para melhorar este projeto, poderíamos trocar o módulo por outro de melhor qualidade e alcance e usar outro microcontrolador com mais canais CCP e com mais memória RAM. O ideal também, seria criar um aplicativo no APP Inventor para utilizarmos de forma mais dinâmica.
     
       

        Firmware:

        Download-BPWM

        

         Vídeo Teste:
     
  

     


    

Nenhum comentário:

Postar um comentário