LC_METER_TINY – ENCARANDO O DESAFIO DE CONSTRUIR UM MEDIDOR DE INDUTÂNCIA/CAPACITÂNCIA COM UM PEQUENO PIC 12F629

Para os amantes da eletrônica, os aparelhos para medições são muito importantes para obter diagnósticos de defeitos. Que dizer de um capacimetro? Ou um indutimetro?
O Lc_meter é um aparelho para leitura de valores de capacitancia e de indutancia (para pequenos indutores). Sendo muito prático, desde que seu autor originalmente postou informações, surgiram varias versões e com os mais variados microcontroladores, para alegria geral. Mas os programas gerados são de no minimo 1500 a 2000 linhas de instruções, próprios para o Pic 16F628 e 16F84, com flash de 2k. Mas seria possível criar um programa super enxuto que coubesse em 1k de memória do Pic 12F629? Este foi o desafio aceito com o objetivo de testar esta possibilidade. Qual foi a resposta depois de muito análise, reformulações de rotinas e emprego de técnicas para compactar rotinas? Apresento-lhes o Lc_meter_tiny como o resultado. Veja o esquema abaixo:

Para envio de informações para o LCD foi usado a multiplexação por RC (lariosplex), que, usando apenas 3 pinos do microcontrolador é possivel enviar mensagens e comandos para o lcd. Estes mesmos pinos, são compartilhados como entradas para teste de botão de escolha para indutância ou capacitância, acionamento de rele para calibração inicial, entrada do oscilador de frequência e botão de ‘modo de serviço’ (digamos que realmente ‘chupa cana enquanto assovia’).
Foi mantido o circuito oscilador com o LM311 , por ser estável, cuja saída foi ligado a um transistor ‘tampão’. Isto evita que haja instabilidade do oscilador quando a porta (pino 5) se torna ‘saida aterrada’, nas funções de envio para o LCD.
O PIC trabalha com cristal externo de 4 Mhz, para conferir também estabilidade na sua frequência de trabalho.
Quanto a chave SW1 , trata-se de um duplo interruptor, podendo ser usado as chaves HH ou mesmo de push-pull, ou ainda, de alavanca. O objetivo dela é escolher se o que será medido será capacitor ou indutor. De tempos em tempos, o programa testa o pino 7 do microcontrolador. Se a chave estiver em posição de indutor, será aterrado via R10 de 4k7, lendo como ‘0’ lógico. Isto informa que deverá ser feito os cálculos para ‘indutor’. Mas, se = ‘1’, informa que será cálculos para capacitor. Use um interruptor de boa qualidade, para evitar falhas desagradáveis por oxidação em contatos de má qualidade.
O indutor L1 é um indutor miniatura, daqueles usados em saida de video de tv’s. Poderá ser usado aqueles que se parecem a resistores com código de faixas. Experimente varios modelos, pois variam seu ‘q’, ou seja, o fator de qualidade, que podem tornar a leitura um tanto ‘não muito linear’.
Foi usado um relé miniatura de 5 volts de bobina, para acionar a ligação do capacitor padrão.
A chave SW1 , é uma chave de ‘serviço’. Ela serve para ajustar o valor do capacitor padrão no cálculo matemático. Para entrar nesta função, deverá primeiro aperta-lo e mantendo apertado, dar um ‘reset’ (mas continue apertado SW1). O mostrador passará a visualizar ‘CCal = 0x2710’ e dependendo da posição da chave de indutância/capacitância, passará a incrementar ou decrementar. Acione ela para o sentido desejado, sempre mantendo SW1 pressionado. Quando chegou no valor desejado, simplesmente solte SW1 para sair do modo de ‘serviço’. Com respeito a ligação desta chave, um lado vai para o pino 6 e a outra vai para um divisor de tensão, feito com R12 e R10. Porque não ligar ao Vcc ou Gnd direto? Quando se faz isto, altera o funcionamento do sistema de multiplexação por RC (LARIOSPLEX). Esta malha produz um nível de tensão pequeno o suficiente para ser interpretado como um lógico (1), mas sem afetar o funcionamento do sistema citado, por volta de 1,5 a 2 volts. Se não estiver correta, poderá dar problemas de visualização somente em modo de ‘serviço’, não afetando o modo normal.
A alimentação positiva do LCD é feita de forma nada usual. É feita através de um resistor de 470 ohms, com um diodo que aterra a alimentação quando se dá um ‘reset’. Esta montagem se justifica, porque em alguns Lcd’s, após um ‘reset’ do microcontrolador, começa a aparecer os ‘quadradinhos pretos’. Somente com um segundo ‘reset’ ele volta a trabalhar. Desta forma, o LCD também é resetado junto com o microcontrolador, eliminando o problema. Todo o circuito poderá ser alimentado por uma fonte de carregador de celular de saída 5 volts. Se o seu carregador fornece tensão maior, deverá usar um circuito com 7805 para reduzir para os ‘seguros’ 5 volts. Optando por fonte com transformador na placa, use um transformador de 9 volts de saida, mais retificadores, diodos e 7805. Também, poderá alimentar o circuito com 4 pilhas AA de 1,5 volts, com um diodo 1N4007 em série (para dar um queda de 0,7 volts na tensão). Querendo tamanho menor, poderá usar um bateria de 9 volts, com um 7805 para reduzir para 5 volts, como mais uma opção.
O capacitor C7 de 1nF deverá ser de precisão, se possível, pois ele será o ‘padrão ‘ para as medições.

