Digital kapacitansmåler kredsløb ved hjælp af Arduino

Digital kapacitansmåler kredsløb ved hjælp af Arduino

I dette indlæg skal vi konstruere et digitalt kapacitansmåler kredsløb ved hjælp af Arduino, der kan måle kapacitans af kondensatorer, der spænder fra 1 mikrofarad til 4000 mikrofarad med rimelig nøjagtighed.



Introduktion

Vi måler kondensatorernes værdi, når værdierne skrevet på kondensatorens krop ikke er læselige, eller for at finde værdien af ​​den aldrende kondensator i vores kredsløb, som skal udskiftes snart eller senere, og der er flere andre grunde til at måle kapacitansen.





For at finde kapacitansen kan vi let måle ved hjælp af et digitalt multimeter, men ikke alle multimetre har kapacitansmålefunktion, og kun de dyre multimetre har denne funktionalitet.

Så her er et kredsløb, som let kan konstrueres og bruges.



Vi fokuserer på kondensatorer med større værdi fra 1 mikrofarad til 4000 mikrofarad, som er tilbøjelige til at miste kapaciteten på grund af ældning, især elektrolytkondensatorer, der består af flydende elektrolyt.

Før vi går i detaljer om kredsløb, skal vi se, hvordan vi kan måle kapacitans med Arduino.

De fleste Arduino kapacitansmåler er afhængige af RC-tidskonstante egenskaber. Så hvad er RC-tidskonstant?

Tidskonstanten for RC-kredsløb kan defineres som den tid, det tager for kondensatoren at nå 63,2% af den fulde opladning. Nul volt er 0% opladning og 100% er kondensatorens fulde spændingsladning.

Produktet af værdien af ​​modstanden i ohm og værdien af ​​kondensatoren i farad giver tidskonstant.

T = R x C

T er tidskonstanten

Ved at omarrangere ovenstående ligning får vi:

C = T / R

C er den ukendte kapacitansværdi.

T er tidskonstanten for RC-kredsløb, som er 63,2% af kondensatoren med fuld opladning.

R er en kendt modstand.

Arduino kan registrere spændingen via en analog pin, og den kendte modstandsværdi kan indtastes i programmet manuelt.

Ved at anvende ligningen C = T / R i programmet kan vi finde den ukendte kapacitansværdi.

Nu vil du have en idé om, hvordan vi kan finde værdien af ​​ukendt kapacitans.

I dette indlæg har jeg foreslået to slags kapacitansmåler, en med LCD-skærm og en anden ved hjælp af seriel skærm.

Hvis du er hyppig bruger af denne kapacitansmåler, er det bedre at gå med LCD-displaydesign, og hvis du ikke er hyppig bruger, skal du hellere gå med seriel skærmdesign, fordi det sparer dig nogle penge på LCD-skærmen.

Lad os nu gå videre til kredsløbsdiagram.

Seriel skærmbaseret kapacitansmåler:



Som du kan se, er kredsløbet meget simpelt, bare et par modstande er nødvendige for at finde den ukendte kapacitans. 1K ohm er den kendte modstandsværdi, og 220 ohm-modstanden bruges til at aflade kondensatoren, mens måleprocessen finder sted. Arduino fornemmer stigende og faldende spænding på pin A0, der er forbundet mellem 1K ohm og 220 ohm modstande. Vær opmærksom på polariteten, hvis du bruger polariserede kondensatorer, så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------------------//

Upload ovenstående kode til Arduino med afsluttet hardwareopsætning. Tilslut først kondensatoren. Åbn den serielle skærm, der står 'Tilslut kondensator'.

Tilslut nu en kondensator, dens kapacitans vises som illustreret nedenfor.

Det viser også den tid, det tager at nå 63,2% af kondensatorens fulde opladningsspænding, hvilket vises som forløbet tid.

Digital kapacitansmåler ved hjælp af Arduino

Kredsløbsdiagram for LCD-baseret kapacitansmåler:

Ovenstående skema er forbindelse mellem LCD-skærm og Arduino. 10K potentiometeret er beregnet til justering af skærmens kontrast. Resten af ​​forbindelserne er selvforklarende.

Ovenstående kredsløb er nøjagtigt det samme som seriel skærmbaseret design, du skal bare tilslutte LCD-skærm.

Program til LCD-baseret kapacitansmåler:

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

Upload den ovennævnte kode med den færdige hardwareopsætning. Tilslut først ikke kondensatoren. Displayet viser 'Tilslut venligst kondensator !!!' nu tilslutter du kondensatoren. Displayet viser kondensatorens værdi og den forløbne tid, det tager at nå 63,2% af kondensatoren med fuld opladning.

Forfatterens prototype:




Forrige: Arduino omdrejningstællerkredsløb til præcise aflæsninger Næste: Sådan styres servomotor ved hjælp af joystick