Krug digitalnog mjerača kapaciteta koji koristi Arduino

Krug digitalnog mjerača kapaciteta koji koristi Arduino

U ovom ćemo tekstu konstruirati krug digitalnog mjerača kapacitivnosti pomoću Arduina koji može mjeriti kapacitivnost kondenzatora u rasponu od 1 mikrofarad do 4000 mikrofarad s razumnom točnošću.



Uvod

Mjerimo vrijednost kondenzatora kada vrijednosti zapisane na tijelu kondenzatora nisu čitljive ili da bismo pronašli vrijednost starenja kondenzatora u našem krugu koji treba uskoro ili kasnije zamijeniti, a postoji i nekoliko drugih razloga za mjerenje kapacitivnosti.





Da bismo pronašli kapacitet, možemo ga lako izmjeriti pomoću digitalnog multimetra, ali nemaju svi multimetri značajku za mjerenje kapacitivnosti, a samo skupi multimetri imaju ovu funkciju.

Dakle, ovdje je sklop koji se može konstruirati i koristiti s lakoćom.



Fokusiramo se na kondenzatore veće vrijednosti od 1 mikrofarada do 4000 mikrofarada koji su skloni gubljenju kapaciteta zbog starenja, posebno elektrolitskih kondenzatora, koji se sastoje od tekućeg elektrolita.

Prije nego što krenemo u detalje kruga, pogledajmo kako možemo izmjeriti kapacitet s Arduinom.

Većina Arduino mjerača kapacitivnosti oslanja se na svojstvo RC vremenske konstante. Pa, što je RC vremenska konstanta?

Vremenska konstanta RC kruga može se definirati kao vrijeme potrebno da kondenzator dosegne 63,2% punog napunjenja. Nulti volt je 0% punjenja, a 100% puni napon kondenzatora.

Umnožak vrijednosti otpora u ohmu i vrijednosti kondenzatora u faradu daje vremensku konstantu.

T = R x C

T je vremenska konstanta

Preuređivanjem gornje jednadžbe dobivamo:

C = T / R

C je nepoznata vrijednost kapacitivnosti.

T je vremenska konstanta RC kruga koji čini 63,2% kondenzatora s punim nabojem.

R je poznati otpor.

Arduino može osjetiti napon putem analognog pina, a poznata vrijednost otpornika može se ručno unijeti u program.

Primjenom jednadžbe C = T / R u programu možemo pronaći nepoznatu vrijednost kapacitivnosti.

Do sada biste imali ideju kako možemo pronaći vrijednost nepoznatog kapaciteta.

U ovom postu predložio sam dvije vrste mjerača kapacitivnosti, jednu s LCD zaslonom i drugu koja koristi serijski monitor.

Ako ste česti korisnik ovog mjerača kapacitivnosti, bolje je s dizajnom LCD zaslona, ​​a ako niste česti korisnik, bolje je serijskim dizajnom monitora jer će vam uštedjeti novac na LCD zaslonu.

Sada prijeđimo na shemu sklopova.

Mjerač kapacitivnosti zasnovan na serijskom monitoru:



Kao što vidite, sklop je vrlo jednostavan, potrebno je samo nekoliko otpornika kako bi se pronašao nepoznati kapacitet. 1K ohm je poznata vrijednost otpora i otpor od 220 ohma koji se koristi za pražnjenje kondenzatora dok se odvija proces mjerenja. porast i opadanje napona na pinu A0 koji je povezan između otpornika od 1K ohma i 220 ohma.Pazite na polaritet ako koristite polarizirane kondenzatore poput elektrolitskih. 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------------------//

Prenesite gornji kod u Arduino s dovršenim postavljanjem hardvera, u početku nemojte spajati kondenzator. Otvorite serijski monitor na kojem piše 'Molimo spojite kondenzator'.

Sada spojite kondenzator, njegov kapacitet bit će prikazan kao što je prikazano dolje.

Također pokazuje vrijeme potrebno za postizanje 63,2% napona punog napunjenja kondenzatora, što je prikazano kao proteklo vrijeme.

Digitalni mjerač kapaciteta pomoću Arduina

Shema spoja za LCD mjerač kapacitivnosti:

Gornja shema je veza između LCD zaslona i Arduina. Potenciometar 10K predviđen je za podešavanje kontrasta zaslona. Ostale veze su same po sebi razumljive.

Gore navedeni sklop potpuno je isti kao i dizajn serijskog zaslona koji trebate povezati s LCD zaslonom.

Program za LCD mjerač kapacitivnosti:

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

Nakon dovršenog postavljanja hardvera prenesite gornji kod. U početku nemojte spajati kondenzator. Na zaslonu se prikazuje 'Molimo spojite kondenzator !!!' sad spajate kondenzator. Zaslon će prikazati vrijednost kondenzatora i proteklo vrijeme potrebno da dosegne 63,2% kondenzatora s punim punjenjem.

Autorski prototip:




Prethodno: Arduino krug tahometra za precizno očitavanje Dalje: Kako upravljati servo motorom pomoću džojstika