Frequencímetro digital com a utilização de microcontrolador PIC Ivair Teixeira Graduado em Ciência da Computação - FAV Professor das Faculdades de Valinhos e-mail: ivairt@yahoo.com.br Janaine Cristiane de Souza Arantes Mestre em Ciência da Computação - UFSCar Coordenadora do curso de Ciência da Computação das Faculdades de Valinhos e-mail: janaine.arantes@unianhanguera.edu.br Jeancarlo Macedo Graduado em Ciência da Computação - FAV Professor das Faculdades de Valinhos e-mail: jean.toko@gmail.com Resumo A eletrônica digital evoluiu rapidamente nos últimos anos. Essa evolução foi alavancada com o surgimento dos microcontroladores, que possibilitou a criação de novos e modernos equipamentos. Esses dispositivos estão cada vez mais presentes no cotidiano das pessoas e podem ser encontrados nas mais diversas aplicações, desde simples brinquedos até sistemas avançados de segurança. O objetivo deste trabalho consiste na implementação de um frequencímetro digital de baixo custo, portátil e fácil programação. Esse frequencímetro foi desenvolvido com a utilização de um microcontrolador PIC (Periferal Interface Controller), um dos modelos que mais se destaca atualmente, devido à facilidade de aquisição, relação custo/benefício e ampla literatura. Para a sua implementação, foi realizada uma análise comparativa entre dois frequencímetros já implementados, um com base em hardware e o outro voltado para software. Esse equipamento contempla não somente as vantagens dos frequencímetros analisados, mas também agrega novas funcionalidades. A montagem voltada para software mostrou ser uma solução simples e viável. Com um número diminuto de componentes e ligações foi possível criar um equipamento de baixo custo, ótima estabilidade e consumo irrisório de energia devido à interface de visualização da frequência em LCD (Liquid Crystal Display). Palavras-chave: frequencímetro, microcontroladores, PIC, LCD. 168 Introdução Atualmente, tem ocorrido uma grande evolução na área da eletrônica digital. Os microcontroladores surgiram para alavancar essa evolução e cada vez mais pessoas têm acesso a essa tecnologia, seja como usuário ou desenvolvedor. Os microcontroladores já fazem parte do cotidiano das pessoas e podem ser encontrados em brinquedos, fornos de microondas, máquinas de venda automática, telefones, celulares, dentre outros equipamentos. Uma infinidade de aplicações com diversos graus de complexidade pode ser elaborada com microcontroladores. O objetivo deste trabalho consiste na implementação de um frequencímetro digital com poucos componentes externos, baixo custo e consumo reduzido de energia. Para a implementação desse frequencímetro, realizou-se uma análise comparativa com dois frequencímetros já desenvolvidos, um com base em hardware e o outro voltado para software. Essa análise permitiu o levantamento dos pontos positivos e negativos de cada um deles. Dessa forma, subsídios foram obtidos para a criação de um frequencímetro simples, capaz de
expandir as vantagens encontradas nos frequencímetros analisados, bem como permitir a inserção de novas funcionalidades. Dentre os vários fabricantes e modelos existentes, optou-se pela utilização do microcontrolador PIC16F628 da Microchip Inc, por ser um componente de baixo custo, fácil aquisição e com características que superam as necessidades do projeto proposto. Este artigo está organizado da seguinte maneira. A seção 2 faz uma breve revisão da literatura, que explora dois tipos de frequencímetros: um com base em hardware e o outro voltado para software. A seção 3 descreve o PIC, com ênfase na sua estrutura interna. A seção 4 mostra a metodologia empregada na montagem e desenvolvimento do frequencímetro digital. A seção 5 apresenta os resultados obtidos neste trabalho. Por fim, a seção 6 relata as conclusões, bem como propostas de trabalhos futuros. Revisão de Literatura Um frequencímetro é um instrumento de bancada de grande utilidade que capta uma oscilação, ou uma sequência de pulsos, e exibe a sua frequência. Ele simplesmente acumula a quantidade de alternâncias entre um valor de tensão positivo e negativo durante um segundo e apresenta esse número em uma interface de visualização. Para entender melhor o funcionamento de um frequencímetro é indispensável conhecer o conceito de onda mecânica / eletromagnética. o tempo de um ciclo completo da oscilação. Uma outra variável de igual importância é a frequência, utilizada para indicar a repetição de qualquer fenômeno ou evento em um determinado tempo. A unidade de medida da frequência é o Hertz (Hz), em honra ao físico alemão Heinrich Rudolf Hertz (TANEMBAUM, 2003). Portanto, a frequência é expressa em Hz e representa o número de oscilações em um segundo. Conforme pode ser observada na Figura 2, essa oscilação assume valores de tensão positivos e negativos em um determinado intervalo de tempo, neste caso um segundo. Onda Mecânica / Eletromagnética Existem as frequências que podem ser ouvidas como o som, e existem as que podem ser vistas, como a luz. O frequencímetro proposto neste trabalho utiliza baixas frequências, conhecidas como áudio. Porém, para todo o espectro de frequências 1 aplica-se a mesma definição de onda, seja ela mecânica ou eletromagnética. O tipo mais simples de frequência é o sinal periódico, no qual um padrão se repete ao longo do tempo. Um exemplo de sinal periódico é a onda senoidal (STALLINGS, 2005). Uma onda pode ser definida como um pulso energético que se propaga através do espaço ou de um meio. Na Figura 1, são exibidas algumas variáveis utilizadas para descrever uma onda, tais como: comprimento (ë) definido pela distância entre dois pontos de máximos, amplitude (A) dada pela medida escalar da magnitude de oscilação e período (T) que representa Com o intuito de facilitar o entendimento do texto, a parte superior da onda representa uma tensão positiva, denominada como nível 1, enquanto a parte inferior indica uma tensão negativa, chamada de nível 0. A alternância desses níveis de tensão é designada como transição de nível. Essa característica de alternar a tensão pode ser facilmente detectada por uma porta de entrada do microcontrolador ou de um circuito integrado contador e convertida no número de oscilações que ocorreram em um segundo. Hardware versus Software Existem basicamente duas maneiras de 169
implementar um frequencímetro: uma montagem com base tipicamente em hardware, que emprega circuitos integrados e displays comuns, e uma montagem voltada para software com a utilização de um microcontrolador. Frequencímetros Digitais Atualmente, existem várias implementações de frequencímetros, com diversos graus de complexidade. Dentre eles, podem-se citar: Frequencímetro/Contador de 7 Dígitos com a utilização de microcontrolador (PEREIRA, 2002), Frequencímetro Digital com a utilização de circuitos integrados discretos (TOBALDINI, 2006). tamanho das ligações entre as pastilhas. A montagem do frequencímetro em uma placa de protótipos é apresentada na Figura 3, que visualmente está dividida em 5 módulos: (A) memorização e exibição dos contadores, (B) contagem do sinal de entrada, (C) seleção da divisão utilizada para o sinal e divisores de frequência, (D) máquina de estados e (E) relógio da máquina de estados. Frequencímetro/Contador de 7 Dígitos com a Utilização de Microcontrolador O trabalho de Pereira (2002) apresenta um frequencímetro/contador digital de 7 dígitos que mede frequências de até 40 Mhz e conta pulsos ou eventos até 9.999.999. Neste projeto, são utilizados apenas um microcontrolador PIC16F627 e os 7 displays do tipo catodo comum. O funcionamento é bem simples, ou seja, o sinal a ser medido é aplicado à entrada de clock externo do Timer 1 2. Isso faz com que ele conte a quantidade de pulsos externos. A contagem do Timer 1 é inicializada em 55536 e a cada estouro da sua contagem (10000 contagens), a variável FT4 é incrementada. Essa variável é zerada quando o seu valor for igual a 10 e a variável FT5 é incrementada. Novamente, a variável FT5 é zerada quando o seu valor for igual a 10 e a variável FT6 é incrementada. Se o valor de FT6 for igual a 10, o Timer 1 é reiniciado na sua contagem inicial (55536 decimal) e todas as variáveis de contagem são zeradas. Como frequencímetro, a contagem é totalizada a cada segundo, todos os displays recebem o valor da contagem atual e os contadores são reiniciados do zero para uma nova medição. Já como contador de eventos, a contagem nunca é zerada e o valor mostrado no display indica a quantidade de pulsos recebidos desde a execução do último reset no sistema. 170 Frequencímetro Digital com a Utilização de Circuitos Integrados Discretos O trabalho de Tobaldini (2006) mostra um frequencímetro digital montado em uma placa de protótipos, para facilitar o seu uso e a diminuição no Três contadores decimais de 4 bits (74160) ligados em série são utilizados para efetuar a contagem de 0 até 999. Esse valor é transferido diretamente para um decodificador BCD-Sete-Segmentos para a exibição. Uma máquina de estados feita com contador hexadecimal de 4 bits fornece os sinais externos para a habilitação da contagem, o reset dos contadores e o clock. Microcontrolador versus Microprocessador Segundo Teixeira (2005), um microcontrolador possui diversos periféricos em um mesmo chip, tais como: memórias de programa e de dados, geradores de clock, portas de entrada e saída, dentre outros. Já um microprocessador, apesar de possuir uma capacidade de processamento superior, necessita desses periféricos externamente. Atualmente, existem vários fabricantes de microcontroladores. São eles: Atmel, Fujitsu, Intel, Microchip Inc, National Semiconductor, Texas Instruments, Philips Semiconductors, Motorola, dentre outros.
Microcontrolador PIC Segundo Souza (2003), o microcontrolador PIC pode ser definido como um componente eletrônico que possui uma memória interna, na qual pode ser gravada uma seqüência de instruções ou comandos estruturados na forma de um programa. Esse componente pode ser programado em linguagens de alto nível, como, por exemplo, C, Basic, Pascal, e até mesmo em uma linguagem mnemônica como o Assembly. Um programa para PIC recebe o nome de firmware e é transferido do microcomputador para a memória do dispositivo através de um hardware de gravação. Estrutura Interna do PIC Teixeira (2005) descreve em seu trabalho que o PIC possui todos os componentes necessários para utilização em sua estrutura interna. Em um único chip engloba memória flash para o armazenamento de programa, memória volátil para os dados em tempo de execução, memória não-volátil para a persistência de dados, portas de entrada e saída, contadores, watchdog, conversor analógico-digital, comunicação serial em hardware. Todas essas características fazem do PIC um componente independente. Materiais e Métodos Esta seção descreve a implementação de um frequencímetro de áudio de baixo custo e ótima precisão com pouquíssimos componentes externos. Ambos os projetos descritos na seção 2, utilizam o display de 7 segmentos como interface de visualização da frequência medida. Isso incide em dois problemas, que são: o alto consumo de energia e a dificuldade de implementação da placa de circuito impresso 3, devido ao elevado número de ligações. É importante ressaltar que a dificuldade de desenvolvimento da placa de circuito impresso é diretamente proporcional ao número de componentes utilizados. O trabalho proposto apresenta uma solução para os problemas mencionados anteriormente, através da implementação do mesmo tipo de equipamento com a utilização de um microcontrolador PIC e um display LCD. Frequencímetro Digital com Display de LCD Esse frequencímetro foi desenvolvido com a utilização de um microcontrolador PIC, no qual o firmware cuida do processo de contagem dos pulsos, sem a necessidade de vários circuitos integrados contadores e decodificadores. Uma das vantagens da utilização de microcontroladores é a facilidade de comunicação com LCD, que é uma interface eficiente e econômica para a exibição da frequência. O microcontrolador escolhido foi o PIC16F628 da Microchip Inc, um componente de baixo custo, fácil aquisição e com características que superam as necessidades do projeto proposto neste trabalho. Porém, uma característica marcante desse fabricante é a portabilidade, que permite migrar o código facilmente para os diversos modelos existentes. As conexões de entrada e saída desse PIC são disponibilizadas por dois conjuntos de oito portas, denominados porta e portb. Cada port pode ser acessado individualmente, utilizando-se a sintaxe nome_do_port, pino, por exemplo, portb, 3. Nessa implementação, o portb é utilizado para a comunicação com o LCD na exibição da frequência (MICROCHIP, 2007). A entrada de frequência ocorre por um dos pinos do porta, mais especificamente, o porta, 5, que a partir de agora será referenciado simplesmente como pino de entrada. Quando o componente é energizado, o programa entra em execução e uma rotina apresenta no LCD a frase: FREQUENCÍMETRO DIGITAL. Após essa apresentação, o LCD é apagado e o frequencímetro entra em funcionamento apresentando a frequência medida em cinco dígitos alinhados à esquerda do mostrador. Cinco variáveis (D1 a D5) foram criadas para armazenar a frequência, que são incrementadas em cascata. Cada uma dessas variáveis armazena um dos dígitos que serão apresentados no LCD. O funcionamento básico da contagem consiste em um algoritmo que permanece em laço na rotina principal, verificando se houve uma transição de nível no pino de entrada. Na ocorrência dessa transição, a variável D1 é incrementada e passa por um teste para verificar se atingiu o valor 10. Caso não tenha atingido esse valor, a execução retorna para a rotina principal aguardando uma nova transição de nível. Porém, se a variável atingiu o valor 10, ela é iniciada com zero e a variável D2 é incrementada, e assim sucessivamente, acumulando a contagem nas cinco variáveis. Na Figura 4a, é mostrado um fluxograma da rotina principal do firmware. A cada segundo, o valor acumulado nas variáveis 171
é transferido para o LCD atualizando a exibição da frequência. Para obter o intervalo de atualização do LCD é explorado um poderoso recurso do PIC denominado interrupção por transbordamento do Timer 1. O Timer 1 foi configurado para ser incrementado automaticamente pelo hardware a cada oito microssegundos, portanto, atinge sua máxima capacidade em 524.280 microssegundos. Esse contador é inicializado com o valor 24.280, forçando um transbordamento a cada 500.000 microssegundos. Quando isso ocorre, é gerada uma interrupção no dispositivo. Essa ação pausa a execução do código, desviando-a para uma rotina de tratamento de interrupção. Nessa rotina, existe uma lógica que a cada duas interrupções (1.000.000 microssegundos) chama a rotina que atualiza o LCD com o valor acumulado nas variáveis. Após a atualização as variáveis são inicializadas com zero, o Timer 1 com 24.280 e a execução retorna para a rotina principal. Essa sequência é exibida no fluxograma apresentado na Figura 4b. O diagrama esquemático do frequencímetro é apresentado na Figura 5. Ele contém o PIC, o cristal oscilador, um LCD e dois resistores para o controle de contraste do LCD. Resultados e Discussão Foi realizada uma análise comparativa entre dois frequencímetros já desenvolvidos, um com base em hardware e o outro voltado para software, com o intuito de obter subsídios para o desenvolvimento de um frequencímetro simples. Esse equipamento contempla não somente as vantagens encontradas nos frequencímetros analisados, mas também agrega novas funcionalidades, tais como: base de tempo controlada por cristal piezoelétrico e interface com LCD. O frequencímetro proposto neste trabalho foi implementado com a utilização do microcontrolador PIC. Essa solução apresenta diversas vantagens, que são: - Simplicidade na elaboração e construção da placa de circuito impresso, devido ao número diminuto de componentes e ligações. - Facilidade de manutenção, uma vez que a quantidade de componentes passível de apresentar problema é reduzida, consequentemente, a possibilidade de defeitos e falhas é menor. - Consumo irrisório de energia, quando comparado ao sistema com os displays de LEDs (Light Emitting Diode). A implementação em LCD pode consumir até 150 vezes menos energia. - Portabilidade, pois o equipamento pode ser alimentado por pilhas comuns com garantia de grande durabilidade. - Expansibilidade, porque novas funcionalidades podem ser agregadas ao equipamento, sem a necessidade de alterações no hardware. Isso é possível, porque a contagem de pulsos é realizada por software. 172
Conclusões Este trabalho mostrou a viabilidade e as vantagens da implementação de um frequencímetro digital com a utilização de microcontrolador PIC. A utilização desse tipo de dispositivo permite uma montagem compacta, eficiente e elegante. A partir do estudo realizado sobre microcontroladores, pôde-se concluir que o PIC é um dos tipos mais utilizados em aplicações simples, devido à relação custo/benefício, facilidade de programação por utilizar apenas 35 instruções em Assembly e existência de uma ampla literatura disponível em livros e na Internet. A montagem voltada para software mostrou ser uma solução bem mais simples quando comparada com a implementação por hardware. Com um número diminuto de componentes e ligações foi possível criar um equipamento de baixo custo, com ótima estabilidade e consumo irrisório de energia devido à interface por LCD, atendendo às funcionalidades desejadas. Embora a solução apresentada seja simples, vários trabalhos futuros podem ser propostos, como por exemplo, a inserção de novas funcionalidades ao sistema, sem a necessidade de modificações no hardware. Tais funcionalidades incluem relógio digital, cronômetro digital, contador de eventos, termômetro, letreiro digital, multímetro, capacímetro e várias outras opções, simplesmente com a alteração no software. GhisiTobaldini.pdf>. Acesso em: set. 2007. Notas 1 Divisão das faixas de frequência, de acordo com as suas características. 2 Timer 1 - contador de 16 bits (conta até 65.535). 3 Placa para suporte dos componentes. Recebido em 29 de setembro de 2007 e aprovado em 27 de outubro de 2007. Referências Bibliográficas MICROCHIP. PIC16F627A/628A/648A Data Sheet. Disponível em: <http://ww1.microchip.com/downloads/en/ DeviceDoc/40044F.pdf>. Acesso em: set. 2007. PEREIRA, F. Microcontroladores PIC: Técnicas Avançadas. São Paulo: Érica, 2002. SOUZA, D. J. de. Desbravando o PIC. São Paulo: Érica, 2003. STALLINGS, W. Redes e Sistemas de Comunicação de Dados: Teoria e Aplicações Corporativas. Rio de Janeiro: Elsevier, 2005. TANEMBAUM, A. S. Redes de Computadores. Rio de Janeiro: Campus, 2003. TEIXEIRA, I. CHATPIC: troca de mensagens entre microcontroladores. Anuário da Produção de Iniciação Cientifica Discente 2004. São Paulo, v.7, n.8, p. 110-118, 2005. TOBALDINI, R. G. Frequencímetro Digital. 2006. Relatório Técnico (Bacharelado em Ciências da Computação) - Centro Tecnológico, UFSC, Florianópolis. Disponível em: <http://www.inf.ufsc.br/~rghisi/ sistemasdigitais/frequencimetrodigital_ricardo 173