Circuito de ohmímetro digital Arduino simples

Experimente Nosso Instrumento Para Eliminar Problemas





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

Objetivo do circuito

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



O principal objetivo deste projeto é usar o valor de resistência lido pelo arduino para fazer alguns projetos úteis, por exemplo, alarme de incêndio, onde a mudança 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 d'água. A possibilidade de projetos fica por conta da sua imaginação.

Vamos ver como fazer um ohmímetro primeiro e depois passamos para outras ideias de circuito.



Como funciona

Circuito do Ohmímetro Arduino

O circuito consiste em Arduino, você pode usar sua placa Arduino favorita, um display LCD 16x2 para mostrar o valor do resistor desconhecido, um potenciômetro para ajustar o nível de contraste do display LCD. Dois resistores são usados, um dos quais é o valor do resistor conhecido e outro é o valor do resistor desconhecido.

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 tem um conversor analógico para digital de 10 bits integrado.

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 de resistência conhecido podem ser interpretados para encontrar o valor de resistência desconhecido.

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

Protótipo do autor:

Protótipo do ohmímetro digital Arduino

Programa para ohmímetro:

//-------------Program developed by R.Girish--------//
#include
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 do resistor conhecido no circuito, mas se o fizer, altere o valor no programa também.

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

Da mesma forma, também é verdade para este ohmímetro.

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

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

Também declararemos o valor do limite no programa, uma vez que ele cruze 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 // Define o limite de resistência em Ohms
Substitua 7800 ohm pelo seu valor.
• float R = 10000 // Resistor de valor conhecido em Ohm
Substitua 10000 ohm pelo valor conhecido do resistor.
• if (th> resistor)

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

Se você quiser ligar o relé quando a leitura do sensor ficar acima do limite e vice-versa, basta substituir 'if (thresistor)'

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

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




Anterior: Circuito Controlador de Nível de Armazenamento de Material Próximo: Circuito de tacômetro de 10 LED