Digitālā kapacitātes mērītāja shēma, izmantojot Arduino

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā ziņojumā mēs izveidosim digitālo kapacitātes mērītāja shēmu, izmantojot Arduino, kas ar saprātīgu precizitāti var izmērīt kondensatoru kapacitāti no 1 mikrofarāda līdz 4000 mikrofarādam.



Ievads

Mēs mērām kondensatoru vērtību, ja uz kondensatora korpusa pierakstītās vērtības nav salasāmas vai atrodam novecojošā kondensatora vērtību mūsu ķēdē, kas drīz vai vēlāk jāmaina, un ir vairāki citi iemesli, lai izmērītu kapacitāti.

Lai atrastu kapacitāti, mēs varam viegli izmērīt, izmantojot digitālo multimetru, taču ne visiem multimetriem ir kapacitātes mērīšanas funkcija, un šī funkcija ir tikai dārgajiem multimetriem.



Tātad šeit ir ķēde, kuru var viegli konstruēt un izmantot.

Mēs koncentrējamies uz kondensatoriem ar lielāku vērtību no 1 mikrofarāda līdz 4000 mikrofaradam, kas noveco, jo īpaši elektrolītiskajiem kondensatoriem, kas sastāv no šķidra elektrolīta, novecošanās dēļ ir tendence zaudēt kapacitāti.

Pirms mēs iedziļināmies ķēdes detaļās, redzēsim, kā mēs varam izmērīt kapacitāti ar Arduino.

Lielākā daļa Arduino kapacitātes mērītāju balstās uz RC laika konstanta īpašībām. Kas tad ir RC laika konstante?

RC ķēdes laika konstanti var definēt kā laiku, kas vajadzīgs, lai kondensators sasniegtu 63,2% no pilnas uzlādes. Nulles spriegums ir 0% lādiņš un 100% ir kondensatora pilna sprieguma lādiņš.

Rezistora vērtības omos un kondensatora vērtības reizinājums faradā dod laika konstanti.

T = R x C

T ir laika konstante

Pārkārtojot iepriekšējo vienādojumu, mēs iegūstam:

C = T / R

C ir nezināma kapacitātes vērtība.

T ir RC ķēdes laika konstante, kas ir 63,2% no pilnas uzlādes kondensatora.

R ir zināma pretestība.

Arduino var uztvert spriegumu, izmantojot analogo tapu, un zināmo rezistora vērtību programmā var ievadīt manuāli.

Izmantojot programmā C = T / R vienādojumu, mēs varam atrast nezināmu kapacitātes vērtību.

Tagad jums būtu ideja, kā mēs varam atrast nezināmas kapacitātes vērtību.

Šajā amatā es esmu ierosinājis divu veidu kapacitātes mērītājus, vienu ar LCD displeju un otru, izmantojot sērijveida monitoru.

Ja jūs bieži lietojat šo kapacitātes mērītāju, labāk izmantojiet LCD displeja dizainu un, ja neesat biežs lietotājs, labāk izmantojiet sērijveida monitora dizainu, jo tas ļauj ietaupīt dažus dolārus LCD displejā.

Tagad pārejam uz ķēdes shēmu.

Sērijas monitora bāzes kapacitātes mērītājs:



Kā redzat, ķēde ir ļoti vienkārša, lai atrastu nezināmu kapacitāti, nepieciešami tikai daži rezistori. 1K omi ir zināmā rezistora vērtība un 220 omu rezistors, ko izmanto kondensatora izlādēšanai, kamēr notiek mērīšanas process. Arduino izjūt pieaugošs un samazinošs spriegums uz tapas A0, kas ir savienots starp 1K omi un 220 omi rezistoriem. Lūdzu, rūpējieties par polaritāti, ja izmantojat polarizētus kondensatorus, piemēram, elektrolītiskos. Programma:
//-----------------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------------------//

Augšupielādējiet iepriekš minēto kodu Arduino ar pabeigtu aparatūras iestatīšanu, sākotnēji nepievienojiet kondensatoru. Atveriet seriālo monitoru, kurā teikts “Lūdzu, pievienojiet kondensatoru”.

Tagad pievienojiet kondensatoru, tā kapacitāte tiks parādīta, kā parādīts zemāk.

Tas arī parāda laiku, kas vajadzīgs, lai sasniegtu 63,2% no kondensatora pilna uzlādes sprieguma, kas tiek parādīts kā pagājušais laiks.

Digitālais kapacitātes mērītājs, izmantojot Arduino

LCD jaudas mērītāja shēmas shēma:

Iepriekš minētā shēma ir savienojums starp LCD displeju un Arduino. 10K potenciometrs ir paredzēts displeja kontrasta pielāgošanai. Pārējie savienojumi ir pašsaprotami.

Iepriekš minētā shēma ir tieši tāda pati kā sērijveida monitora dizains, jums vienkārši jāpieslēdz LCD displejs.

LCD bāzes kapacitātes mērītāja programma:

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

Pēc pabeigtās aparatūras iestatīšanas augšupielādējiet iepriekš minēto kodu. Sākotnēji nepievienojiet kondensatoru. Displejā redzams “Lūdzu, pievienojiet kondensatoru !!!” tagad jūs pievienojat kondensatoru. Displejā tiks parādīta kondensatora vērtība un pagājušais laiks, kas vajadzīgs, lai sasniegtu 63,2% no pilnas uzlādes kondensatora.

Autora prototips:




Pāri: Arduino tahometra shēma precīziem rādījumiem Nākamais: Kā kontrolēt servomotoru, izmantojot kursorsviru