Fazer Ohmímetro Digital com Arduino

Neste post, vamos construir um circuito simples de ohmímetro digital usando Arduino e display LCD 16×2. Também exploraremos as outras idéias de circuito possíveis usando o mesmo conceito.

 Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc...
Veja na FONTE até ser revisado o post. -status (revisado 60% 06/11/2019)-
 Mas se gostou compartilhe!!! 

Objetivo do circuito

O lema deste artigo não é apenas fazer um ohmímetro para medir a resistência; seu multímetro pode fazer o mesmo.

O principal objetivo deste projeto é usar o valor de resistência lido pelo arduino para realizar alguns projetos úteis, por exemplo, alarme de incêndio, onde a alteração no valor de resistência do termistor pode ser facilmente detectada ou sistema de irrigação automático onde, se a resistência do solo vai alto, o microcontrolador pode acionar a bomba de água. A possibilidade de projetos depende de sua imaginação.

Vamos ver como fazer um ohmímetro primeiro e depois vamos para outras idéias de circuito.

Como funciona

O circuito consiste em Arduino; você pode usar sua placa Arduino favorita, uma tela LCD de 16×2 para mostrar o valor desconhecido do resistor, um potenciômetro para ajustar o nível de contraste da tela LCD. São utilizados dois resistores, um dos quais é o valor conhecido do resistor e o outro é o valor desconhecido do resistor.

A resistência é uma função analógica, mas o valor exibido no LCD é uma função digital. Portanto, precisamos fazer a conversão analógica para digital, felizmente o Arduino possui um conversor analógico-digital de 10 bits embutido.

O ADC de 10 bits pode diferenciar 1024 níveis de tensão discretos, 5 volts são aplicados a 2 resistores e a amostra de tensão é coletada entre os resistores.

Usando alguns cálculos matemáticos, a queda de tensão no nó e o valor conhecido da resistência podem ser interpretados para encontrar o valor desconhecido da resistência.

As equações matemáticas são escritas no programa, portanto, nenhum cálculo manual precisa ser feito, podemos ler o valor direto no visor LCD.

Protótipo do autor:

Programa para Ohmímetro:

 //-------------Program developed by R.Girish--------//
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int analogPin=0;
int x=0;
float Vout=0;
float R=10000; //Known Resistor value in Ohm
float resistor=0;
float buffer=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("----OHM METER---");
}
void loop()
{
x=analogRead(analogPin);
buffer=x*5;
Vout=(buffer)/1024.0;
buffer=(5/Vout)-1;
resistor=R*buffer;
lcd.setCursor(0,1);
lcd.print("R = ");
lcd.print(resistor);
lcd.print(" Ohm");
delay(3000);
}
//-------------Program developed by R.Girish--------// 

NOTA: float R=10000;  // Valor conhecido do resistor em Ohm

Você pode alterar o valor conhecido do resistor no circuito, mas se o fizer, altere também o valor no programa.

Como um multímetro convencional, este circuito ohmímetro digital do Arduino também possui algumas faixas para medir a resistência. Se você tentar medir um resistor de baixo valor na faixa de mega ohms em seu multímetro, certamente obterá valores de erro.

Da mesma forma, também é válido para este ohmímetro.

Se você deseja medir a resistência de 1K a 50K ohm, o resistor conhecido de 10K será suficiente, mas se você medir a faixa de mega ohms ou a faixa de poucos ohms, obterá algumas leituras de lixo. Portanto, é necessário alterar o valor do resistor conhecido para uma faixa apropriada.

Na próxima seção deste artigo, estudaremos o circuito da tela LCD para o ohmímetro; e veremos como ler o valor do sensor (resistência desconhecida) no monitor serial.

Também declararemos o valor limite no programa, uma vez que ele ultrapassa o limite pré-determinado, o Arduino acionará o relé.

Diagrama de circuito: 

Código do programa:

 //-------------Program developed by R.Girish--------//
float th=7800; // Set resistance threshold in Ohms
int analogPin=0;
int x=0;
float Vout=0;
float R=10000; //Known value Resistor in Ohm
float resistor=0;
float buffer=0;
int op=7;
void setup()
{
Serial.begin(9600);
pinMode(op,OUTPUT);
digitalWrite(op,LOW);
}
void loop()
{
x=analogRead(analogPin);
buffer=x*5;
Vout=(buffer)/1024.0;
buffer=(5/Vout)-1;
resistor=R*buffer;
Serial.print("R = ");
Serial.print(resistor);
Serial.println(" Ohm");
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH);
Serial.println("Output is ON");
delay(3000);
}
else
{
digitalWrite(op,LOW);
Serial.println("Output is OFF");
delay(3000);
}
}
//-------------Program developed by R.Girish--------// 

NOTA:

• float th = 7800; // Defina o limite de resistência em Ohms
Substitua 7800 ohm pelo seu valor.
Float R = 10000; // Valor conhecido Resistor em Ohm
Substitua 10000 ohm pelo seu valor conhecido do resistor.
• se (th> resistor)

Esta linha do programa afirma que, se a resistência do sensor ficar abaixo do valor limite, a saída será ativada e vice-versa.

Se você deseja ligar o relé quando a leitura do sensor estiver acima do limite e vice-versa, substitua “if (th <resistor)” por “if (th> resistor)”

Medindo a resistência do sensor diretamente (LDR ou termistor ou qualquer outra coisa) e estabelecendo um limite, podemos obter grande precisão de controle sobre relé, LEDs, motor e outros periféricos.

É melhor do que os comparadores, nos quais definimos uma tensão de referência e um limiar, girando um resistor variável às cegas para realizar projetos semelhantes.

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o post. -status (revisado 60% 06/11/2019)-

Mas se gostou compartilhe!!!

FONTE

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui