Obvod merača digitálnej kapacity pomocou Arduina

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme obvod digitálneho kapacitného merača pomocou Arduina, ktorý dokáže s primeranou presnosťou merať kapacitu kondenzátorov od 1 mikrofaradu do 4000 mikrofaradu.



Úvod

Meriame hodnotu kondenzátorov, keď hodnoty napísané na tele kondenzátora nie sú čitateľné, alebo aby sme našli hodnotu starnúceho kondenzátora v našom obvode, ktorú je potrebné čoskoro alebo neskôr vymeniť, a existuje niekoľko ďalších dôvodov na meranie kapacity.

Aby sme našli kapacitu, môžeme ľahko merať pomocou digitálneho multimetra, ale nie všetky multimetre majú funkciu merania kapacity a túto funkciu majú iba drahé multimetre.



Takže tu je obvod, ktorý je možné ľahko zostaviť a použiť.

Zameriavame sa na kondenzátory s vyššou hodnotou od 1 mikrofaradu do 4000 mikrofaradov, ktoré sú náchylné stratiť svoju kapacitu v dôsledku starnutia, najmä elektrolytické kondenzátory, ktoré pozostávajú z tekutého elektrolytu.

Predtým, ako sa pozrieme na podrobnosti obvodu, pozrime sa, ako môžeme merať kapacitu pomocou Arduina.

Väčšina meračov kapacity Arduino sa spolieha na vlastnosť časovej konštanty RC. Čo je teda časová konštanta RC?

Časovú konštantu RC obvodu je možné definovať ako čas potrebný na to, aby kondenzátor dosiahol 63,2% plného nabitia. Nula voltu je 0% nabitia a 100% je úplné nabitie kondenzátora.

Súčet hodnoty odporu v ohmoch a hodnoty kondenzátora vo farade dáva časovú konštantu.

T = R x C

T je časová konštanta

Usporiadaním vyššie uvedenej rovnice dostaneme:

C = T / R

C je neznáma hodnota kapacity.

T je časová konštanta RC obvodu, čo je 63,2% kondenzátora plného nabitia.

R je známa rezistencia.

Arduino dokáže snímať napätie cez analógový pin a hodnotu známeho rezistora je možné do programu zadať manuálne.

Aplikáciou rovnice C = T / R v programe nájdeme neznámu hodnotu kapacity.

Teraz by ste už mali predstavu, ako môžeme zistiť hodnotu neznámej kapacity.

V tomto príspevku som navrhol dva druhy kapacitného merača, jeden s LCD displejom a druhý pomocou sériového monitora.

Ak ste častým používateľom tohto kapacitného merača, je lepšie ísť s dizajnom LCD displeja a ak nie ste častým používateľom, radšej by ste mali ísť s dizajnom sériového monitora, pretože vám to na LCD displeji ušetrí nejaké peniaze.

Teraz prejdime k schéme zapojenia.

Kapacitný merač založený na sériovom monitore:



Ako vidíte, obvod je veľmi jednoduchý, na nájdenie neznámej kapacity je potrebných len pár rezistorov. 1K ohm je známa hodnota rezistora a 220 ohmový rezistor používaný na vybíjanie kondenzátora, keď k meraciemu procesu dochádza. stúpajúce a klesajúce napätie na kolíku A0, ktorý je pripojený medzi rezistormi 1K ohm a 220 ohm. Ak používate polarizované kondenzátory, napríklad elektrolytické, dbajte na polaritu. 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------------------//

Nahrajte vyššie uvedený kód do Arduina s dokončeným nastavením hardvéru, spočiatku nepripojujte kondenzátor. Otvorte sériový monitor s nápisom „Pripojte kondenzátor“.

Teraz pripojte kondenzátor, jeho kapacita sa zobrazí, ako je to znázornené nižšie.

Ukazuje tiež čas potrebný na dosiahnutie 63,2% plného nabíjacieho napätia kondenzátora, ktorý sa zobrazuje ako uplynulý čas.

Digitálny kapacitný merač využívajúci Arduino

Schéma zapojenia kapacitného merača založeného na LCD:

Vyššie uvedená schéma predstavuje prepojenie medzi LCD displejom a Arduinom. 10K potenciometer slúži na nastavenie kontrastu displeja. Ostatné spojenia sú samozrejmé.

Vyššie uvedený obvod je úplne rovnaký ako pri sériovom monitore, ktorý potrebujete len na pripojenie LCD displeja.

Program pre kapacitný merač na báze 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------------------//

Po dokončení nastavenia hardvéru nahrajte vyššie uvedený kód. Spočiatku nepripojujte kondenzátor. Na displeji sa zobrazí „Pripojte kondenzátor !!!“ teraz pripojis kondenzator. Na displeji sa zobrazí hodnota kondenzátora a uplynulý čas potrebný na dosiahnutie 63,2% kondenzátora úplného nabitia.

Prototyp autora:




Dvojica: Okruh tachometra Arduino pre presné čítanie Ďalej: Ako ovládať servomotor pomocou joysticku