Anda di halaman 1dari 7

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

VOLTMETRO PIC

Atravs de um microcontrolador facilmente encontrado no mercado (PIC16F876) possvel construir um voltmetro DC para uso em fontes de bancada ou outros instrumentos. As caractersticas do Voltmetro PIC so: capacidade de medir tenses DC entre 0 e 25V; tenso de alimentao de at 35VDC; leitura em um LCD 16x2 (display de cristal liquido); boa preciso; fcil montagem (poucos componentes);

Se voc tiver alguma experincia com microcontroladores PIC poder ainda modificar as caractersticas deste equipamento para atender as suas necessidades.

O MICROCONTROLADOR PIC16F876 O microcontrolador PIC16F876 bastante utilizado e muito difundido entre os usurios dos microcontroladores Microchip. Suas caractersticas principais so: 8 kbytes de memria FLASH para programa; 368 bytes de memria RAM (registradores de uso geral); 256 bytes de EEPROM para dados; 13 interrupes possveis; 22 pinos de I/O com capacidade de fornecer 20mA por pino; Power-on Reset; Power-up Timer; Watch Dog Timer; Freqncia de operao de at 20MHz (5 MIPS Milhes de instrues por segundo); Programao ICSP (In Circuit Serial Programming); Tenso de operao de 2.0 a 5.0V; 2 timers de 8 bits com prescaler;

1 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

- 1 timer de 16 bits com prescaler; - 2 mdulos CCP (Capture/Compare/PWM); - 5 canais conversores AD de 10 bits; - 1 canal para comunicao que pode ser setado em modo Sincrono como SPI (modo mestre apenas), I2C (modo mestre ou escavo) ou modo Assncrono (RS-232); - entre outros recursos. Obs.: Se voc deseja mais informaes sobre este microcontrolador faa o download do datasheet do mesmo no site do fabricante Microchip.

O CIRCUITO Na figura abaixo temos o circuito eltrico do Voltmetro PIC. Note que utilizei um display de cristal liquido (LCD) do tipo paralelo (os "seriais" no servem neste projeto).

Atravs de CI1 (PIC16F876) so realizadas as medidas do canal analgico e tambm o controle do LCD. Este tem 2 linhas por 16 colunas. Para usar qualquer outro tipo ser necessrio realizar alteraes no programa (aconselhvel apenas para quem tem experincia na linguagem de programao assembly do PIC). Os resistores R1 e R2 formam um divisor resistivo que permitir que a tenso inserida neste resulte na teso mxima permitida no canal AD do PIC. Esta tenso de 5VDC e sendo assim a presena do divisor de tenso indispensvel. O divisor resistivo foi calculado para realizar uma queda de tenso de 25VDC para 5VDC (diviso por 5). Veja a frmula abaixo: V2 = [R2 / (R1+R2)] x V Atravs desta frmula voc poder calcular para qualquer valor de entrada (diferente do proposto em meu projeto) o valor do resistor R1. O valor do resistor R2 ser sempre fixo em 10 kOhm. Isso foi feito para cumprir uma determinao do fabricante do microcontrolador, pois o mesmo alerta que a impedncia da carga na entrada dos canais ADs no deve ser menor que 10 kOhm. O valor de V2 tambm ser sempre fixo em 5VDC (tenso mxima no canal AD com a referncia interna em VCC). Sendo assim, se voc usar a frmula, considerando uma entrada mxima no divisor igual a 25V, obter o valor de R1 igual a: 5V=[10k/(R1+10k)]=> 5R1 + 50k = 250k => R1=(250k - 50k)/5 => 40 kOhm Resistores de 40 KOhm no so comuns no mercado, a no ser de preciso (1%). Sendo assim voc poder usar

2 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

associaes dos mesmos como quatro resistores de 10 kOhm em srie ou ainda dois de 20 kOhm em srie como fiz em meu prottipo. Obs.: Resistores de preciso so os mais indicados para R1 e R2. Essa preciso se refletir no resultado final. Caso voc use resistores comuns, com preciso de +/- 5% ter de considerar esta preciso no resultado final. claro que dependendo da aplicao esta margem percentual poder no influir negativamente no circuito. O circuito prev ainda uma fonte com dois reguladores. Um para 15VDC (CI3) e outro para 5VDC (CI4). Isso foi feito, pois assim seria possvel retirar a alimentao do circuito da popria fonte onde o Voltmetro PIC seria ligado (aps a retificao, antes da regulagem). Isso tambm viabilizou que o Voltmetro PIC possa ser alimentado por qualquer circuito, com tenses de at 35VDC. Os capacitores C4, C5, C6 e C7 atuam como filtros e o diodo D1 serve de proteo contra uma possvel inverso de polaridade na alimentao do voltmetro. D2 tem tambm o mesmo objetivo. Apesar de parecer sem sentido, voc poder, por exemplo, usar apenas o segundo regulador. Neste caso uma fonte independente de at 12V seria utilizada na entrada. Caso voc opte por esta configurao deve lembrar de fazer a ligao do catodo de D1 at o anodo de D2. Isso pode ser feito atravs de um jumper na placa. O trimpot P1 ligado ao LCD serve para ajustar o contraste do mesmo. O cristal X1 e os capacitores C1 e C2 formam o bloco de oscilao necessrio ao microcontrolador. C3 um capacitor de desacoplamento para CI1.

