Medidor
de INDUTANCIAS para o experimentador

Foto medindo uma indutancia de 92,5µH 2%
Este projeto foi baseado no trabalho do colega americano N4TMI Michael
A. Covington, com o artigo publicado pelo colega holandes Rob PA3CJD
neste link
COIL
TESTER
Como um indutor comporta-se como um capacitor acima de frequencia de
ressonancia devido a capacitancia distribuida e a resistencia interna
inerente (na frequencia usada), e mais ainda o Q do indutor fica
zerado, em frequencias, acima
deste ponto. É importante conhecermos o valor da frequencia
natural do indutor que vamos usar.
Um indutor usado como choque de RF, serve para deter a RF e deixar
passar a corrente continua, portanto acima da
frequencia natural ou de ressonancia como um capacitor a RF
passará, ou seja devemos usar um indutor
para este casos até 90% da frequencia natural.
Já um indutor usado em um filtro ou circuito ressonante (que
trabalha associado a capacitores) a frequencia de trabalho util dele
diminue, assim um indutor pode ser utilizado em até 75% da
frequencia natural, neste caso.
Resolvemos montar com um arduino, pois o equipamento tem muita
utilidade para os montadores e experimentadores.
O projeto ficou bem simples e barato, pois compramos praticamente tudo
via web da Asia.
Usamos um LM7805 para obter os 5V e os 12V necessarios a
alimentação do equipamento, outro CI usado foi o 74HC4017
divisor por 10, pois o arduino consegue medir frequencias até
aproximadamente 6,5MHz assim nosso aparelho pode medir ou trabalhar
até 65MHz.
Usamos um arduino NANO com USB pois é necessario acertar alguns
parametros que mudam conforme a montagem ou componentes usados.
A alma do aparelho é o circuito oscilador utilizamos dois fets
tipo J310 que tiveram um comportamento excelente chegando a 65MHz com a
alimentação de 12V. Colegas que montaram usando o
BF245C tiveram resultados bons tambem. Para comutar o capacitor de
150pF usamos umrele acionado por um 2N2222 que recebe um comando do
arduino.
A caixa de aluminio foi comprada pela WEB/correio com as medidas de
34x75x116mm.
O Display colorido TFT serial de 128x160 pixels (area util de
38x31mm) compramos da Asia.
Uma outra utilidade alem de medir indutancias o pequeno equipo tambem
é um frequencimetro, com a entrada na mesma ponta de
medição, bastando apenas colocar um capacitor de 100nF em
serie para isolar a temnão continua.
O circuito :

Material :
Arduino nano com USB cerca de 2US$
Display de 128x160 para comprar no Ebay procure esta figura custo
3.60US$
Materiais
simples como PCB padrão, conector BNC painel, soquetes de CIs,
terminais de 40 pinos macho e femea, rele e o 74HC4017 foram todos
comprados da Asia
Montagem
Minhas montagens não são caprichadas, mas funcionam e
esta é uma parte importante.
como se trata de um oscilador que vai até uns 60MHz, é
muito importante as ligações curtas, as blindagens e uma
montagem compacta.
Montamos em uma placa de circuito impresso padrão, com todo os
componentes soquetados , somente a fonte de alimentação
ficou de fora.

Foto com os componentes montados
Foto somente a placa padrão e a fonte
Modulo divisor
Montamos o 74HC4017 como "inseto morto" (dead bug) e o soldamos como se
fosse um 4017 normal em um soquete torneado assim ficou a montagem




Montagem do Oscilador / rele
O oscilador montamos em uma placa padão pequena de fibra de
vidro e a parte do rele em uma placa padrão comum. Usamos pinos
machos para fixar ao soquete na palaca mãe.



A caixa de aluminio foi comprada pronta e deve ter um furo para acesso
a
porta USB de programação, pois é necessario
calibrar o equipamento.

A fonte de alimentação foi montada em uma placa
pequena
e o 7805 foi fixado na lateral interna da caixa


