ఆర్డునో ఉపయోగించి డిజిటల్ కెపాసిటెన్స్ మీటర్ సర్క్యూట్

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ పోస్ట్‌లో మేము ఆర్డునోను ఉపయోగించి డిజిటల్ కెపాసిటెన్స్ మీటర్ సర్క్యూట్‌ను నిర్మించబోతున్నాము, ఇది 1 మైక్రోఫరాడ్ నుండి 4000 మైక్రోఫారడ్ వరకు కెపాసిటర్ల కెపాసిటెన్స్‌ను సహేతుకమైన ఖచ్చితత్వంతో కొలవగలదు.



పరిచయం

కెపాసిటర్ యొక్క శరీరంలో వ్రాసిన విలువలు స్పష్టంగా లేనప్పుడు లేదా మా సర్క్యూట్లో వృద్ధాప్య కెపాసిటర్ యొక్క విలువను కనుగొనడం కోసం మేము కెపాసిటర్ల విలువను కొలుస్తాము, వీటిని త్వరలో లేదా తరువాత మార్చాల్సిన అవసరం ఉంది మరియు కెపాసిటెన్స్‌ను కొలవడానికి అనేక ఇతర కారణాలు ఉన్నాయి.

కెపాసిటెన్స్‌ను కనుగొనడానికి మనం డిజిటల్ మల్టీమీటర్ ఉపయోగించి సులభంగా కొలవవచ్చు, కాని అన్ని మల్టీమీటర్లకు కెపాసిటెన్స్ కొలిచే లక్షణం లేదు మరియు ఖరీదైన మల్టీమీటర్లకు మాత్రమే ఈ కార్యాచరణ ఉంటుంది.



ఇక్కడ ఒక సర్క్యూట్ ఉంది, దీనిని సులభంగా నిర్మించవచ్చు మరియు ఉపయోగించవచ్చు.

1 మైక్రోఫరాడ్ నుండి 4000 మైక్రోఫారడ్ వరకు పెద్ద విలువ కలిగిన కెపాసిటర్లపై మేము దృష్టి కేంద్రీకరిస్తున్నాము, అవి వృద్ధాప్యం కారణంగా దాని కెపాసిటెన్స్ కోల్పోయే అవకాశం ఉంది, ముఖ్యంగా ఎలక్ట్రోలైటిక్ కెపాసిటర్లు, వీటిలో ద్రవ ఎలక్ట్రోలైట్ ఉంటుంది.

మేము సర్క్యూట్ వివరాల్లోకి వెళ్ళే ముందు, ఆర్డునోతో కెపాసిటెన్స్‌ను ఎలా కొలవగలమో చూద్దాం.

చాలా ఆర్డునో కెపాసిటెన్స్ మీటర్ RC సమయం స్థిరమైన ఆస్తిపై ఆధారపడుతుంది. కాబట్టి RC సమయ స్థిరాంకం అంటే ఏమిటి?

RC సర్క్యూట్ యొక్క సమయ స్థిరాంకం కెపాసిటర్ పూర్తి ఛార్జ్‌లో 63.2% చేరుకోవడానికి తీసుకున్న సమయం అని నిర్వచించవచ్చు. జీరో వోల్ట్ 0% ఛార్జ్ మరియు 100% కెపాసిటర్ యొక్క పూర్తి వోల్టేజ్ ఛార్జ్.

ఓం లో రెసిస్టర్ విలువ మరియు ఫరాడ్‌లోని కెపాసిటర్ విలువ యొక్క ఉత్పత్తి సమయం స్థిరంగా ఉంటుంది.

T = R x C.

T అనేది సమయ స్థిరాంకం

పై సమీకరణాన్ని క్రమాన్ని మార్చడం ద్వారా మనకు లభిస్తుంది:

సి = టి / ఆర్

సి తెలియని కెపాసిటెన్స్ విలువ.

T అనేది RC సర్క్యూట్ యొక్క సమయ స్థిరాంకం, ఇది పూర్తి ఛార్జ్ కెపాసిటర్ యొక్క 63.2%.

R తెలిసిన ప్రతిఘటన.

Arduino అనలాగ్ పిన్ ద్వారా వోల్టేజ్‌ను గ్రహించగలదు మరియు తెలిసిన రెసిస్టర్ విలువను ప్రోగ్రామ్‌లో మానవీయంగా నమోదు చేయవచ్చు.

ప్రోగ్రామ్‌లో C = T / R సమీకరణాన్ని వర్తింపజేయడం ద్వారా మనకు తెలియని కెపాసిటెన్స్ విలువను కనుగొనవచ్చు.

తెలియని కెపాసిటెన్స్ విలువను మేము ఎలా కనుగొనవచ్చో మీకు ఇప్పుడు ఒక ఆలోచన ఉంటుంది.

