You are on page 1of 7

Voltímetro PIC by Arne

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

VOLTÍMETRO PIC

Através de um microcontrolador facilmente encontrado no mercado (PIC16F876) é possível construir um voltímetro DC para uso em fontes de bancada ou outros instrumentos. As características do Voltímetro PIC são: capacidade de medir tensões DC entre 0 e 25V; tensão de alimentação de até 35VDC; leitura em um LCD 16x2 (display de cristal liquido); boa precisão; fácil montagem (poucos componentes);

Se você tiver alguma experiência com microcontroladores PIC poderá ainda modificar as características deste equipamento para atender as suas necessidades.

O MICROCONTROLADOR PIC16F876 O microcontrolador PIC16F876 é bastante utilizado e muito difundido entre os usuários dos microcontroladores Microchip®. Suas características principais são: 8 kbytes de memória FLASH para programa; 368 bytes de memória RAM (registradores de uso geral); 256 bytes de EEPROM para dados; 13 interrupções possíveis; 22 pinos de I/O com capacidade de fornecer 20mA por pino; Power-on Reset; Power-up Timer; Watch Dog Timer; Freqüência de operação de até 20MHz (5 MIPS – Milhões de instruções por segundo); Programação ICSP (In Circuit Serial Programming); Tensão de operação de 2.0 a 5.0V; 2 timers de 8 bits com prescaler;

1 de 7

18/6/2011 18:02