ANALIZANDO O PROGRAMA ASM

O programa começa por desligar os pull-up’s das portas e configurar o timer 0 para usar o prescaller dividindo por 256. Isto permite ler frequências até 650 khz, usando o tempo de medição de 1/10 de segundo. Depois ocorre a inicialização do LCD e as mensagens com nome do aparelho, e passa em seguida, a ‘calibrar’. Isto é feito, acionando o relé que coloca o capacitor padrão junto ao circuito, medindo a frequência gerada. Depois de salva, passa-se a medir a frequência sem o capacitor padrão (frequência livre), desligando-se o relé.
O programa já calcula a divisão da frequência livre pela frequência com capacitor padrão. Eleva ao quadrado, subtrai 1 e guarda no banco de registradores ‘c’. Dai, haverá nova medição, com o capacitor/indutor desconhecido a medir, ligado as pontas de prova. Será feito novo cálculo, sendo recuperado a frequência livre, que será dividida pela frequência com cap/ind desconhecido. Em seguida, elevado ao quadrado e subtraido 1. Com a manipulação dos bancos de registradores, ficará no banco ‘A’ o valor ((F1/FX)^2-1) e no banco ‘B’ o valor (F1/Fccal)^2-1).
Neste ponto do programa, será analizado que caminho seguir: medir indutâncias ou capacitâncias. A chave SW1 será lida e ocorrerá a decisão.
Caso seja escolhido medir indutâncias, será usado a formula:

(((F1/FX)^2-1) X ((F1/FCCAL)^2 -1) X LSCALE ) / CCALL

ou seja:
banco ‘A’ multiplicado ‘B’ multiplicado por uma constante para acerto de escala, sendo o resultado dividido pelo valor do capacitor padrão, armazenado na EEprom (que, aliás, pode ser modificado por se entrar em modo de ‘serviço’).
Se for medir capacitância, a formula será:

(((F1/FX)^2-1) / ((F1/FCCAL)^2 -1) x CCAL

As rotinas foram escolhidas para serem as mais curtas e eficientes possíveis. Algumas tem varias entradas, poupando linhas comuns entre rotinas.
A visualização e feita em escala de MH (milihenry) / UM (microhenry) para indutâncias e NF (nanofarads) / PF (picofarads) para capacitância. A escala de picofarads tem somente uma casa após a virgula. As outras todas tem 2 casas após a virgula. Para a conversão de Hexadecimal para Decimal, foi usada a excelente rotina do Sr. Mike (muito eficiente, por sinal).
Para realizar os cálculos, foi empregada a biblioteca de ponto flutuante, da Microchip, com algumas alterações e reduções do que não foi usado.

USANDO O APARELHO

Após ligar, e aparecer a mensagem ‘LC_METER-TINY’ , também aparecerá ‘SE ‘L’ UNA PONTAS’. Você sempre deverá, ao ligar ou dar ‘reset’ , em modo de medição de indutâncias, CURTO CIRCUITAR AS PONTAS DE PROVA. Se esquecer, faça isto e em seguida, de um ‘reset’ , e fique esperando acabar a calibração, quando o mostrador passar a indicar ‘0,00 uH’. Então, desligue as pontas e ligue o indutor a medir nelas.
Quando for medir capacitor, NÃO CURTO CIRCUITE AS PONTAS, E NEM LIGUE NADA NELAS. Apenas de um ‘reset’ e ao aparecer ‘0.0 pf’, poderá ligar o capacitor a medir nas pontas de prova.

Este projeto é em carácter didático, sendo montado apenas em protoboard. Deverá ser montando apenas por quem têm um pouco de conhecimento de eletrônica básica. As ligações devem ser curtas, pois ligações longas geram capacitâncias e indutâncias parasitas que são prejudiciais a ‘performance’ do aparelho. Antes de usar, deverá ser calibrado por se usar um capacitor de valor 1nf (de precisão em torno de 0,5 %) e acertando, via modo de ‘serviço’, o valor do CCAL na EEprom, até obter o valor mais próximo possível no visor. Esta operação exige um pouco de paciência, visto que envolve alterar em modo de serviço, sair do modo de serviço, testar, entrar de novo em modo de serviço e repetir o ajuste, até obter o melhor resultado.

Segue o arquivo ASM:

LC_METER_TINY_ASM

Segue o arquivo HEX:

LC_METER_TINY_HEX

Curiosidades:
Trem sem rodas!!!
Mentir é ‘trabalhoso’
Olhando dentro do corpo
Ponte da Torre – Entrada para Londres
O planeta vivo

Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas
Casais – Como parar de discutir
Como sobreviver ao primeiro ano de casamento

Até o próximo artigo!!!

19 comments on “LC_METER_TINY – ENCARANDO O DESAFIO DE CONSTRUIR UM MEDIDOR DE INDUTÂNCIA/CAPACITÂNCIA COM UM PEQUENO PIC 12F629

    1. Olá Morais! Este projeto não atende a sua necessidade. Ele permite ler pequenos capacitores, no máximo até 0,5 microfarads. Apesar de ter feito algumas montagens neste campo, ainda não tenho material pronto para um artigo. Quem sabe em futuro artigo!!!
      Cláudio

Comments are closed.

Back To Top