Digital kapacitansmätarkrets med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en digital kapacitansmätarkrets med hjälp av Arduino som kan mäta kapacitans hos kondensatorer från 1 mikrofarad till 4000 mikrofarad med rimlig noggrannhet.



Introduktion

Vi mäter kondensatorernas värde när värdena som skrivs på kondensatorns kropp inte är läsbara, eller för att hitta värdet på den åldrande kondensatorn i vår krets som behöver bytas ut snart eller senare och det finns flera andra skäl att mäta kapacitansen.

För att hitta kapacitansen kan vi enkelt mäta med en digital multimeter, men inte alla multimetrar har kapacitetsmätningsfunktion och endast de dyra multimetrarna har denna funktion.



Så här är en krets som enkelt kan konstrueras och användas.

Vi fokuserar på kondensatorer med större värde från 1 mikrofarad till 4000 mikrofarad som är benägna att förlora sin kapacitans på grund av åldrande, särskilt elektrolytkondensatorer, som består av flytande elektrolyt.

Innan vi går in i kretsdetaljer, låt oss se hur vi kan mäta kapacitans med Arduino.

De flesta Arduino kapacitansmätare är beroende av RC-tidskonstant egenskap. Så vad är RC-tidskonstant?

Tidskonstanten för RC-kretsen kan definieras som den tid det tar för kondensatorn att nå 63,2% av full laddning. Nollspänning är 0% laddning och 100% är kondensatorns fulla spänningsladdning.

Produkten av motståndets värde i ohm och värdet av kondensatorn i farad ger tidskonstant.

T = R x C

T är tidskonstanten

Genom att omorganisera ovanstående ekvation får vi:

C = T / R

C är det okända kapacitansvärdet.

T är tidskonstanten för RC-krets, vilket är 63,2% av fulladdningskondensatorn.

R är ett känt motstånd.

Arduino känner av spänningen via en analog stift och det kända motståndsvärdet kan matas in i programmet manuellt.

Genom att tillämpa ekvationen C = T / R i programmet kan vi hitta det okända kapacitansvärdet.

Nu skulle du ha en idé om hur vi kan hitta värdet av okänd kapacitans.

I det här inlägget har jag föreslagit två typer av kapacitansmätare, en med LCD-skärm och en annan med seriell bildskärm.

Om du är frekvent användare av denna kapacitansmätare är det bättre att gå med LCD-displaydesign och om du inte är frekvent användare bättre gå med seriell bildskärmsdesign eftersom det sparar lite pengar på LCD-skärmen.

Nu går vi vidare till kretsschemat.

Seriell bildskärm baserad kapacitansmätare:



Som du kan se är kretsen väldigt enkel, det behövs bara ett par motstånd för att hitta den okända kapacitansen. 1K ohm är det kända motståndsvärdet och 220 ohm-motståndet som används för urladdning av kondensatorn medan mätprocessen äger rum. stigande och minskande spänning på stift A0 som är ansluten mellan 1K ohm och 220 ohm motstånd. Var noga med polariteten om du använder polariserade kondensatorer som elektrolytisk. Program:
//-----------------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------------------//

Ladda upp koden ovan till Arduino med slutförd hårdvarukonfiguration, anslut först inte kondensatorn. Öppna den seriella bildskärmen där det står 'Anslut kondensator'.

Anslut nu en kondensator, dess kapacitans visas som illustrerat nedan.

Den visar också hur lång tid det tar att nå 63,2% av kondensatorns fulla laddningsspänning, vilket visas som förfluten tid.

Digital kapacitansmätare med Arduino

Kretsschema för LCD-baserad kapacitansmätare:

Ovanstående schematiska är anslutningen mellan LCD-skärm och Arduino. 10K-potentiometern finns för att justera skärmens kontrast. Resten av anslutningarna är självförklarande.

Ovanstående krets är exakt samma som den seriella bildbaserade designen du behöver bara för att ansluta LCD-skärmen.

Program för LCD-baserad kapacitansmätare:

//-----------------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------------------//

Ladda upp ovanstående kod med den slutförda hårdvarukonfigurationen. Anslut initialt inte kondensatorn. Displayen visar 'Vänligen anslut kondensator !!!' nu ansluter du kondensatorn. Displayen visar kondensatorns värde och förfluten tid för att nå 63,2% av fulladdad kondensator.

Författarens prototyp:




Tidigare: Arduino takometerkrets för exakta avläsningar Nästa: Hur man styr servomotor med joystick