Skaitmeninė talpos matuoklio grandinė naudojant „Arduino“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše mes sukursime skaitmeninę talpos matuoklio schemą naudodami „Arduino“, kuris gali pakankamai tiksliai išmatuoti kondensatorių talpą nuo 1 iki 4000 mikrofaradų.



Įvadas

Mes matuojame kondensatorių vertę, kai vertės, užrašytos ant kondensatoriaus kūno, nėra įskaitomos, arba norėdami rasti senėjimo kondensatoriaus vertę mūsų grandinėje, kurią reikia greitai ar vėliau pakeisti, ir yra keletas kitų priežasčių, leidžiančių matuoti talpą.

Norėdami rasti talpą, mes galime lengvai išmatuoti naudodami skaitmeninį multimetrą, tačiau ne visi multimetrai turi talpos matavimo funkciją ir tik brangūs multimetrai turi šią funkciją.



Taigi čia yra grandinė, kurią galima lengvai sukonstruoti ir naudoti.

Mes sutelkėme dėmesį į didesnės vertės kondensatorius nuo 1 iki 4000 mikrofarado, kurie yra linkę prarasti savo talpą dėl senėjimo, ypač elektrolitiniai kondensatoriai, kurie susideda iš skysto elektrolito.

Prieš pradėdami nagrinėti grandinės detales, pažiūrėkime, kaip mes galime išmatuoti talpą naudodami „Arduino“.

Dauguma „Arduino“ talpos matuoklių priklauso nuo RC laiko pastoviosios savybės. Taigi, kas yra RC laiko konstanta?

RC grandinės laiko konstantą galima apibrėžti kaip laiką, per kurį kondensatorius pasiekia 63,2% viso įkrovimo. Nulis voltas yra 0% įkrovimas, o 100% - kondensatoriaus visos įtampos įkrova.

Rezistoriaus vertės omais ir kondensatoriaus vertės farade sandauga suteikia laiko konstantą.

T = R x C

T yra laiko konstanta

Pertvarkydami aukščiau pateiktą lygtį, gauname:

C = T / R

C yra nežinoma talpos vertė.

T yra RC grandinės laiko konstanta, kuri yra 63,2% viso įkrovimo kondensatoriaus.

R yra žinomas atsparumas.

„Arduino“ gali suvokti įtampą per analoginį kaištį, o žinomą rezistoriaus vertę į programą galima įvesti rankiniu būdu.

Taikydami programoje C = T / R lygtį, galime rasti nežinomą talpos vertę.

Dabar turėtumėte idėją, kaip mes galime sužinoti nežinomos talpos vertę.

Šiame įraše aš pasiūliau dviejų tipų talpos matuoklius, vieną su LCD ekranu ir kitą, naudojant serijinį monitorių.

Jei dažnai naudojatės šiuo talpos matuokliu, geriau eikite į LCD ekrano dizainą, o jei nesate dažnas, naudokitės serijinio monitoriaus dizainu, nes tai sutaupys šiek tiek pinigų LCD ekrane.

Dabar pereikime prie grandinės schemos.

Serijinio monitoriaus talpos matuoklis:



Kaip matote, grandinė yra labai paprasta, norint rasti nežinomą talpą, reikia poros rezistorių. 1K omai yra žinoma rezistoriaus vertė ir 220 omų rezistorius, naudojamas kondensatoriui iškrauti, kol vyksta matavimo procesas. „Arduino“ nuojauta kylanti ir mažėjanti A0 kaiščio, sujungto tarp 1K om ir 220 omų rezistorių, įtampa. Prašome pasirūpinti poliškumu, jei naudojate poliarizuotus kondensatorius, tokius kaip elektrolitiniai. Programa:
//-----------------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------------------//

Įkelkite aukščiau nurodytą kodą į „Arduino“ atlikę techninės įrangos sąranką, iš pradžių nejunkite kondensatoriaus. Atidarykite nuoseklųjį monitorių su užrašu „Prijunkite kondensatorių“.

Dabar prijunkite kondensatorių, jo talpa bus rodoma taip, kaip parodyta žemiau.

Tai taip pat rodo laiką, per kurį reikia pasiekti 63,2% visos kondensatoriaus visos įkrovos įtampos, kuri rodoma kaip praėjęs laikas.

Skaitmeninis talpos matuoklis naudojant „Arduino“

LCD talpos matuoklio grandinės schema:

Aukščiau pateikta schema yra ryšys tarp LCD ekrano ir „Arduino“. 10K potenciometras yra skirtas ekrano kontrastui reguliuoti. Kiti ryšiai savaime suprantami.

Pirmiau nurodyta grandinė yra visiškai tokia pati kaip serijinio monitoriaus konstrukcija, kurią jums tiesiog reikia prijungti LCD ekraną.

LCD talpos matuoklio programa:

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

Atlikę aparatūros sąranką, įkelkite aukščiau esantį kodą. Iš pradžių nejunkite kondensatoriaus. Ekrane rodoma „Prijunkite kondensatorių !!!“ dabar prijungiate kondensatorių. Ekrane bus rodoma kondensatoriaus vertė ir praėjęs laikas, kurio reikia norint pasiekti 63,2% viso įkrovimo kondensatoriaus.

Autoriaus prototipas:




Pora: „Arduino“ tachometro grandinė tiksliems rodmenims Kitas: Kaip valdyti servovariklį naudojant vairasvirtę