使用Arduino的电容表
原文:https://circuitdigest.com/microcontroller-projects/arduino-capacitance-meter-circuit
使用Arduino的電容表
ARDUINO的
經(jīng)過**迪利普·拉賈(Dilip Raja)** 2016年4月2日8
Arduino電容表
當(dāng)我們遇到先前設(shè)計的電路板時,或者我們從舊電視或計算機中取出一塊電路板進行維修時。有時我們需要知道板上特定電容器的電容以消除故障。然后,我們面臨著從板上獲取電容器的準(zhǔn)確值的問題,特別是如果它是表面貼裝器件。我們可以購買用于測量電容的設(shè)備,但是所有這些設(shè)備都很昂貴,并不適合所有人。考慮到這一點,我們將設(shè)計一個簡單的Arduino電容表 來測量未知電容器的電容。
該儀表可以容易地制造并且還具有成本效益。我們將使用Arduino Uno,施密特觸發(fā)門和555 IC計時器制造電容表。
所需組件:
- 555定時器IC
- IC 74HC14施密特觸發(fā)門或非門。
- 1KΩ電阻器(2個),10KΩ電阻器
- 100nF電容器,1000μF電容器
- 16 * 2液晶屏
- 面包板和一些連接器。
電路說明:
下圖顯示了使用Arduino的電容表的電路圖。電路很簡單,LCD與Arduino相連以顯示測得的電容器電容。方波發(fā)生器電路(在穩(wěn)定模式下為555)連接到Arduino,在這里我們已經(jīng)連接了需要測量其電容的電容器。施密特觸發(fā)器門(Schmitt Trigger Gate)(IC 74LS14)用于確保僅將矩形波饋送到Arduino。為了濾除噪聲,我們在電源兩端增加了兩個電容器。
該電路可以準(zhǔn)確地測量10nF至10uF范圍內(nèi)的電容。
基于555定時器IC的方波發(fā)生器:
首先,我們將討論基于555 Timer IC的方波發(fā)生器,或者我應(yīng)該說555 Astable Multivibrator。我們知道,電容器的電容不能在數(shù)字電路中直接測量,換句話說,UNO處理數(shù)字信號,因此不能直接測量電容。因此,我們使用555方波發(fā)生器電路將電容器連接到數(shù)字世界。
簡而言之,計時器提供方波輸出,其頻率直接影響與其相連的電容。因此,首先我們獲得方波信號,該信號的頻率代表未知電容器的電容,然后將該信號饋送到UNO以獲取適當(dāng)?shù)闹怠?/p>
不穩(wěn)定模式下的常規(guī)配置555,如下圖所示:
輸出信號頻率取決于RA,RB電阻和電容器C。
頻率(F)= 1 /(時間段)= 1.44 /((RA + RB * 2)* C)。
在此,RA和RB是電阻值,C是電容值。通過將電阻和電容值放在上述公式中,我們可以得出輸出方波的頻率。
我們將連接1KΩ作為RA和10KΩ作為RB。所以公式變成
頻率(F)= 1 /(時間段)= 1.44 /(21000 * C)。
通過重新排列我們擁有的條款,
電容C = 1.44 /(21000 * F)
在我們的程序代碼(請參閱下文)中,為了準(zhǔn)確獲取電容值,我們通過將獲得的結(jié)果(以法拉為單位)乘以“ 1000000000”來計算以nF為單位的結(jié)果。另外,由于RA和RB的精確電阻分別為0.98K和9.88K,因此我們使用了“ 20800”而不是21000。
因此,如果我們知道方波的頻率,就可以得到電容值。
施密特觸發(fā)器門(Schmitt Trigger Gate):
由計時器電路生成的信號并不完全安全,無法直接提供給Arduino Uno。考慮到UNO的敏感性,我們使用施密特觸發(fā)器門(Schmitt Trigger Gate)。施密特觸發(fā)器門(Schmitt Trigger Gate)是數(shù)字邏輯門。
該門根據(jù)輸入電壓電平提供輸出。施密特觸發(fā)器具有THERSHOLD電壓電平,當(dāng)施加到柵極的INPUT信號的電壓電平高于邏輯門的THRESHOLD時,OUTPUT變?yōu)楦唠娖健H绻鸌NPUT電壓信號電平低于THRESHOLD,則門的OUTPUT將為LOW。因此,我們通常不會單獨獲得施密特觸發(fā)器,因此在施密特觸發(fā)器之后總是有一個非門。施密特觸發(fā)器的工作原理在這里進行了說明:施密特觸發(fā)器門(Schmitt Trigger Gate)
我們將使用74HC14芯片,該芯片中有6個施密特觸發(fā)器門(Schmitt Trigger Gate)。這些六個門在內(nèi)部進行了連接,如下圖所示。
倒立施密特觸發(fā)器門(Schmitt Trigger Gate)的真值表是在下面的圖顯示,與此我們必須為在其端子反相的正和負(fù)的時間段的UNO編程。
將定時器電路產(chǎn)生的信號連接到ST門,在輸出端會有倒相時間的矩形波,可以安全地給UNO。
Arduino測量電容:
Uno有一個特殊的函數(shù)***pulseIn****,*它使我們能夠確定特定矩形波的正態(tài)持續(xù)時間或負(fù)態(tài)持續(xù)時間:
Htime = pulseIn(8,HIGH); Ltime = pulseIn(8,LOW);所述pulseIn功能措施,其高或低電平存在于烏諾的PIN8的時間。pulseIn功能以微秒為單位測量此高時間(Htime)和低時間(Ltime)。當(dāng)我們將Htime和Ltime加在一起時,我們將得到Cycle Duration(周期持續(xù)時間),通過反轉(zhuǎn)它,我們將得到Frequency。
一旦有了頻率,就可以使用前面討論的公式來獲得電容。
摘要和測試:
因此,總而言之,我們將未知電容器連接到555定時器電路,后者會生成一個方波輸出,該輸出的頻率與電容器的電容直接相關(guān)。該信號通過ST門提供給UNO。UNO測量頻率。在已知頻率的情況下,我們對UNO進行編程,以使用前面討論的公式來計算電容。
讓我們看看我得到的一些結(jié)果,
當(dāng)我連接1uF電解電容器時,結(jié)果為1091.84 nF?1uF。用0.1uF的聚酯電容器得到的結(jié)果為107.70 nF?0.1uF
然后我連接了0.1uF的陶瓷電容器,結(jié)果為100.25 nF?0.1uF。此外,使用4.7uF電解電容器的結(jié)果為4842.83 nF?4.8uF
這樣便可以簡單地測量任何電容器的電容。
代碼
#include <LiquidCrystal.h>LiquidCrystal lcd(2, 3, 4, 5, 6, 7);int32_t Htime; int32_t Ltime; float Ttime; float frequency; float capacitance;void setup() {pinMode(8,INPUT); //pin 8 as signal inputlcd.begin(16, 2);lcd.setCursor(0,0);lcd.print("capacitance ="); } void loop() {for (int i=0;i<5;i++) //measure time duration five times{Ltime=(pulseIn(8,HIGH)+Ltime)/2; //get average for each cycleHtime=(pulseIn(8,LOW)+Htime)/2;}Ttime = Htime+Ltime;frequency=1000000/Ttime;capacitance = (1.44*1000000000)/(20800*frequency); //calculating the Capacitance in nFlcd.setCursor(0,1);lcd.print(capacitance);lcd.print(" nF ");delay(500); }總結(jié)
以上是生活随笔為你收集整理的使用Arduino的电容表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell开发环境vim编辑器的配置文件
- 下一篇: 计算机网络中集成性和交互性,【计算机类职