Digitaalne mahtuvusmõõturi vooluring Arduino abil

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame Arduino abil digitaalse mahtuvusmõõturi vooluahela, mis suudab mõistliku täpsusega mõõta kondensaatorite mahtuvust vahemikus 1 kuni 4000 mikrofaradi.



Sissejuhatus

Mõõdame kondensaatorite väärtust siis, kui kondensaatori korpusele kirjutatud väärtused pole loetavad, või leiame vananeva kondensaatori väärtuse meie ahelas, mis tuleb varsti või hiljem asendada ja mille mahtuvuse mõõtmiseks on mitu muud põhjust.

Mahtuvuse leidmiseks saame digitaalse multimeetri abil hõlpsasti mõõta, kuid kõigil multimeetritel pole mahtuvuse mõõtmise funktsiooni ja ainult kallitel multimeetritel on see funktsioon.



Nii et siin on vooluring, mida saab hõlpsasti konstrueerida ja kasutada.

Keskendume suurema väärtusega kondensaatoritele vahemikus 1 mikrofarad kuni 4000 mikrofaradit, mis on vananemise tõttu altid kaotama, eriti elektrolüütkondensaatorid, mis koosnevad vedelast elektrolüüdist.

Enne kui läheme vooluringi üksikasjadesse, vaatame, kuidas saame Arduino abil mõõta mahtuvust.

Enamik Arduino mahtuvusmõõturit tugineb RC ajakonstandi omadustele. Mis on RC ajakonstant?

RC vooluahela ajakonstandi võib määratleda kui aega, mis kulub kondensaatori jõudmiseks 63,2% -ni täislaadimisest. Nullvolt on 0% laengut ja 100% on kondensaatori täispinge laeng.

Takisti väärtuse korrutis oomides ja kondensaatori väärtuse korrutis faraadis annab ajakonstandi.

T = R x C

T on ajakonstant

Ülaloleva võrrandi ümberkorraldamisega saame:

C = T / R

C on tundmatu mahtuvuse väärtus.

T on RC-ahela ajakonstant, mis on 63,2% täislaetud kondensaatorist.

R on teadaolev takistus.

Arduino tunneb pinget analoognõela kaudu ja teadaoleva takisti väärtuse saab programmi sisestada käsitsi.

Rakendades võrrandit C = T / R, võime leida tundmatu mahtuvuse väärtuse.

Nüüd on teil idee, kuidas me saame teada tundmatu mahtuvuse väärtuse.

Selles postituses olen pakkunud välja kahte tüüpi mahtuvusmõõturit, üks LCD-ekraaniga ja teine ​​seerianumbriga.

Kui olete selle mahtuvusmõõturi sagedane kasutaja, on parem minna LCD-ekraani kujundusega ja kui te pole sagedane kasutaja, siis parem minna seerianäidiku kujundusega, sest see säästab LCD-ekraanil natuke taala.

Nüüd liigume skeemi juurde.

Seeriamonitoril põhinev mahtuvusmõõtur:



Nagu näete, on vooluahel väga lihtne, tundmatu mahtuvuse leidmiseks on vaja ainult mõnda takistit. 1K oomi on teadaolev takisti väärtus ja 220 oomi takisti, mida kasutatakse kondensaatori tühjendamiseks mõõtmise ajal. Arduino tajub tõusev ja kahanev pinge tihvtil A0, mis on ühendatud 1K oomi ja 220 oomi takisti vahel. Kui kasutate polariseeritud kondensaatoreid, näiteks elektrolüütikuid, hoolitsege polaarsuse eest. Programm:
//-----------------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------------------//

Laadige ülaltoodud kood Arduinosse koos riistvara lõpuleviimisega, ärge esialgu kondensaatorit ühendage. Avage jademonitor, kus on kirjas „Palun ühendage kondensaator”.

Nüüd ühendage kondensaator, selle mahtuvus kuvatakse nagu allpool illustreeritud.

See näitab ka aega, mis kulub kondensaatori täislaadimispinge saavutamiseks 63,2% -ni, mida näidatakse möödunud ajana.

Digitaalne mahtuvusmõõtur Arduino abil

LCD-põhise mahtuvusmõõturi skeem:

Ülaltoodud skeem on ühendus LCD-ekraani ja Arduino vahel. 10K potentsiomeeter on ette nähtud ekraani kontrastsuse reguleerimiseks. Ülejäänud seosed on enesestmõistetavad.

Ülaltoodud vooluahel on täpselt sama mis seeriamonitoril põhinev disain, peate lihtsalt LCD-ekraani ühendama.

LCD-põhise mahtuvusmõõturi programm:

//-----------------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ärast riistvara lõpuleviimist laadige ülaltoodud kood üles. Esialgu ärge ühendage kondensaatorit. Ekraanil kuvatakse 'Palun ühendage kondensaator !!!' nüüd ühendate kondensaatori. Ekraanil kuvatakse kondensaatori väärtus ja kulunud aeg 63,2% täislaetud kondensaatori saavutamiseks.

Autori prototüüp:




Eelmine: Arduino tahhomeetri ahel täpsete lugemite jaoks Järgmine: Kuidas juhtimiskangi abil servomootorit juhtida