Цифрова схема за измерване на капацитет, използваща Arduino

Цифрова схема за измерване на капацитет, използваща Arduino

В тази публикация ще изградим верига за цифров измервателен капацитет, използвайки Arduino, която може да измерва капацитета на кондензаторите от 1 микрофарад до 4000 микрофарада с разумна точност.



Въведение

Измерваме стойността на кондензаторите, когато стойностите, записани на тялото на кондензатора, не са четливи или за да намерим стойността на остаряващия кондензатор в нашата верига, който трябва да бъде заменен скоро или по-късно и има няколко други причини за измерване на капацитета





За да намерим капацитета, можем лесно да измерим с помощта на цифров мултицет, но не всички мултиметри имат функция за измерване на капацитета и само скъпите мултиметри имат тази функционалност.

Ето една схема, която може да бъде конструирана и използвана с лекота.



Ние се фокусираме върху кондензатори с по-голяма стойност от 1 микрофарад до 4000 микрофарада, които са склонни да губят капацитета си поради стареене, особено електролитни кондензатори, които се състоят от течен електролит.

Преди да влезем в подробности за веригата, нека видим как можем да измерим капацитета с Arduino.

Повечето измервателни капацитети на Arduino разчитат на RC константно свойство. И така, какво е RC времеконстанта?

Константата на времето на RC веригата може да се определи като време, необходимо на кондензатора да достигне 63,2% от пълния заряд. Нулевият волт е 0% заряд, а 100% е пълен заряд на кондензатора.

Продуктът на стойността на резистора в ома и стойността на кондензатора във фарад дава времева константа.

T = R x C

T е константата на времето

Чрез пренареждане на горното уравнение получаваме:

C = T / R

C е неизвестната стойност на капацитета.

T е времевата константа на RC веригата, която е 63,2% от кондензатора с пълен заряд.

R е известна устойчивост.

Arduino може да усети напрежението чрез аналогов щифт и известната стойност на резистора може да се въведе в програмата ръчно.

Чрез прилагане на уравнението C = T / R в програмата можем да намерим неизвестната стойност на капацитета.

Досега бихте имали представа как можем да намерим стойността на неизвестния капацитет.

В тази публикация аз предложих два вида измерватели на капацитета, един с LCD дисплей и друг, използващ сериен монитор.

Ако сте редовен потребител на този измервателен капацитет, по-добре е да използвате дизайна на LCD дисплея, а ако не сте чест потребител, по-добре използвайте сериен дизайн на монитора, тъй като ви спестява малко пари на LCD дисплея.

Сега да преминем към електрическата схема.

Капацитет на базата на сериен монитор:



Както можете да видите схемата е много проста, са необходими само няколко резистора, за да се намери неизвестният капацитет. 1K ома е известната стойност на резистора и 220 ома резистор, използван за разреждане на кондензатора по време на процеса на измерване. нарастващо и намаляващо напрежение на щифт A0, който е свързан между резистори 1K ohm и 220 ohm. Моля, погрижете се за полярността, ако използвате поляризирани кондензатори като електролитни. Програма:
//-----------------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------------------//

Качете горния код в Arduino с завършена хардуерна настройка, първоначално не свързвайте кондензатора. Отворете серийния монитор, на който пише „Моля, свържете кондензатор“.

Сега свържете кондензатор, неговият капацитет ще се покаже, както е показано по-долу.

Той също така показва времето, необходимо за достигане на 63,2% от пълното напрежение на кондензатора, което се показва като изминало време.

Цифров измервателен капацитет, използващ Arduino

Схема на схемата за LCD измервател на капацитет:

Горната схема е връзка между LCD дисплея и Arduino. Потенциометърът 10K е предвиден за регулиране на контраста на дисплея. Останалите връзки се обясняват.

Горната схема е точно същата като дизайна, базиран на сериен монитор, просто трябва да свържете LCD дисплей.

Програма за 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------------------//

С завършената хардуерна настройка качете горния код. Първоначално не свързвайте кондензатора. Дисплеят показва „Моля свържете кондензатор !!!“ сега свързвате кондензатора. Дисплеят ще покаже стойността на кондензатора и изминалото време, необходимо за достигане на 63,2% от кондензатора с пълен заряд.

Авторски прототип:




Предишна: Верига за тахометър Arduino за прецизни показания Напред: Как да управлявате серво мотора с помощта на джойстик