Calibração do Frequencimetro :
Ligue um gerador de RF com frequencimetro calibrado na entrada do
Lmeter, ou um DDS.
Para calibrar o frequencimetro existem dois parametros no programa ou
sketch (as linhas com // são linhas de comentario e não
são usadas pelo arduino) :
1. O valor que esta como 4 na linha de programação
abaixo, ele deve ser ajustado para que o valor seja o mais proximo
possivel do valor da frequencia de entrada
FreqCounter::f_comp = 4;
// Cal Value / Calibrate with professional Freq Counter
// este parametro tambem ajusta o valor da frequencia lida
//entre zero e 10
2. Entrando com uma frequencia de 30MHz ler no Lmeter a frequencia em
Hz .... dividir 30000000 pelo valor lido no Lmeter ... substituir o
valor nesta linha do sketch :
float ajuste =
1.000085;
No
meu caso o valor foi este. erros de alguns Hz podem ser tolerados.
Calibração de indutancia :
São necessarias pelo menos dois indutores de precisão. Eu
usei alguns que estavam na caixa de capacitores de 720µH 2% e
liguei eles em serie e
paralelo obtendo valores diferentes de indutores de 2%. Assim meu
medidor ficou com erro maior que 2%, ou seja menor que 3%.
A unica linha do sketch que influi no valor do indutor lido (valor do
capacitor em paralelo com o oscilador) é a seguinte :
int cap = 143;
//capacitancia em paralelo acionada pelo rele
// ajuste até obter a indutancia dentro do padrão usado
Uso
Para saida de sinal usamos um conector BNC painel.
Para conectar um indutor é necessario conexões e elas
aumentam a indutancia e consequentemente o erro em medida baixas
(abaixo de 5µH). Não coloquei sistema de medida e
compensação das pontas de prova, assim para medidas em
indutores de baixo valor é necessário compensar a
indutancia das pontas. Curto circuita-se elas e obtem a leitura em nH
que deverão ser subtraidas do valor o do indutor medido.
As
leituras deixei em nanoFarad então elas podem variar muito pouco
a cada
medida, pois como dissemos o oscilador trabalha até 60MHz e a
bobina osciladora é exatamente a que estamos medindo
então qualquer
mudança de temperatura ou capacitancia do nosso corpo ou ainda
das
coisas proximas ao indutor influem na medida, obvio que com valores
menores isto é mais critico.
Quando a leitura da frequencia natural for nula e existir uma
frequencia com o capacitor em paralelo, é sinal que a frequencia
de ressonancia esta acima da capacidade de medição do
medidor.
É possivel medir frequencias com este equipo, bastando colocar
um capacitor, de 100nF, em serie com a ponta viva do instrumento e
medir.
Outra medida simples é a da frequencia de ressonancia de um
circuito LC, basta colocar um indutor em paralelo com um capacitotor e
a frequencia dada como natural sera afrequencia de ressonacia do
circuito LC.
Ainda é possivel medir valores de capacitores de 100pF
até 2000pF com um indutor de 33 a 82µH em paralelo como
capacitor medido, o valor aparecerá em capacitancia interespiras
(como se a capacitancia di capacitor colocado em paralelo fosse
acapacitancia inter espiras do indutor), para obter o valor real, o
valor da capacitancia do indutor devera ser descontado (sem o
capacitor externo em paralelo). Para valores abaixo de 100pF o indutor
devera ser de 1 a
4.7µH.
Com algumas modificações é possivel transformar
este equipo em um medidor de ressonancia, capacitancia e frequencimetro
com escalas na tela.