A MONTAGEM Na figura abaixo voc pode ver o lay-out da placa de circuito impresso que usei para fazer o meu prottipo.

Aconselho o uso de um soquete de 28 pinos DIP do tipo Slim para CI1. Caso no encontre este tipo de soquete nas lojas de sua cidade (ou regio) voc poder usar um soquete para 28 pinos comum devidamente adaptado (corte) para que fique no tamanho correto. O uso de um soquete para o LCD tambm recomendvel. Porm voc poder soldar um cabo flat de 14 vias entre a placa e o LCD, melhorando a instalao do mesmo em um gabinete qualquer. Apenas recomendo que este cabo no seja superior a 20cm para evitar interferncias irradiadas (tanto do microcontrolador para outros circuitos externos, como tambm dos circuitos externos para o microcontrolador). Tenha cuidado ao soldar os componentes polarizados como diodos e os reguladores de tenso. O uso de radiadores de calor para os circuitos reguladores altamente recomendvel devido ao seu aquecimento. O conector J1 poder ser ignorado na montagem caso voc v utilizar o circuito em uma fonte, por exemplo. Na figura abaixo voc pode ver como ficou meu prottipo montado.

3 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

Ateno: Para concluir est montagem ser necessrio utilizar um gravador para a linha de microcontroladores PIC da Microchip. Neste site h um projeto de um gravador que poder ser utilizado para esta tarefa, o PROGPIC II. No tratarei de como utilizar um gravador aqui. Considero que quem se prope a montar um circuito com microcontroladores PIC, tem a experincia necessria com a compilao e gravao de um programa qualquer nos mesmos.

- Clique aqui para conhecer o gravador PROGPIC II

O PROGRAMA O programa VOLTIMETRO_PIC.ASM poder ser obtido logo abaixo, em Downloads. Na figura abaixo voc tem o fluxograma que poder ajudar na interpretao do programa. Recomendo que voc faa o download do programa para auxili-lo na compreenso do que ser dito a seguir sobre o mesmo. O programa foi ricamente comentado, facilitando ainda mais a sua compreenso.

4 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

O programa inicia o ambiente configurando os perifricos do PIC. Apenas um nico canal analgico implementado pelo programa. Os outros pinos com entrada para os outros ADs sero utilizados como I/Os digitais. Aps a inicializao, o programa configura o LCD. Feito o start-up do LCD uma mensagem ser enviada ao display. Note no programa que isso feito enviando caracter por caracter, inclusive o caracter de comando para mudar de linha (veja a subrotina DISPLAY_MSG). A partir desse momento o programa entra em um lao infinito analisando constantemente o canal analgico AN0. Aps uma captura, uma srie de converses so feitas para que o valor seja demonstrado em decimal no display (lembre-se que um microcontrolador trabalha sempre em binrio!) Voc deve estar se perguntando: Como foi feita a converso?!? Para entender como isso foi feito ser necessrio compreender alguns conceitos sobre conversores analgicos. O primeiro deles diz respeito ao nmero de bits utilizados na converso. O PIC16F876 possui cinco canais AD de 10 bits cada, porm devido simplicidade do circuito, utilizei apenas 8 bits na converso. Assim, sempre que o conversor mostrar o valor 255 (ou FFH) teremos na entrada 5 Volts e ao mostrar 00 (00H) 0 Volts. Desta forma possvel calcular a resoluo na entrada, usando para isso a frmula abaixo:

resoluo = Vref / 2n-1


- Vref = tenso de referencia - n = nmero de bits utilizados na converso De acordo com a equao a resoluo obtida pelo Voltmetro PIC ser de 0,0196V ou 19,6 mV. Estes so os degraus na converso. Se fosse utilizada uma resoluo de 10 bits na converso teramos, neste caso, uma resoluo de 0,00488V ou 4,88 mV (quase 5 vezes maior). Porm para isso trabalharamos com 2 bytes (16 bits) ao invs de um e os clculos finais teriam como resultado 32 e 64 bits! E trabalhar isto em assembly no tarefa das mais simples! Aps a converso, um valor de 8 bits (entre 00H e FFH) ser inserido na varivel ADRESH (estou usando o valor convertido justificado a esquerda, isolando os dois bits menos significativo da leitura). Esse valor ser multiplicado por 250 para ajustar a leitura 25VDC. O valor retornado tem agora 16 bits. Este valor ser ento dividido por 255. Aps estes clculos, o programa promove o ajuste da parte inteira e da parte decimal. Isto feito atravs de uma converso BCD. Apesar de parecer complexo, a lgica utilizada bem simples.

5 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

