MEDIDOR DE INDUTORES (Bobinas) com ARDUINO (Roduino Board – Arduino Standalone)
Fala Pessoal! Tudo Beleza? 😉
Vamos hoje falar sobre um circuito eletrônico, ou melhor, vamos montar um pequeno projeto de eletrônica que com certeza será de muita utilidade na bancada de cada um de vocês. Afirmo isso porque quem trabalha com Eletrônica ou mesmo seja um Hobista, seguramente já precisou medir a indutância de alguma bobina que aparece num circuito e quando se deu conta, putz, COMO MEDIR a tal Bobina, o tal Indutor?! 🙄
É aí que este nosso pequeno projeto, mas super útil na bancada de eletrônica vai entrar em ação! Vamos montar um verdadeiro Medidor de Indutância utilizando uma simples placa baseada na mais que conhecida Arduino UNO! Por aqui vamos utilizar a placa de desenvolvimento que nós mesmos aqui do Eletrônica Para Todos projetamos no passado, a própria Roduino V2, uma verdadeira placa “Arduino Standalone“, resumindo – Um Arduino Feito em Casa (oferecemos o projeto completo desta placa gratuitamente aqui no Blog hein)! Dá uma olhada nela aí na foto abaixo. 💡
Bom, sabendo que tipo de placa iremos utilizar, podemos partir para explicar um pouco mais sobre o projeto do Medidor de Indutância em si. Ah! Mas se você não tem a placa Roduino V2, você pode utilizar a sua placa Arduino UNO sem problemas! Mas caso não tenha nenhuma das placas de desenvolvimento, dispomos para venda do Kit Completo da Roduino V2 para montagem aqui no Blog na seção – Roduino Shop. 😀
Então, uma vez sabendo de todos os detalhes para iniciar o desenvolvimento do projeto, seguimos adiante…
Vamos projetar um circuito eletrônico barato, simples mas muito eficiente, completamente capaz de medir valores de indutâncias diversas utilizando como “cérebro”, o microcontrolador ATMega328P da Atmel que vai embarcado tanto em nossa Placa Roduino V2 como na própria placa Arduino UNO.
Nosso projeto quando finalizado, deverá ser capaz de medir indutâncias na faixa desde 100uH até 30.000uH (unidade de medida = microHenry = uH). Sendo que após realizar testes aqui na Bancada do Eletrônica Para Todos, conseguimos medir bobinas com valores tão baixos quanto 60uH até valores maiores que os 35.000uH! 😳
O que precisamos para conseguir montar o circuito eletrônico além da própria placa Roduino V2 ou Arduino UNO? Vamos então para a lista de componentes:
→ (01) CI LM339 (Comparador de Tensão);
→ (02) Capacitores de Poliéster de 1uF;
→ (01) Resistor de 150Ω;
→ (01) Resistor de 330Ω;
→ (01) Diodo Retificador 1N4007;
→ (01) Display LCD do tipo I2C (Opcional);
Uma vez sabendo qual a lista de material necessário para montagem do circuito eletrônico do nosso projeto Medidor de Indutância, então já começamos a conseguir “visualizar” o que o circuito em si irá “fazer”, ou seja, o trabalho que irá realizar, a forma de funcionamento do mesmo. Dá uma olhada no esquemático do circuito abaixo.
Ah! Mas se você não conseguiu “visualizar” ainda, vamos descrever com um pouco mais de detalhes este funcionamento…
Bom, sabemos que um Indutor colocado em paralelo com um Capacitor é chamado de Circuito LC! Nesta configuração dos componentes, na eletrônica, cria-se um circuito que ao receber um determinado pulso de tensão, invariavelmente irá “ressonar”, independentemente da frequência (Hertz) ou da potência que o circuito é induzido a gerar essa frequência de ressonância.
O que nosso circuito vai fazer, é gerar esse pulso de tensão (5V) proveniente da placa Roduino/Arduino através do terminal de saída “13”, então esperar um pouco (tudo configurado no código fonte/sketch) para deixar a “ressonância” acontecer e a partir daí, realizar a medição da indutância da bobina para ser mostrada tanto no Monitor Serial da IDE do Arduino e/ou também no display LCD.
Para se ter ideia de que tipo de cálculo nosso código fonte irá realizar para conseguir calcular e nos mostrar o valor da indutância das bobinas, veja algumas das fórmulas matemáticas abaixo:
Como vemos acima, a primeira fórmula trata de calcular a Frequência de Ressonância e a segunda, calcular a Indutância da bobina “de fato”. 💡
Sabendo disso, o que posso dizer para vocês, é que o “cérebro” da nossa placa de desenvolvimento, sim, o microcontrolador (MCU) ATMega328P e seu circuito interno de “Conversor Analógico-Digital” é capaz de realizar amostras (cálculos) de sinais analógicos de apenas 9.600 Hertz ou 0.1 milissegundos!
Sim, temos que dizer que o MCU é versátil e também “robusto”, capaz de medir uma “rápida” faixa de tempo/frequência, na ordem dos 9,6kHz, MAS….mas…essa faixa não chega nem perto das faixas de tempo/frequência que nosso projeto atual exige para conseguir realizar medições precisas e na faixa de “Henrys” que comentamos no início deste artigo.
Seguindo adiante, o que fazemos para “solucionar” de uma forma eficiente esta “deficiência” do circuito interno conversor analógico-digital do nosso MCU ATMega328P, é utilizar em nosso circuito, um Circuito Integrado Comparador de Tensão, especificamente o modelo LM339, que é capaz de trabalhar até mesmo mais rápidamente que um Amplificador Operacional normal (ex: LM741). (Obs: Nosso projeto também pode funcionar com o LM741, mas a faixa de indutância medida será inferior por sua resposta na aquisição e “transferência/amostragem” de dados ser inferior ao do LM339).
Um detalhe importante para aqueles técnicos e/ou engenheiros de eletrônica:
Ao montar o circuito apresentado no esquemático da imagem acima, percebemos que o circuito integrado LM339 possui uma alta capacitância em sua saída (pino 1 em nosso esquemático), consequentemente sua “reatância capacitiva” se comporta como uma forma de “baixa resistência” (pois temos que ter em consideração que quanto maior a capacitância, menor será a reatância ou a resistência), e exatamente por esta razão, decidimos utilizar no circuito, um resistor de “PullUp” com valor tão baixo (na ordem de 330Ω).
Levando em consideração os “detalhes” importantes descritos acima, o que nosso circuito irá executar como tarefa será aplicar um pulso de sinal diretamente no Circuito “LC” (Indutor-Capacitor(es)). Neste caso, nossa placa Roduino/Arduino enviará este pulso de tensão com amplitude de 5VDC. Esperamos o circuito ser “carregado” por este pulso com tensão de 5V por certo tempo (configurado no código/programa) e em seguida “desligamos” o pulso de tensão de 5V e o levamos diretamente para 0 Volts!
Será com este pulso que o circuito eletrônico deverá “ressonar” e desta forma (através do indutor a ser medido e dos capacitores), criar um sinal “sinusoidal” amortecido e que irá oscilar diretamente na frequência ressonante, ou seja, na frequência que desejamos para conseguir medir (vide fórmula matemática apresentada acima) o valor da indutância do nosso indutor, da nossa bobina em teste! 😎
Resultado…
Aplicamos um pulso de tensão de 5V ao circuito “LC” montado através do pino (I/O) de número 13 da nossa placa Roduino/Arduino por “determinado” tempo. Depois disso, paramos o pulso de tensão para que o circuito eletrônico possa “ressonar”! O circuito integrado LM339 emitirá um sinal de forma de onda quadrada na sua saída possuindo a mesma frequência que o MCU ATMega328P irá ser capaz de medir utilizando a função “PulseIn” (esta função mede o tempo entre cada pulso de onda quadrada). Após isso, as fórmulas matemáticas inseridas corretamente no código do nosso programa, irão efetuar os cálculos para finalmente exibir o valor da indutância medida na tela do Display LCD e/ou no Monitor Serial da IDE do Arduino.
Agora, o que falta para finalizarmos nosso projeto do Medidor de Indutância com a Placa Roduino ou Arduino UNO, é apenas utilizar o código-fonte/Sketch abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
/* -=-=-=-=-=-[Projeto Medidor de Indutância com a Placa Roduino ou Arduino UNO]-=-=-=-=-=- Se você não deseja mostrar a medição no Monitor Serial da IDE, basta exluir os códigos referentes a isso. Deixe apenas as linhas de código que apresentam o resultado da leitura de Indutância no display LCD. Neste projeto utilizamos um Display LCD do tipo I2C. Projeto Modificado e Adaptado por: Rodrigo Costa do Blog - EletronicaParaTodos.com ... Código Original de: electronoobs.com */ #include <Arduino.h> //Configuração do Display LCD (16x2) #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); //as vezes o endereço não é (0x3f). Mude para (0x27) se não funcionar. //13 é a entrada do circuito (conecta-se ao resistor de 150 ohm), 11 é a saída do comparador/amplificador operacional. double pulse, frequency, capacitance, inductance; void setup(){ lcd.init(); lcd.backlight(); Serial.begin(115200); pinMode(11, INPUT); pinMode(13, OUTPUT); Serial.println("Iniciando Medição..."); delay(200); } void loop(){ digitalWrite(13, HIGH); delay(5);//dê algum tempo para carregar o indutor. digitalWrite(13,LOW); delayMicroseconds(100); //verifique se a ressonância é medida. pulse = pulseIn(11,HIGH,5000);//retorna 0 se o limite de tempo chegar if(pulse > 0.1){ //se o tempo limite não ocorrer e dessa forma proceder a leitura: //#error insira o valor de capacitância utilizada aqui. Atualmente estamos utilizando 2uF. Exclua esta linha depois de inserir sua própria capacitância! capacitance = 2.E-6; // - insira o valor da capacitância utilizada aqui. Atualmente setamos 2uF! frequency = 1.E6/(2*pulse); inductance = 1./(capacitance*frequency*frequency*4.*3.14159*3.14159);//um dos meus professores me ensinou a fazer quadrados como na fórmula. inductance *= 1E6; //perceba que isso é o mesmo que dizer indutância = indutância * 1E6 //Impressão Serial (Monitor Serial da IDE) Serial.print("Alto para uS:"); Serial.print( pulse ); Serial.print("\tFrequencia Hz:"); Serial.print( frequency ); Serial.print("\tIndutancia uH:"); Serial.println( inductance ); delay(1000); /** //MicroHenry //Mostra no LCD lcd.clear(); lcd.setCursor(0,0); lcd.print("Indutancia:"); lcd.setCursor(0,1); lcd.print(inductance); lcd.setCursor(14,1); lcd.print("uH"); delay(1000); **/ ///** //MiliHenry //Mostra no LCD lcd.clear(); lcd.setCursor(0,0); lcd.print("Indutancia:"); lcd.setCursor(0,1); lcd.print(inductance / 1000); lcd.setCursor(14,1); lcd.print("mH"); delay(1000); //**/ } } |
No video abaixo apresentamos o circuito eletrônico e também demonstramos seu funcionamento na prática. Dá uma olhada! 😉
? Seja um Padrinho ou Madrinha do Projeto Eletrônica Para Todos!
➤ https://www.padrim.com.br/eletronicaparatodos
? Hospedagem de Sites 50% OFF + SSL Grátis!
➤ https://bit.ly/2UBv3pB
? Acesso ao CURSO COMPLETO de Altium Designer:
➤ https://hotm.art/OdQRbNu
? Nosso CANAL “SECRETO” no TELEGRAM:
➤ https://t.me/eletronicaparatodos
?Aparelho MEDIDOR de LC (Capacitância e Indutância):
✔ http://bit.ly/2HR1WIV
?PLACA RODUINO V2 – ARDUINO UNO STANDALONE:
✔ http://bit.ly/2QVvV8c
✅ AJUDE o Canal Eletrônica Para Todos:
✔ https://pag.ae/7UyMZmYb4
- Medindo e Monitorando a Temperatura com Arduino (Sensor LM35) - 5 de setembro de 2021
- Controle de Cargas através de Entrada Analógica com Arduino - 30 de agosto de 2021
- REVIEW E DICAS – ALICATE AMPERÍMETRO (UNI-T UT210E PRO) - 28 de agosto de 2021
Boa tarde Rodrigo, achei interessante esse projeto gostaria de tentar fazer um, só que os meus conhecimentos com arduíno é pouco, não sei programar nada, só sei copiar e colar, e na compilação da erro na linha (LiquidCrystal_I2C.h) baixei outro software do arduíno achando que era a versão, nada, trocando e colocando a biblioteca do cristal líquido que está no software dele aí passa a linha só que dá erro na próxima, baixei até no celular o arduíno, pensando que poderia ter algum sucesso, copiei e colei o código fonte, ao compilar da erro nessa linha. Outros projetos com programas parecido com esse, chega nessa linha e para, você teria alguma luz para me iluminar.
Olá Benedito! Tudo Bom?
Rapaz, qual o código de erro que aparece exatamente na hora da compilação?
Porque quando você diz que o erro acontece na linha onde menciona a biblioteca, fica meio vago pra mim, pois pode ser justamente a falta da biblioteca no seu sistema operacional (pasta library do Arduino por exemplo).
Se puder dar maiores detalhes, pode ser que fique mais fácil ajudar.
PS: Verifique se a biblioteca está instalada no seu sistema operacional, pois caso não esteja, aí está o problema. 🙂
Olá! Boa tarde! Voltando ao assunto do indutímetro com Arduino e LCD. Refiz o código, mudando a leitura para MicroHenry. Verifiquei a compilação e deu correto. Carreguei e os leds do arduino piscaram normalmente, ficando intermitente o led do pino 13. Parecia tudo certo, mas continuou sem nada no LCD, que apenas permaneceu acendido. E o Serial só apresentou aquela mensagem “Iniciando a leitura…”.
Como eu disse antes, nada fiz diferente do circuito, a não ser uma combinação de resistores. Por não ter o de 150R, usei dois em paralelo medindo 190R no multímetro. Não sei se esse aumento da resistência em 40R implicaria. Enfim, peço desculpa pela insistência e esclareço que não sou um profissional da eletrônica, apenas um hobista.
Abraço.
Olá Paulo! Tudo Bom?
Rapaz, não é incômodo algum suas dúvidas.
Sobre o resistor ter 40 Ohms a mais que o solicitado pelo projeto, sim, ele pode estar fazendo a diferença, já que ele vai em série com o diodo, e este resistor limita a tensão/corrente que será injetada na bobina/indutor em teste! O ideal é conseguir um resistor de valor correto.
Outro detalhe importante, que não mencionei e acho que você também não, é que recomendo fortemente que alimente sua placa Arduino com uma fonte externa e não dependa apenas da conexão USB com seu PC. Isso pode fazer diferença também no resultado final.
Espero que você obtenha sucesso!
Um Abraço,
Rodrigo Costa.
Olá! Boa tarde! Voltando ao assunto do indutímetro com Arduino e LCD. Refiz o código, mudando a leitura para MicroHenry, e usei como referência uma bobina de 220uH, que me pareceu em bom estado, considerando o teste de continuidade. Novamente, verifiquei a compilação e deu correto. Carreguei e os leds do Arduino piscaram normalmente, depois ficando intermitente o led do pino 13. Aparentemente tudo normal. Porém, o LCD apenas acendeu e o Serial apresentou aquela mensagem “Iniciando a leitura…”. A única diferença que fiz no circuito, por não ter um resistor de 150R, foi usar uma combinação em paralelo que mediu 190R no multímetro. Não sei se isto implicaria. Peço-lhe desculpa pela insistência e esclareço que não sou um profissional, um expert da eletrônica, mas apenas um hobista.
Olá Paulo! Tudo Bom?
Rapaz, não é incômodo algum suas dúvidas.
Sobre o resistor ter 40 Ohms a mais que o solicitado pelo projeto, sim, ele pode estar fazendo a diferença, já que ele vai em série com o diodo, e este resistor limita a tensão/corrente que será injetada na bobina/indutor em teste! O ideal é conseguir um resistor de valor correto.
Outro detalhe importante, que não mencionei e acho que você também não, é que recomendo fortemente que alimente sua placa Arduino com uma fonte externa e não dependa apenas da conexão USB com seu PC. Isso pode fazer diferença também no resultado final.
Espero que você obtenha sucesso!
Um Abraço,
Rodrigo Costa.
Ótimo projeto! Como eu estava pesquisando. Então, fiz questão de repeti-lo, inclusive porque o código foi perfeitamente gravado. Mas ao rodar, nada aconteceu, apesar de ter acendido o LCD. E no serial, apenas apareceu “iniciando medição…”. Nada mais. O que terá causado esta falha?
Fala Paulo! Tudo Bom?
Rapaz, se tudo correu bem na gravação do código, então significa que a parte do “cérebro” está funcional.
Sendo assim, o que eu recomendaria você verificar com minúcias, é o circuito eletrônico externo, PRINCIPALMENTE se ele foi montado utilizando uma protoboard!
Digo isso porque já tive e tenho inúmeros “problemas” causados por má conexões dos componentes na protoboard. Parecem estar encaixados, parecem estar fazendo o devido contato elétrico, mas no final, não estão!
Então essa é minha primeira dica. Utilize o multímetro na escala de CONTINUIDADE e confira todas as conexões.
Depois disso, você precisa ter certeza que está utilizando EXATAMENTE os mesmos VALORES de componentes eletrônicos que apresentamos no circuito. Por exemplo, se você estiver utilizando capacitores de valores diferentes e tipos diferentes, então aí pode estar o problema, até porque existe uma linha de código onde utilizamos a capacitância no valor de 2uF, ou seja, se o seu circuito estiver com valor de capacitância “física” diferente, poderemos ter “problemas”.
Outro detalhe importante fica para o real valor do indutor que está se tentando medir, pois este circuito não é TÃO PRECISO quanto um real equipamento medidor de indutâncias, apesar de quebrar um bom galho. Recomendo medir um indutor que saiba que está em perfeito estado e de preferência saiba o valor da indutância dele. A partir daí, inserir o mesmo no nosso circuito e conferir a medição.
Atentar também que o código oferece leitura através do computador com o Leitor Serial e através do painel LCD. Confira qual destes displays você está utilizando e confirme que o código não está com as linhas “comentadas/apagadas” aos olhos do microcontrolador, para dessa forma ter certeza que a medição está sendo realizada e sendo mostrada no display correto e HABILITADO.
Enfim, acho que estas dicas poderão lhe ajudar de alguma forma!
Obrigado pela presença e pelo seu feedback.
Um Abraço,
Rodrigo Costa do Blog,
https://EletronicaParaTodos.com
Bom dia Rodrigo! Tudo bem!
Obrigado por sua pronta resposta. Esse indutímetro é muito importante para eu poder testar e medir umas bobinas que tive de fazer aqui. De todas as suas valiosas recomendações, apenas me falta verificar sobre a leitura do código. Vou ver agora. Mas fiz o circuito na placa, conferi e re-conferi toda a continuidade, usei capacitores (em paralelo) com modelo físico e características iguais (inclusive do mesmo fabricante). Apenas, na leitura do capacímetro, eles somaram 1.99 uF. E também usei um diodo 1N4004 ao invés do 1N4001, que eu não tinha. Não sei até que ponto isto implicaria, sendo usado assim um de maior capacidade. Enfim, vou agora mesmo verificar a minha transcrição do código e retomarei o contato com você.
Abraço.
Olá Paulo! Tudo Bom?
Rapaz, não é incômodo algum suas dúvidas.
Sobre o resistor ter 40 Ohms a mais que o solicitado pelo projeto, sim, ele pode estar fazendo a diferença, já que ele vai em série com o diodo, e este resistor limita a tensão/corrente que será injetada na bobina/indutor em teste! O ideal é conseguir um resistor de valor correto.
Outro detalhe importante, que não mencionei e acho que você também não, é que recomendo fortemente que alimente sua placa Arduino com uma fonte externa e não dependa apenas da conexão USB com seu PC. Isso pode fazer diferença também no resultado final.
Espero que você obtenha sucesso!
Um Abraço,
Rodrigo Costa.