Circuito de medidor de capacitância digital usando Arduino

Experimente Nosso Instrumento Para Eliminar Problemas





Neste post, vamos construir um circuito medidor de capacitância digital usando Arduino, que pode medir a capacitância de capacitores variando de 1 microfarad a 4000 microfarad com precisão razoável.



Introdução

Medimos o valor dos capacitores quando os valores escritos no corpo do capacitor não são legíveis, ou para encontrar o valor do capacitor envelhecido em nosso circuito que precisa ser substituído mais cedo ou mais tarde e há várias outras razões para medir a capacitância.

Para encontrar a capacitância, podemos medir facilmente usando um multímetro digital, mas nem todos os multímetros têm o recurso de medição de capacitância e apenas os multímetros caros têm essa funcionalidade.



Portanto, aqui está um circuito que pode ser construído e usado com facilidade.

Estamos nos concentrando em capacitores com valor maior de 1 microfarad a 4000 microfarad, que são propensos a perder sua capacitância devido ao envelhecimento, especialmente os capacitores eletrolíticos, que consistem em eletrólito líquido.

Antes de entrar em detalhes do circuito, vamos ver como podemos medir a capacitância com o Arduino.

A maioria dos medidores de capacitância Arduino depende da propriedade constante de tempo RC. Então, qual é a constante de tempo RC?

A constante de tempo do circuito RC pode ser definida como o tempo que leva para o capacitor atingir 63,2% da carga total. Zero volt é 0% de carga e 100% é a carga de tensão total do capacitor.

O produto do valor do resistor em ohm e o valor do capacitor em farad dá a constante de tempo.

T = R x C

T é a constante de tempo

Reorganizando a equação acima, obtemos:

C = T / R

C é o valor de capacitância desconhecido.

T é a constante de tempo do circuito RC, que é 63,2% do capacitor de carga total.

R é uma resistência conhecida.

O Arduino pode detectar a tensão via pino analógico e o valor do resistor conhecido pode ser inserido no programa manualmente.

Aplicando a equação C = T / R no programa, podemos encontrar o valor de capacitância desconhecido.

Agora você já deve ter uma ideia de como podemos encontrar o valor da capacitância desconhecida.

Neste post propus dois tipos de medidores de capacitância, um com display LCD e outro com monitor serial.

Se você é um usuário frequente deste medidor de capacitância, é melhor ir com o design de display LCD e se você não é um usuário frequente é melhor ir com o design de monitor serial, porque você economiza algum dinheiro no display LCD.

Agora, vamos prosseguir para o diagrama de circuito.

Medidor de capacitância baseado em monitor serial:



Como você pode ver, o circuito é muito simples, apenas alguns resistores são necessários para encontrar a capacitância desconhecida. O 1K ohm é o valor do resistor conhecido e o resistor de 220 ohm utilizado para descarregar o capacitor enquanto o processo de medição ocorre. O Arduino detecta o aumentando e diminuindo a tensão no pino A0, que está conectado entre resistores de 1K ohm e 220 ohm. Por favor, tome cuidado com a polaridade se estiver usando capacitores polarizados, como eletrolíticos. Programa:
//-----------------Program developed by R.Girish------------------//
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
Serial.print('Value = ')
Serial.print((long)microFarads)
Serial.println(' microFarads')
Serial.print('Elapsed Time = ')
Serial.print(elapsedTime)
Serial.println('mS')
Serial.println('--------------------------------')
}
else
{
Serial.println('Please connect Capacitor!')
delay(1000)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Faça upload do código acima para o Arduino com a configuração de hardware concluída, inicialmente não conecte o capacitor. Abra o monitor serial que diz “Conecte o capacitor”.

Agora conecte um capacitor, sua capacitância será exibida conforme ilustrado abaixo.

Ele também mostra o tempo necessário para atingir 63,2% da tensão de carga total do capacitor, que é mostrado como o tempo decorrido.

Medidor de capacitância digital usando Arduino

Diagrama de circuito para medidor de capacitância baseado em LCD:

O esquema acima é a conexão entre o display LCD e o Arduino. O potenciômetro de 10K é fornecido para ajustar o contraste do display. O resto das conexões são autoexplicativas.

O circuito acima é exatamente igual ao design baseado em monitor serial, você só precisa conectar o monitor LCD.

Programa para medidor de capacitância baseado em LCD:

//-----------------Program developed by R.Girish------------------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
const int analogPin = A0
const int chargePin = 7
const int dischargePin = 6
float resistorValue = 1000 // Value of known resistor in ohm
unsigned long startTime
unsigned long elapsedTime
float microFarads
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(chargePin, OUTPUT)
digitalWrite(chargePin, LOW)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' CAPACITANCE')
lcd.setCursor(0,1)
lcd.print(' METER')
delay(1000)
}
void loop()
{
digitalWrite(chargePin, HIGH)
startTime = millis()
while(analogRead(analogPin) <648){}
elapsedTime = millis() - startTime
microFarads = ((float)elapsedTime / resistorValue) * 1000
if (microFarads > 1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Value = ')
lcd.print((long)microFarads)
lcd.print(' uF')
lcd.setCursor(0,1)
lcd.print('Elapsed:')
lcd.print(elapsedTime)
lcd.print(' mS')
delay(100)
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Please connect')
lcd.setCursor(0,1)
lcd.print('capacitor !!!')
delay(500)
}
digitalWrite(chargePin, LOW)
pinMode(dischargePin, OUTPUT)
digitalWrite(dischargePin, LOW)
while(analogRead(analogPin) > 0) {}
pinMode(dischargePin, INPUT)
}
//-----------------Program developed by R.Girish------------------//

Com a configuração de hardware concluída, carregue o código acima. Inicialmente, não conecte o capacitor. O visor mostra 'Conecte o capacitor !!!' agora você conecta o capacitor. O display mostrará o valor do capacitor e o tempo decorrido para atingir 63,2% da carga total do capacitor.

Protótipo do autor:




Anterior: Circuito de tacômetro Arduino para leituras precisas Próximo: Como controlar servo motor usando joystick