Irei agora detalhar os clculos que o programa realiza, usando como exemplo uma entrada igual a 15VDC. Ao inserir 15VDC na entrada do divisor de tenso, teremos na entrada do AD do microcontrolador 3VDC (diviso por 5). Assim, o AD ir indicar a leitura 153 decimal (99H). Para obter este valor basta dividir o valor da tenso na entrada do AD pelo valor da resoluo que se est trabalhando. O valor informado pelo AD ento multiplicado por 250. Para o exemplo adotado teremos 38250 (note que estou utilizando uma biblioteca que permite trabalhar com clculos de 16 bits). Isso feito para compatibilizar a leitura com a escala mxima de 25VDC. Agora o novo resultado dividido por 255. No exemplo o valor aps esta diviso ser de 150. Voc deve ter percebido, que preciso agora apenas separar a dezena da sua casa decimal para obter 15,0. Isso ser feito pela subrotina AJUSTE_DECIMAL. O resultado obtido decrementado e as variveis UNIDADE, DEZENA1 e DEZENA2 incrementadas de acordo com este decremento. UNIDADE incrementada (a cada decremento do valor total) at que seja igual a dez. Neste momento a mesma zerada e a varivel DEZENA1 incrementada uma VEZ. Um novo ciclo realizado. Quando DEZENA1 for igual a nove ela zerada e DEZENA2 incrementada. Um novo ciclo inicia-se at que o valor passado seja igual zero. Assim, para o exemplo, temos no final do processo dentro das variveis os seguintes valores: DEZENA2 = 1 DEZENA1 = 5 UNIDADE = 0 Perceba que sero estes os valores colocados no LCD, porm necessrio convert-los antes para o padro ASCII. Isso feito somando 30H a cada valor (DEZENA2, DEZENA1 e UNIDADE). Uma virgula enviada ao LCD antes da varivel UNIDADE para informar a posio da casa decimal.

TESTE E USO Aps finalizar a montagem, sempre recomendvel uma reviso de todas as etapas. Lembre-se que apesar do circuito ser bem simples devido presena de um microcontrolador, existem algumas etapas a serem aqui respeitadas: Confeco da placa de circuito impresso; Soldagem dos componentes; Compilao e gravao do programa no microcontrolador; Insero do mesmo na placa.

Cada etapa deve ser considerada. Ela estar sempre presente no mundo dos microcontroladores e qualquer falha em uma delas, seu maravilhoso circuito microcontrolado no passar de um amontoado de componentes inteis! Verifique sempre cada etapa com bastante cuidado!

Feito todo as verificaes, voc ter apenas que alimentar o circuito com uma tenso de entrada entre 18VDC e

6 de 7

18/6/2011 18:02

Voltmetro PIC by Arne

http://www.arnerobotics.com.br/eletronica/voltimetro_pic.htm

35VDC, caso tenha mantido o CI3 no circuito e de 9VDC a 12VDC caso o tenha retirado (veja as recomendaes dadas mais atrs neste artigo). Com o circuito devidamente alimentado, o LCD dever mostrar a seguinte mensagem:

Voltmetro PIC Tenso=0,0V

Ligue na entrada do Voltmetro PIC uma tenso entre 0 a 25VDC. Preste bastante ateno polaridade!!!! Qualquer inverso poder ser fatal para o microcontrolador!!! Se quiser ligue um multmetro na escala Volts DC junto, para verificar a preciso do circuito. No link "Fonte varivel para bancada" voc poder assistir a um vdeo feito exatamente nestas condies (meu Voltmetro PIC instalado na fonte de bancada, sendo testado ao lado de um multmetro). Testado o circuito, voc j pode us-lo em sua fonte ou onde quer que tenha planejado seu uso. Obs.: No confunda a entrada de tenso a ser analisada com a entrada de alimentao do circuito! A entrada de alimentao no pode ser varivel! Esta deve ser fixa dentro dos valores j comentados!

CONCLUSO Neste artigo voc viu como simples utilizar um microcontrolador para a leitura de dados analgicos. Muitos dispositivos podem ser criados com um microcontrolador. Tudo uma questo de criatividade. Espero ter contribudo com informaes para a sua biblioteca pessoal. Boa montagem e at a prxima!

DOWNLOADS: Circuito do Voltmetro PIC Desenho do lay-out para confeco do circuito impresso (lado inferior invertido) Programa para microcontrolador (pacote com ASM e HEX) Lista de materiais

Este projeto foi publicado, com minha autorizao, na Revista Mecatrnica Fcil n 20 de Janeiro/Fevereiro de 2005.

Copyright deste contedo reservado para Mrcio Jos Soares e protegido pela Lei de Direitos Autorais LEI N 9.610, de 19 de Fevereiro de 1998. estritamente proibida a reproduo total ou parcial do contedo desta pgina em outros pontos da internet, livros ou outros tipos de publicaes comerciais ou no, sem a prvia autorizao por escrito do autor.

7 de 7

18/6/2011 18:02

Anda mungkin juga menyukai