Vezje digitalnega merilnika kapacitivnosti z uporabo Arduina

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali vezje digitalnega merilnika kapacitivnosti z uporabo Arduina, ki lahko z razumno natančnostjo meri kapacitivnost kondenzatorjev od 1 mikrofarad do 4000 mikrofarad.



Uvod

Izmerimo vrednost kondenzatorjev, kadar vrednosti, zapisane na ohišju kondenzatorja, niso čitljive ali če najdemo vrednost starajočega se kondenzatorja v našem vezju, ki ga je treba kmalu ali pozneje zamenjati in obstaja več drugih razlogov za merjenje kapacitivnosti.

Da bi našli kapacitivnost, lahko enostavno izmerimo z digitalnim multimetrom, vendar vsi multimetri nimajo funkcije merjenja kapacitivnosti in to funkcijo imajo le dragi multimetri.



Tu je torej vezje, ki ga je mogoče enostavno zgraditi in uporabiti.

Osredotočeni smo na kondenzatorje z večjo vrednostjo od 1 mikrofarad do 4000 mikrofarad, ki zaradi staranja nagnjeni k izgubi kapacitivnosti, zlasti elektrolitski kondenzatorji, ki so sestavljeni iz tekočega elektrolita.

Preden gremo v podrobnosti vezja, poglejmo, kako lahko z Arduino izmerimo kapacitivnost.

Večina merilnikov kapacitivnosti Arduino je odvisna od lastnosti RC časovne konstante. Kaj je torej RC časovna konstanta?

Časovno konstanto RC vezja lahko definiramo kot čas, kondenzator doseže 63,2% polnega naboja. Zero volt je 0% naboja in 100% polnega napetosti kondenzatorja.

Zmnožek vrednosti upora v ohmih in vrednosti kondenzatorja v farad daje časovno konstanto.

T = R x C

T je časovna konstanta

S preureditvijo zgornje enačbe dobimo:

C = T / R

C je neznana vrednost kapacitivnosti.

T je časovna konstanta RC vezja, ki je 63,2% polnega kondenzatorja.

R je znana odpornost.

Arduino lahko zazna napetost prek analognega zatiča, znano vrednost upora pa lahko vnesete v program ročno.

Z uporabo enačbe C = T / R v programu najdemo neznano vrednost kapacitivnosti.

Do zdaj bi že imeli idejo, kako lahko najdemo vrednost neznane kapacitivnosti.

V tej objavi sem predlagal dve vrsti merilnikov kapacitivnosti, eno z LCD zaslonom in drugo s serijskim monitorjem.

Če ste pogosti uporabnik tega merilnika kapacitivnosti, je bolje, da se odločite za zasnovo LCD zaslona, ​​če pa niste pogost uporabnik, pa raje serijsko zasnovo zaslona, ​​saj vam na LCD zaslonu prihranite nekaj denarja.

Zdaj pa pojdimo na vezje.

Merilnik kapacitivnosti na osnovi serijskega monitorja:



Kot lahko vidite, je vezje zelo preprosto, le nekaj uporov je potrebno za iskanje neznane kapacitivnosti. 1K ohm je znana vrednost upora in 220 ohmski upor, ki se uporablja za praznjenje kondenzatorja med merjenjem. naraščajoča in padajoča napetost na zatiču A0, ki je povezan med upori 1K ohm in 220 ohm.Poskrbite za polarnost, če uporabljate polarizirane kondenzatorje, kot je elektrolitski. 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------------------//

Zgornjo kodo naložite v Arduino s končano nastavitvijo strojne opreme, kondenzatorja najprej ne priključite. Odprite serijski monitor, na katerem piše “Priključite kondenzator”.

Zdaj priključite kondenzator, njegova kapacitivnost bo prikazana, kot je prikazano spodaj.

Prikazuje tudi čas, potreben za doseganje 63,2% polne napetosti kondenzatorja, kar je prikazano kot pretečeni čas.

Digitalni merilnik kapacitivnosti z uporabo Arduina

Shema vezja za merilnik kapacitivnosti na osnovi LCD:

Zgornja shema je povezava med LCD zaslonom in Arduinom. Za nastavitev kontrasta zaslona je na voljo 10K potenciometer. Preostale povezave so samoumevne.

Zgornje vezje je popolnoma enako kot pri serijskem monitorju, ki ga potrebujete, da samo priključite LCD zaslon.

Program za merilnik kapacitivnosti na osnovi 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------------------//

Z dokončano namestitvijo strojne opreme naložite zgornjo kodo. Sprva ne priključujte kondenzatorja. Na zaslonu se prikaže “Priključite kondenzator !!!” zdaj priključite kondenzator. Na zaslonu bo prikazana vrednost kondenzatorja in pretečeni čas, da doseže 63,2% polnega kondenzatorja.

Avtorjev prototip:




Prejšnja: Arduino tahometer za natančno branje Naprej: Kako upravljati servo motor z uporabo džojstika