Circuit de mesurador de capacitat digital mitjançant Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest post anem a construir un circuit de mesurament de capacitat digital mitjançant Arduino que pugui mesurar la capacitat de condensadors que van des de 1 microfarad fins a 4000 microfarad amb una precisió raonable.



Introducció

Mesurem el valor dels condensadors quan els valors que s’escriuen al cos del condensador no són llegibles o per trobar el valor del condensador envellit al nostre circuit que cal substituir aviat o més tard i hi ha diverses altres raons per mesurar la capacitat.

Per trobar la capacitat podem mesurar fàcilment mitjançant un multímetre digital, però no tots els multímetres tenen una funció de mesurament de capacitat i només els costosos multímetres tenen aquesta funcionalitat.



Així doncs, aquí teniu un circuit que es pot construir i utilitzar amb facilitat.

Ens centrem en condensadors amb un valor superior des de 1 microfarad fins a 4.000 microfarad que són propensos a perdre la seva capacitat a causa de l'envelliment, especialment els condensadors electrolítics, que consisteixen en electròlits líquids.

Abans d’entrar en els detalls del circuit, vegem com podem mesurar la capacitat amb Arduino.

La majoria de mesuradors de capacitat Arduino es basen en propietats de constant de temps RC. Llavors, què és la constant de temps de RC?

La constant de temps del circuit RC es pot definir com el temps que ha trigat el condensador a assolir el 63,2% de la càrrega completa. El voltatge zero suposa una càrrega del 0% i el 100% és la càrrega de voltatge total del condensador.

El producte del valor de la resistència en ohm i del valor del condensador en farad dóna una constant de temps.

T = R x C

T és la constant de temps

Reorganitzant l’equació anterior obtenim:

C = T / R

C és el valor de capacitat desconegut.

T és la constant de temps del circuit RC que és el 63,2% del condensador de càrrega completa.

R és una resistència coneguda.

L'Arduino pot detectar la tensió mitjançant pin analògic i el valor de resistència conegut es pot introduir manualment al programa.

Aplicant l’equació C = T / R al programa podem trobar el valor de capacitat desconegut.

A hores d’ara ja tindreu una idea de com podem trobar el valor de la capacitat desconeguda.

En aquest post he proposat dos tipus de mesuradors de capacitat, un amb pantalla LCD i un altre amb monitor sèrie.

Si utilitzeu aquest mesurador de capacitància amb freqüència, és millor utilitzar el disseny de pantalla LCD i, si no esteu usuari freqüent, utilitzeu un disseny de monitor sèrie perquè us estalvieu alguns diners en la pantalla LCD.

Passem ara al diagrama de circuits.

Mesurador de capacitat basat en monitor sèrie:



Com podeu veure, el circuit és molt senzill, només calen un parell de resistències per trobar la capacitat desconeguda: l’1 K ohm és el valor de la resistència conegut i la resistència de 220 ohm que s’utilitza per descarregar el condensador mentre es produeix el procés de mesura. tensió ascendent i decreixent al pin A0 que està connectat entre resistències de 1K ohm i 220 ohm. Si us plau, tingueu en compte la polaritat si utilitzeu condensadors polaritzats com ara electrolítics. 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------------------//

Pengeu el codi anterior a Arduino amb la configuració de maquinari completa, inicialment no connecteu el condensador. Obriu el monitor sèrie que diu 'Connecteu el condensador'.

Ara connecteu un condensador, la seva capacitat es mostrarà tal com es mostra a continuació.

També mostra el temps necessari per arribar al 63,2% de la tensió de càrrega completa del condensador, que es mostra com a temps transcorregut.

Mesurador de capacitat digital mitjançant Arduino

Diagrama de circuits del mesurador de capacitat basat en LCD:

L'esquema anterior és la connexió entre la pantalla LCD i Arduino. El potenciòmetre de 10K es proporciona per ajustar el contrast de la pantalla. La resta de connexions s’expliquen per si mateixes.

El circuit anterior és exactament el mateix que el disseny basat en el monitor sèrie, només cal connectar la pantalla LCD.

Programa per mesurador de capacitat basat en 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------------------//

Amb la configuració de maquinari completa, pengeu el codi anterior. Al principi no connecteu el condensador. A la pantalla es mostra 'Connecta el condensador !!!' ara connecteu el condensador. La pantalla mostrarà el valor del condensador i el temps transcorregut per arribar al 63,2% del condensador de càrrega completa.

Prototip de l'autor:




Anterior: Circuit del tacòmetre Arduino per a lectures precises Següent: Com controlar el servomotor mitjançant el joystick