ఈ పోస్ట్‌లో నేను రెండు రకాల కెపాసిటెన్స్ మీటర్‌ను ప్రతిపాదించాను, ఒకటి ఎల్‌సిడి డిస్‌ప్లేతో మరియు మరొకటి సీరియల్ మానిటర్ ఉపయోగించి.

మీరు ఈ కెపాసిటెన్స్ మీటర్ యొక్క తరచూ వినియోగదారులైతే ఎల్‌సిడి డిస్‌ప్లే డిజైన్‌తో వెళ్లడం మంచిది మరియు మీరు తరచూ యూజర్ కాకపోతే సీరియల్ మానిటర్ డిజైన్‌తో వెళ్లండి ఎందుకంటే ఇది ఎల్‌సిడి డిస్‌ప్లేలో మీకు కొన్ని బక్స్ ఆదా అవుతుంది.

ఇప్పుడు సర్క్యూట్ రేఖాచిత్రానికి వెళ్దాం.

సీరియల్ మానిటర్ ఆధారిత కెపాసిటెన్స్ మీటర్:



మీరు చూడగలిగినట్లుగా, తెలియని కెపాసిటెన్స్‌ను కనుగొనడానికి కేవలం రెండు రెసిస్టర్లు అవసరమవుతాయి. 1 కె ఓం అనేది తెలిసిన రెసిస్టర్ విలువ మరియు కొలత ప్రక్రియ జరిగేటప్పుడు కెపాసిటర్‌ను విడుదల చేయడానికి 220 ఓం రెసిస్టర్‌ను ఉపయోగిస్తారు. 1K ఓం మరియు 220 ఓం రెసిస్టర్‌ల మధ్య అనుసంధానించబడిన పిన్ A0 పై పెరుగుతున్న మరియు తగ్గుతున్న వోల్టేజ్. మీరు విద్యుద్విశ్లేషణ వంటి ధ్రువణ కెపాసిటర్లను ఉపయోగిస్తుంటే దయచేసి ధ్రువణత గురించి జాగ్రత్త వహించండి. కార్యక్రమం:
//-----------------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------------------//

పూర్తి చేసిన హార్డ్‌వేర్ సెటప్‌తో పై కోడ్‌ను ఆర్డునోకు అప్‌లోడ్ చేయండి, ప్రారంభంలో కెపాసిటర్‌ను కనెక్ట్ చేయవద్దు. “దయచేసి కెపాసిటర్‌ను కనెక్ట్ చేయండి” అని చెప్పే సీరియల్ మానిటర్‌ను తెరవండి.

ఇప్పుడు ఒక కెపాసిటర్‌ను కనెక్ట్ చేయండి, దాని కెపాసిటెన్స్ క్రింద చూపిన విధంగా ప్రదర్శించబడుతుంది.

ఇది కెపాసిటర్ యొక్క పూర్తి ఛార్జ్ వోల్టేజ్‌లో 63.2% ని చేరుకోవడానికి తీసుకున్న సమయాన్ని కూడా చూపిస్తుంది, ఇది గడిచిన సమయం అని చూపబడుతుంది.

ఆర్డునో ఉపయోగించి డిజిటల్ కెపాసిటెన్స్ మీటర్

LCD ఆధారిత కెపాసిటెన్స్ మీటర్ కోసం సర్క్యూట్ రేఖాచిత్రం:

పై స్కీమాటిక్ ఎల్‌సిడి డిస్‌ప్లే మరియు ఆర్డునో మధ్య కనెక్షన్. ప్రదర్శన యొక్క విరుద్ధతను సర్దుబాటు చేయడానికి 10K పొటెన్షియోమీటర్ అందించబడుతుంది. మిగిలిన కనెక్షన్లు స్వీయ వివరణాత్మకమైనవి.

పై సర్క్యూట్ మీరు ఎల్‌సిడి డిస్‌ప్లేను కనెక్ట్ చేయాల్సిన సీరియల్ మానిటర్ ఆధారిత డిజైన్‌తో సమానంగా ఉంటుంది.

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

పూర్తయిన హార్డ్‌వేర్ సెటప్‌తో పై కోడ్‌ను అప్‌లోడ్ చేయండి. ప్రారంభంలో కెపాసిటర్‌ను కనెక్ట్ చేయవద్దు. ప్రదర్శన 'దయచేసి కెపాసిటర్‌ను కనెక్ట్ చేయండి !!!' ఇప్పుడు మీరు కెపాసిటర్‌ను కనెక్ట్ చేస్తారు. ప్రదర్శన కెపాసిటర్ యొక్క విలువను చూపిస్తుంది మరియు పూర్తి ఛార్జ్ కెపాసిటర్‌లో 63.2% చేరుకోవడానికి తీసుకున్న సమయం.

రచయిత యొక్క నమూనా:




మునుపటి: ఖచ్చితమైన రీడింగుల కోసం ఆర్డునో టాకోమీటర్ సర్క్యూట్ తర్వాత: జాయ్ స్టిక్ ఉపయోగించి సర్వో మోటార్‌ను ఎలా నియంత్రించాలి