Programa do Arduino ou sketch ... para programar um arduino é
necessario ter um programa chamado IDE instalado (site arduino.cc)
...copie o skech abaixo para um sketch vazio acerte a placa como nano e
compile ...depois é só ligar a USB ao arduino via cabo e
mandar carregar o programa e boa diversão...
73 de py2ohh miguel
// partes do sketch foram retiradas do BLOG de John Owen
//do site http://www.vwlowen.co.uk/index.htm
// incluir library entrada do frequencimetro pino 5 digital
// acionamento do rele = D4
// display 1.8TFT V1.0 Azul 128x160
// vcc led 120R vindo do +5V CS=D10 SK=D13 SDA=D11 AO=D9 RST=D8
//Divisor por 10 74HC4017
#include <SPI.h>
#include <Adafruit_GFX.h>
#define cs 10
#define dc 9
#define rst 8
#include <Adafruit_ST7735.h>
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);
#include <FreqCounter.h>
#define PRETO 0x000
#define AZUL 0x001F
#define VERDE 0x07E0
#define AMARELO 0xFFE0
#define BRANCO 0xFFFF
float frq;
float frq1;
// colocar na entrada um gerador padrão ou DDS ajustado para
30MHz
// divida o valor de 30000000 pela frequencia lida altere o valor
//do ajuste para obter o valor correto em kHz em Hz fica dificil
// tem outro parametro passivel de ajuste na subrotina frequencimetro
float ajuste = 1.000085;
double cd;
float coil;
double ls = 0.17; //indutancia residual dos conectores e fios
int x = 0;
int pcbcap = 23; //capacitancia parasita da pcb
int cap = 143; //capacitancia em paralelo acionada pelo rele ajuste
// até obter a indutancia dentro do padrão usado
void setup() {
SPI.begin();
delay(50);
tft.initR(INITR_BLACKTAB); // initialize a ST7735S
chip, black tab
tft.setRotation(3); //altera a rotação da tela
tft.fillScreen(PRETO);
tft.setCursor(1, tft.height() - 94);
tft.setTextSize(3);
tft.setTextColor(AMARELO);
tft.print(" LMETER");
tft.setCursor(1, tft.height() - 54);
tft.setTextSize(3);
tft.setTextColor(VERDE);
tft.print(" PY2OHH");
delay(10000);
tft.fillScreen(PRETO);
tft.setCursor(1, tft.height() - 128);
tft.setTextSize(1);
tft.setTextColor(BRANCO);
tft.print("FREQUENCIA natural");
tft.setCursor(1, tft.height() - 94);
tft.setTextSize(1);
tft.setTextColor(BRANCO);
tft.print("FREQUENCIA com 150pF");
tft.setCursor(1, tft.height() - 68);
// tft.setTextSize(1);
// tft.setTextColor(BRANCO);
tft.print("CAPACITANCIA inter-espiras");
tft.setCursor(1, tft.height() - 36);
tft.setTextSize(1);
tft.setTextColor(BRANCO);
tft.print(" INDUTANCIA");
tft.setCursor(15, tft.height() - 10);
tft.setTextSize(1);
tft.drawFastHLine(0, tft.height() - 12, tft.width() - 2, AZUL);
tft.setTextColor(BRANCO);
tft.print(" Medidor de Indutancia");
pinMode (4, OUTPUT);
}
void loop() {
frq = 0;
frq1 = 0;
frequencimetro();
}
void frequencimetro() {
FreqCounter::f_comp = 4; // Cal Value / Calibrate with
professional Freq Counter
// este parametro tambem ajusta o valor da frequencia lida
//entre zero e 10
delay (100) ;
FreqCounter::start(1000); // values of 10, 100 or 1000 ms
are practicable for a resolution of 100, 10 and 1 Hz
while (FreqCounter::f_ready == 0) {
frq = (FreqCounter::f_freq);
frq = (10 * frq) / ajuste ;
}
delay (1000);
digitalWrite (4, HIGH);
FreqCounter::start(1000); // values of 10, 100 or 1000 ms
are practicable for a resolution of 100, 10 and 1 Hz
while (FreqCounter::f_ready == 0) {
frq1 = (FreqCounter::f_freq);
frq1 = (10 * frq1) / ajuste ;
}
if (frq > 10000) {
tft.fillRect(1, 11, 140, 22, PRETO);
tft.setCursor(1, tft.height() - 116);
tft.setTextSize(2);
format(frq1);
tft.print(" Hz");
tft.setTextSize(1);
tft.fillRect(1, 45, 140, 12, PRETO);
tft.setCursor(1, tft.height() - 82);
format(frq);
tft.print(" Hz");
if (frq1 > 60000000) {
(frq1 = 0);
}
delay(300);
agoravai();
}
delay(1000);
digitalWrite (4, LOW);
}
void agoravai () {
if (frq > 10000) {
cd = ((cap) / ((pow((frq1 / frq), 2)) - 1)) - pcbcap;
if (cd < 0.01) {
cd = 0;
}
coil = (pow((1000000 / (2 * (3.141516) * (frq /
1000) * sqrt(pcbcap + cap + cd))), 2)) - ls ;
tft.setTextSize(2);
tft.setCursor(1, tft.height() - 58);
tft.fillRect(1, 69, 159, 22, PRETO);
tft.setTextColor(VERDE);
tft.print(cd);
tft.print(" pF");
tft.setCursor(1, tft.height() - 24);
tft.fillRect(1, 103, 159, 22, PRETO);
tft.setTextSize(2);
//tft.print(long(1000 *(coil))); // texto sem
formatação
coil = (long(1000 * (coil))); //texto formatado
format(coil); //texto formatado
tft.setTextSize(2);
tft.print(" nH");
delay(5000);
}
}
//subrotina format para colocar um ponto verde separando milhar
void format(unsigned long value) {
unsigned long j = 10000000;
for (int i = 7; i >= 0; i--) {
int digit = (value / j) % 10;
tft.setTextColor(AMARELO);
tft.print(digit);
if ( (i == 6) || (i == 3)) {
tft.setTextColor(VERDE);
tft.print(".");
}
j /= 10;
}
}