Note que utilizei um display de cristal liquido (LCD) do tipo paralelo (os "seriais" não servem neste projeto). Os resistores R1 e R2 formam um divisor resistivo que permitirá que a tensão inserida neste resulte na tesão máxima permitida no canal AD do PIC. O valor de V2 também será sempre fixo em 5VDC (tensão máxima no canal AD com a referência interna em VCC). obterá o valor de R1 igual a: 5V=[10k/(R1+10k)]=> 5R1 + 50k = 250k => R1=(250k . . Esta tensão é de 5VDC e sendo assim a presença do divisor de tensão é indispensável. Através de CI1 (PIC16F876) são realizadas as medidas do canal analógico e também o controle do LCD.arnerobotics.Voltímetro PIC by Arne http://www.com.entre outros recursos. Sendo assim.br/eletronica/voltimetro_pic. pois o mesmo alerta que a impedância da carga na entrada dos canais AD’s não deve ser menor que 10 kOhm. a não ser de precisão (1%). I2C (modo mestre ou escavo) ou modo Assíncrono (RS-232). Para usar qualquer outro tipo será necessário realizar alterações no programa (aconselhável apenas para quem tem experiência na linguagem de programação assembly do PIC).1 timer de 16 bits com prescaler. se você usar a fórmula. .1 canal para comunicação que pode ser setado em modo Sincrono como SPI (modo mestre apenas). .50k)/5 => 40 kOhm Resistores de 40 KOhm não são comuns no mercado. Isso foi feito para cumprir uma determinação do fabricante do microcontrolador. O divisor resistivo foi calculado para realizar uma queda de tensão de 25VDC para 5VDC (divisão por 5). Sendo assim você poderá usar 2 de 7 18/6/2011 18:02 . Este tem “2” linhas por “16” colunas. Veja a fórmula abaixo: V2 = [R2 / (R1+R2)] x V Através desta fórmula você poderá calcular para qualquer valor de entrada (diferente do proposto em meu projeto) o valor do resistor R1. considerando uma entrada máxima no divisor igual a 25V. . O valor do resistor R2 será sempre fixo em 10 kOhm. Obs.: Se você deseja mais informações sobre este microcontrolador faça o download do datasheet do mesmo no site do fabricante Microchip.htm .5 canais conversores AD de 10 bits. O CIRCUITO Na figura abaixo temos o circuito elétrico do Voltímetro PIC.2 módulos CCP (Capture/Compare/PWM).

O conector J1 poderá ser ignorado na montagem caso você vá utilizar o circuito em uma fonte. O cristal X1 e os capacitores C1 e C2 formam o bloco de oscilação necessário ao microcontrolador. 3 de 7 18/6/2011 18:02 . pois assim seria possível retirar a alimentação do circuito da pŕopria fonte onde o Voltímetro PIC seria ligado (após a retificação. O uso de um soquete para o LCD também é recomendável. por exemplo. Tenha cuidado ao soldar os componentes polarizados como diodos e os reguladores de tensão. Caso você opte por esta configuração deve lembrar de fazer a ligação do catodo de D1 até o anodo de D2. Os capacitores C4.Voltímetro PIC by Arne http://www. com tensões de até 35VDC. com precisão de +/. melhorando a instalação do mesmo em um gabinete qualquer. como também dos circuitos externos para o microcontrolador). Apesar de parecer sem sentido. C3 é um capacitor de desacoplamento para CI1. Um para 15VDC (CI3) e outro para 5VDC (CI4).5% terá de considerar esta precisão no resultado final. O uso de radiadores de calor para os circuitos reguladores é altamente recomendável devido ao seu aquecimento. Porém você poderá soldar um cabo flat de 14 vias entre a placa e o LCD. D2 tem também o mesmo objetivo. Apenas recomendo que este cabo não seja superior a 20cm para evitar interferências irradiadas (tanto do microcontrolador para outros circuitos externos. Isso também viabilizou que o Voltímetro PIC possa ser alimentado por qualquer circuito.htm associações dos mesmos como quatro resistores de 10 kOhm em série ou ainda dois de 20 kOhm em série como fiz em meu protótipo. Essa precisão se refletirá no resultado final. Isso pode ser feito através de um jumper na placa. Isso foi feito. Caso não encontre este tipo de soquete nas lojas de sua cidade (ou região) você poderá usar um soquete para 28 pinos comum devidamente adaptado (corte) para que fique no tamanho correto. A MONTAGEM Na figura abaixo você pode ver o lay-out da placa de circuito impresso que usei para fazer o meu protótipo. antes da regulagem). Aconselho o uso de um soquete de 28 pinos DIP do tipo Slim para CI1. É claro que dependendo da aplicação esta margem percentual poderá não influir negativamente no circuito. você poderá. C6 e C7 atuam como filtros e o diodo D1 serve de proteção contra uma possível inversão de polaridade na alimentação do voltímetro.arnerobotics. Na figura abaixo você pode ver como ficou meu protótipo montado. Obs.: Resistores de precisão são os mais indicados para R1 e R2. O circuito prevê ainda uma fonte com dois reguladores. Caso você use resistores comuns.com. C5.br/eletronica/voltimetro_pic. usar apenas o segundo regulador. por exemplo. Neste caso uma fonte independente de até 12V seria utilizada na entrada. O trimpot P1 ligado ao LCD serve para ajustar o contraste do mesmo.

arnerobotics. O programa foi ricamente comentado.br/eletronica/voltimetro_pic. facilitando ainda mais a sua compreensão.htm Atenção: Para concluir está montagem será necessário utilizar um gravador para a linha de microcontroladores PIC da Microchip®. tem a experiência necessária com a compilação e gravação de um programa qualquer nos mesmos. Considero que quem se propõe a montar um circuito com microcontroladores PIC. 4 de 7 18/6/2011 18:02 .Voltímetro PIC by Arne http://www.ASM poderá ser obtido logo abaixo. Recomendo que você faça o download do programa para auxiliá-lo na compreensão do que será dito a seguir sobre o mesmo. . o PROGPIC II. Na figura abaixo você tem o fluxograma que poderá ajudar na interpretação do programa. Não tratarei de como utilizar um gravador aqui. em Downloads. Neste site há um projeto de um gravador que poderá ser utilizado para esta tarefa.com.Clique aqui para conhecer o gravador PROGPIC II O PROGRAMA O programa VOLTIMETRO_PIC.

Este valor será então dividido por 255.com.arnerobotics. inclusive o caracter de comando para mudar de linha (veja a subrotina DISPLAY_MSG). um valor de 8 bits (entre 00H e FFH) será inserido na variável ADRESH (estou usando o valor convertido justificado a esquerda. Após a inicialização. neste caso. porém devido à simplicidade do circuito. Apenas um único canal analógico é implementado pelo programa. usando para isso a fórmula abaixo: resolução = Vref / 2n-1 . Note no programa que isso é feito enviando caracter por caracter. A partir desse momento o programa entra em “um laço infinito” analisando constantemente o canal analógico AN0. Se fosse utilizada uma resolução de 10 bits na conversão teríamos.00488V ou 4.Voltímetro PIC by Arne http://www. Desta forma é possível calcular a resolução na entrada. utilizei apenas 8 bits na conversão. Porém para isso trabalharíamos com 2 bytes (16 bits) ao invés de um e os cálculos finais teriam como resultado 32 e 64 bits! E trabalhar isto em assembly não é tarefa das mais simples! Após a conversão. Assim.br/eletronica/voltimetro_pic.Vref = tensão de referencia .n = número de bits utilizados na conversão De acordo com a equação a resolução obtida pelo Voltímetro PIC será de 0. isolando os dois bits menos significativo da leitura). a lógica utilizada é bem simples.0196V ou 19. uma resolução de 0.6 mV. 5 de 7 18/6/2011 18:02 . Estes são os “degraus” na conversão.htm O programa inicia o ambiente configurando os periféricos do PIC. Feito o start-up do LCD uma mensagem será enviada ao display. sempre que o conversor mostrar o valor 255 (ou FFH) teremos na entrada 5 Volts e ao mostrar 00 (00H) 0 Volts. Isto é feito através de uma conversão BCD. O primeiro deles diz respeito ao número de bits utilizados na conversão. Os outros pinos com entrada para os outros AD’s serão utilizados como I/O’s digitais. Após uma captura. Apesar de parecer complexo. Após estes cálculos. O valor retornado tem agora 16 bits. o programa configura o LCD. O PIC16F876 possui cinco canais AD de 10 bits cada. Esse valor será multiplicado por 250 para ajustar a leitura à 25VDC. uma série de conversões são feitas para que o valor seja demonstrado em decimal no display (lembre-se que um microcontrolador trabalha sempre em binário!) Você deve estar se perguntando: “Como foi feita a conversão?!?” Para entender como isso foi feito será necessário compreender alguns conceitos sobre conversores analógicos.88 mV (quase 5 vezes maior). o programa promove o ajuste da parte inteira e da parte decimal.

Uma virgula é enviada ao LCD antes da variável UNIDADE para informar a posição da casa decimal. Cada etapa deve ser considerada. Neste momento a mesma é zerada e a variável DEZENA1 é incrementada uma VEZ. para o exemplo.0. seu maravilhoso circuito microcontrolado não passará de um amontoado de componentes inúteis! Verifique sempre cada etapa com bastante cuidado! Feito todo as verificações. Compilação e gravação do programa no microcontrolador. porém é necessário convertê-los antes para o padrão ASCII. que é preciso agora apenas separar a dezena da sua casa decimal para obter 15. TESTE E USO Após finalizar a montagem. Isso é feito somando 30H a cada valor (DEZENA2. O valor informado pelo AD é então multiplicado por 250. DEZENA1 e DEZENA2 incrementadas de acordo com este decremento.com. Um novo ciclo é realizado.br/eletronica/voltimetro_pic. Ao inserir 15VDC na entrada do divisor de tensão. Agora o novo resultado é dividido por 255. teremos na entrada do AD do microcontrolador 3VDC (divisão por 5).htm Irei agora detalhar os cálculos que o programa realiza. Lembre-se que apesar do circuito ser bem simples devido à presença de um microcontrolador. Um novo ciclo inicia-se até que o valor passado seja igual zero. você terá apenas que alimentar o circuito com uma tensão de entrada entre 18VDC e 6 de 7 18/6/2011 18:02 . Para obter este valor basta dividir o valor da tensão na entrada do AD pelo valor da resolução que se está trabalhando. Para o exemplo adotado teremos 38250 (note que estou utilizando uma biblioteca que permite trabalhar com cálculos de 16 bits). é sempre recomendável uma revisão de todas as etapas. UNIDADE é incrementada (a cada decremento do valor total) até que seja igual a dez. DEZENA1 e UNIDADE). O resultado obtido é decrementado e as variáveis UNIDADE.Voltímetro PIC by Arne http://www. Ela estará sempre presente no mundo dos microcontroladores e qualquer falha em uma delas. o AD irá indicar a leitura 153 decimal (99H). Soldagem dos componentes. Você deve ter percebido. Assim. No exemplo o valor após esta divisão será de 150. temos no final do processo dentro das variáveis os seguintes valores: DEZENA2 = 1 DEZENA1 = 5 UNIDADE = 0 Perceba que serão estes os valores colocados no LCD.arnerobotics. usando como exemplo uma entrada igual a 15VDC. Inserção do mesmo na placa. Isso é feito para compatibilizar a leitura com a escala máxima de 25VDC. Assim. Quando DEZENA1 for igual a nove ela é zerada e DEZENA2 incrementada. existem algumas etapas a serem aqui respeitadas: Confecção da placa de circuito impresso. Isso será feito pela subrotina AJUSTE_DECIMAL.

na Revista Mecatrônica Fácil nº 20 de Janeiro/Fevereiro de 2005. você já pode usá-lo em sua fonte ou onde quer que tenha planejado seu uso.0V Ligue na entrada do Voltímetro PIC uma tensão entre 0 a 25VDC. Preste bastante atenção à polaridade!!!! Qualquer inversão poderá ser fatal para o microcontrolador!!! Se quiser ligue um multímetro na escala Volts DC junto. livros ou outros tipos de publicações comerciais ou não. Muitos dispositivos podem ser criados com um microcontrolador.htm 35VDC. o LCD deverá mostrar a seguinte mensagem: Voltímetro PIC Tensão=0. para verificar a precisão do circuito. 7 de 7 18/6/2011 18:02 . com minha autorização. Espero ter contribuído com informações para a sua “biblioteca” pessoal. sem a prévia autorização por escrito do autor. Com o circuito devidamente alimentado. de 19 de Fevereiro de 1998.610. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet. Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9. sendo testado ao lado de um multímetro). No link "Fonte variável para bancada" você poderá assistir a um vídeo feito exatamente nestas condições (meu Voltímetro PIC instalado na fonte de bancada.br/eletronica/voltimetro_pic. Boa montagem e até a próxima! DOWNLOADS: Circuito do Voltímetro PIC Desenho do lay-out para confecção do circuito impresso (lado inferior invertido) Programa para microcontrolador (pacote com ASM e HEX) Lista de materiais Este projeto foi publicado.: Não confunda a entrada de tensão a ser analisada com a entrada de alimentação do circuito! A entrada de alimentação não pode ser variável! Esta deve ser fixa dentro dos valores já comentados! CONCLUSÃO Neste artigo você viu como é simples utilizar um microcontrolador para a leitura de dados analógicos. Tudo é uma questão de criatividade.com.arnerobotics. Obs. caso tenha mantido o CI3 no circuito e de 9VDC a 12VDC caso o tenha retirado (veja as recomendações dadas mais atrás neste artigo). Testado o circuito.Voltímetro PIC by Arne http://www.