在這篇文章中,我們將使用Arduino構(gòu)建一個(gè)數(shù)字電容表電路,該電路可以以合理的精度測(cè)量從1微法拉到4000微法拉的電容器的電容。
當(dāng)寫(xiě)入電容器主體的值難以辨認(rèn)時(shí),我們測(cè)量電容器的值,或者在我們的電路中找到老化電容器的值,這些電容器遲早需要更換,并且還有其他幾個(gè)原因需要測(cè)量電容。
為了找到電容,我們可以使用數(shù)字萬(wàn)用表輕松測(cè)量,但并非所有萬(wàn)用表都具有電容測(cè)量功能,只有昂貴的萬(wàn)用表才具有此功能。
所以這是一個(gè)可以輕松構(gòu)建和使用的電路。
我們專(zhuān)注于從1微法拉到4000微法拉的較大值的電容器,這些電容器容易因老化而失去電容,特別是由液體電解質(zhì)組成的電解電容器。
在討論電路細(xì)節(jié)之前,讓我們看看如何使用Arduino測(cè)量電容。
大多數(shù)Arduino電容計(jì)依賴于RC時(shí)間常數(shù)屬性。那么什么是RC時(shí)間常數(shù)?
RC電路的時(shí)間常數(shù)可以定義為電容器達(dá)到充滿電的63.2%所需的時(shí)間。零伏是 0% 充電,100% 是電容器的全電壓充電。
電阻值(歐姆)與電容器值(法拉)的乘積給出了時(shí)間常數(shù)。
T = R x C
T 是時(shí)間常數(shù)
通過(guò)重新排列上述等式,我們得到:
C = T/R
C是未知電容值。
T是RC電路的時(shí)間常數(shù),為滿電荷電容器的63.2%。
R 是已知的電阻。
Arduino可以通過(guò)模擬引腳檢測(cè)電壓,并且可以在程序中手動(dòng)輸入已知的電阻值。
通過(guò)在程序中應(yīng)用公式C = T / R,我們可以找到未知電容值。
到現(xiàn)在為止,您已經(jīng)知道我們?nèi)绾握业轿粗娙莸闹盗恕?/p>
在這篇文章中,我提出了兩種電容計(jì),一種帶有LCD顯示屏,另一種使用串行監(jiān)視器。
如果您是此電容計(jì)的???,最好采用LCD顯示屏設(shè)計(jì),如果您不經(jīng)常使用,最好使用串行顯示器設(shè)計(jì),因?yàn)樗梢栽贚CD顯示屏上節(jié)省一些費(fèi)用。
現(xiàn)在讓我們繼續(xù)看電路圖。
基于串行監(jiān)視器的電容計(jì):
如您所見(jiàn),電路非常簡(jiǎn)單,只需幾個(gè)電阻即可找到未知電容。1K歐姆是已知的電阻值,220歐姆電阻用于在測(cè)量過(guò)程中對(duì)電容器放電。Arduino 感測(cè)引腳
A0 上的上升和減少電壓,該引腳連接在 1K 歐姆和 220 歐姆電阻器之間。如果您使用電解電容器等極化電容器,請(qǐng)注意極性。程序:
//-----------------Program developed by R.Girish------------------//
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,完成硬件設(shè)置,最初不要連接電容器。打開(kāi)串行監(jiān)視器;它說(shuō)“請(qǐng)連接電容器”。
現(xiàn)在連接一個(gè)電容器,其電容將顯示如下圖所示。
它還顯示了達(dá)到電容器完全充電電壓的63.2%所需的時(shí)間,該時(shí)間顯示為經(jīng)過(guò)的時(shí)間。
基于LCD的電容計(jì)的電路圖:
上面的示意圖是LCD顯示器和Arduino之間的連接。提供10K電位器,用于調(diào)整顯示器的對(duì)比度。其余的連接是不言自明的。
上述電路與基于串行監(jiān)視器的設(shè)計(jì)完全相同;您只需要連接LCD顯示器。
LCD電容計(jì)程序:
//-----------------Program developed by R.Girish------------------//
#include《LiquidCrystal.h》
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------------------//
完成硬件設(shè)置后,上傳上述代碼。最初不要連接電容器。顯示屏顯示“請(qǐng)連接電容器?。 爆F(xiàn)在您連接電容器。顯示屏將顯示電容器的值和達(dá)到充滿電電容器的
63.2% 所花費(fèi)的時(shí)間。
-
電容
+關(guān)注
關(guān)注
99文章
5960瀏覽量
149819 -
Arduino
+關(guān)注
關(guān)注
187文章
6458瀏覽量
186504 -
數(shù)字電容表
+關(guān)注
關(guān)注
1文章
9瀏覽量
9516 -
電容電路
+關(guān)注
關(guān)注
1文章
11瀏覽量
3098
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論