<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何制作自己的Arduino電容計

科技觀察員 ? 來源:bestengineeringprojects ? 作者:bestengineeringprojec ? 2024-02-25 15:10 ? 次閱讀

在這個項目中,您將學習如何制作自己的Arduino電容計(測量電容器的值,范圍從pF到1000的uF)。一般來說,電子愛好者喜歡設計自己的小工具而不是購買。在這個項目中,我們使用兩種電容測量方法,即充電和放電方法,Arduino電容表和多諧振蕩器方法,Arduino電容計。對于測量低值電容器,我們使用充電和放電方法,對于測量高值電容器,我們使用多諧振蕩器方法。

電容器:電容器以電場的形式存儲電能,電場由電容器的兩個電極上的電荷極性建立。

電容:它是元件在其中存儲電荷的能力。定量電容是可以存儲在元件中的每單位電壓電荷的量度。

從電容器的公式中,我們發現電容器存儲的能量為

W = \dfrac{1}{2}cV^2

從方程中我們發現,電容器兩端的電壓是恒定的,通過它的電流為零。這意味著電容器,施加直流電壓并且沒有初始電荷,首先充當短路,但一旦保持完全充電,電容器就會表現為開路。

Arduino電容計電路說明

Arduino電容表的電路如圖1所示,由arduino uno板、LCD、定時器IC和少量其他電子元件(如電阻器、電容器等)組成。

Arduino電容儀表電路

Arduino電容計的電路連接說明:

使用LCD的目的是顯示電容器的值。我們在這里使用的 LCD 是 16×2 字母數字類型,有 16 個引腳輸出。16 個引腳中有 8
個引腳用于數據通信。通常,LCD 可以在兩種模式下運行,即 8 位模式和 4 位模式。在 8 位模式下,所有數據引腳 (D0 – D7) 都用于通信,而在 4
位模式下,只有高階數據引腳 (D4 – D7) 用于通信。在項目中,Arduino電容計使用4位數據模式。LCD 的引腳 D4 到 D7 分別連接到
arduino uno 的 D7 到 D4 引腳。使能 (E) 和 SET/RESET (RS) 引腳分別連接到 arduino uno 板的 D11 和
D12 引腳。

定時器IC
555配置為非穩態多諧振蕩器(頻率發生器)模式,待測電容器的正極性連接到定時器IC的引腳2,電容器的負極性接地。定時器IC的輸出從引腳3連接到arduino
uno板的D2引腳。通常在pF(皮科法拉)范圍內的較低值的電容器,使用模擬引腳直接測量,采用充電和放電方法,如電路圖所示。

充電放電方法的工作原理(用于測量1pF至100nF的低值電容)。

在這種方法中,電容器首先通過已知電阻器充電和放電。電容器的時間常數\tau = R \乘以 C

其中 R = 用于電容器充電和放電的電阻的固定值

C = 電容器的電容

時間常數定義為電容器上的電荷達到最大電荷值的 63.2% 的時間。

arduino uno板基本上測量電容器在充滿電時達到其電壓的63.2%和完全放電時達到其電壓的36.8%所需的時間。

從上面的表達式中,我們發現需要一個電阻器來對電容器進行充電和放電,但在上述電路中,我們沒有使用外部電阻器。這是因為Arduino板內部有上拉和下拉電阻,電容器通過該電阻器充電和放電。通過這種方式,我們可以使用充電和放電方法測量電容器的電容。

多諧振蕩器方法(測量范圍為1uF – 1000uF的電容器)

可以使用這種方法測量高值電容器。定時器IC在穩態模式下使用。在這種模式下,輸出以恒定速率在高電平和低電平之間擺動,即產生頻率。

Arduino電容計涉及的數學

t_{high} = 0.693 \times C \times (R_1 + R_2)

其中 R1= 連接在 Vcc 和定時器 IC 555 的引腳編號 7 之間的電阻器。

R2= 定時器 IC 的引腳 7 和引腳 6 之間連接的電阻

t_{low} = 0.693 \times C \times R_2

我們知道

頻率 = \dfrac{1}{總 \ 時間 \ 占用} = \dfrac{1}{t_{高} + t_{低}}= \dfrac{1}{0.693 \times C \times (R_1 + R_2) + 0.693 \times C \times _2}= \dfrac{1}{0.693 \times C \times (R_1 + 2R_2)}頻率 = \dfrac{1.44}{(R_1 + 2R_2) \times C}

arduino電容表的電阻值是固定的,使用兩個電阻,每個電阻100K歐姆。當我們插入任何電容器時,都會產生一個恒定的頻率,該頻率由Arduino板以時間為單位進行測量。由于arduino具有毫秒的內置時間庫功能。

電容可以按時間計算

C = 1.44 \times \dfrac{1}{F} \times \dfrac{1}{R_1 + 2R_2}

如果我們把電阻的值放在上面的表達式中,它看起來像

C = \dfrac{1.44 \ 次 \ 次 \ 以 \ 毫秒為單位}{100 \times 10^3 + 2 \times 100 \times 10^3}= \dfrac{1.44 \times time \ in \ 微秒}{300}

戴夫

這樣我們就可以計算出電容器的電容。

如果電容器的值較低,則在多諧振蕩器方法中誤差會變大,因此我們使用充電和放電方法來降低電容器的值。

單刀雙擲開關用于在高值電容器和低值電容器的測量之間切換。

Arduino電容計軟件代碼:軟件代碼是用Arduino編程語言編寫的,用Arduino編程語言編譯。您可以從下面下載代碼并在您的系統中使用,而無需進行任何修改。

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

volatile unsigned long microseconds;

volatile float capacitance;

int CapPf=9;

int CapUf=10;

const int Cap_Out = A2;

const int Cap_In = A0;

const float Stray_Cap = 24.48;

const float Cap_GND = Stray_Cap;

const float Pullup_Res = 34.8;

const int ADC_Value = 1023;

void setup() {

lcd.begin(16, 2);

pinMode(2,INPUT);

pinMode(CapPf,INPUT);

pinMode(CapUf,INPUT);

pinMode(Cap_Out, OUTPUT);

pinMode(Cap_In, OUTPUT);

Serial.begin(9600);

lcd.setCursor(0,0);

lcd.print(“ Capacitance ”);

lcd.setCursor(0,1);

lcd.print(“ Meter ”);

delay(2000);

}

void cap() {

microseconds=micros()-microseconds;

capacitance=1.443*microseconds/300;

capacitance = capacitance/1000;

Serial.print(capacitance,3);

Serial.println(“uF”);

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“Range: 1uf-1mF”);

lcd.setCursor(0, 1);

lcd.print(capacitance,3);

lcd.print(“uF ”);

microseconds=micros();

}

void loop(){

if(digitalRead(CapUf))

{

attachInterrupt(0,cap,RISING);

}

if(digitalRead(CapPf))

{

lcd.clear();

pinMode(Cap_In, INPUT);

digitalWrite(Cap_Out, HIGH);

int val = analogRead(Cap_In);

digitalWrite(Cap_Out, LOW);

if (val 《 1000)

{

pinMode(Cap_In, OUTPUT);

float capacitance = (float)val * Cap_GND / (float)(ADC_Value -

val);

lcd.setCursor(0,0);

lcd.print(“Range: 1pF-1nF”);

lcd.setCursor(0,1);

lcd.print(capacitance,3);

lcd.setCursor(14,1);

lcd.print(“pF”);

delay(200);

}

else

{

pinMode(Cap_In, OUTPUT);

delay(1);

pinMode(Cap_Out, INPUT_PULLUP);

unsigned long u1 = micros();

unsigned long t;

int digVal;

do

{

digVal = digitalRead(Cap_Out);

unsigned long u2 = micros();

t = u2 》 u1 ? u2 - u1 : u1 - u2;

}

while ((digVal 《 1) && (t 《 400000L));

pinMode(Cap_Out, INPUT);

val = analogRead(Cap_Out);

digitalWrite(Cap_In, HIGH);

int dischargeTime = (int)(t / 1000L) * 5;

delay(dischargeTime);

pinMode(Cap_Out, OUTPUT);

digitalWrite(Cap_Out, LOW);

digitalWrite(Cap_In, LOW);

float capacitance = -(float)t / Pullup_Res / log(1.0 - (float)val /
(float)ADC_Value);

lcd.setCursor(0,0);

lcd.print(“Scale: 1pF-1nF”);

if (capacitance 》 1000.0)

{

lcd.setCursor(0,1);

lcd.print(capacitance / 1000.0, 2);

lcd.setCursor(14,1);

lcd.print(“uF ”);

delay(200);

}

else

{

lcd.setCursor(0,1);

lcd.print(capacitance);

lcd.setCursor(14,1);

lcd.print(“nF”);

delay(200);

}

}

while (micros() % 1000 != 0);

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電容計
    +關注

    關注

    0

    文章

    11

    瀏覽量

    6300
  • Arduino
    +關注

    關注

    184

    文章

    6428

    瀏覽量

    184896
收藏 人收藏

    評論

    相關推薦

    如何使用Arduino制作電感LC表

    今天我們將使用Arduino制作電感LC表。在本項目中,我們將顯示電感和電容值以及16x2 LCD顯示器的頻率。電路中有一個按鈕,用于在電容和電感顯示之間切換。
    的頭像 發表于 11-07 16:31 ?2032次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>電感LC表

    Arduino 也能改造成溫度?

    系統”以及“數控繪圖儀”項目,今天,為大家帶來了一款Arduino 溫度。這款溫度既可以作為日常溫度使用,又可以進行家用裝飾,特別適合愛畫畫的小創客們動手
    發表于 02-18 11:51

    請教使用arduino開發庫侖的問題

    請教使用arduino開發庫侖的問題已經用霍爾傳感器讀取出實時電流然后如何計算出AH呢 AH=I*V單片如果去實時處理這個數據呢大神們有什么大概的思路嗎下圖中寫的我自己的都看不明白了
    發表于 01-08 15:38

    Arduino功率:測量電壓、電流和功耗相關資料分享

    購買。但有時候我們可能會遇到需要制作屬于自己的儀表的情況。比如說你正在研究一個太陽能光伏項目,你想計算負載的功耗,在這種情況下我們可以使用像Arduino這樣的簡單微控制器平臺制作我們
    發表于 07-05 07:53

    如何選擇一款適合自己Arduino控制器

    ,都可以通過本文了解Arduino是什么,為什么Arduino廣受歡迎,如何選擇一款適合自己Arduino控制器、Arduino開發工具、
    發表于 07-13 09:07

    Arduino功率電路是如何工作的

    怎樣去設計Arduino功率的完整電路?Arduino功率電路是如何工作的?
    發表于 09-29 08:46

    如何使用Arduino開發板快速輕松地制作自己的函數生成器呢

    地自行制作,如函數發生器和雙模電源。在本篇文章中,我們將學習如何使用Arduino開發板快速輕松地制作自己的函數生成器。該函數發生器又稱波形發生器,可產生頻率范圍為1Hz至2MHz的方
    發表于 11-16 07:20

    基于Arduino的觸摸變色臺燈制作

    arduino制作LED燈
    發表于 01-22 13:20 ?14次下載

    基于Arduino的趣味電子制作

    本文主要介紹了基于Arduino的趣味電子制作。
    發表于 06-26 08:00 ?87次下載

    如何在面包板上做自己Arduino

    在本章,我們將:學習如何在面包板上做自己Arduino電路;研究各種Arduino兼容板的特性和優點;學習開源硬件。我們要把整個Arduino分解成若干個元件,然后在面包板上搭出
    發表于 05-29 17:58 ?6次下載
    如何在面包板上做<b class='flag-5'>自己</b>的<b class='flag-5'>Arduino</b>

    DIY自己arduino項目

    電子發燒友網站提供《DIY自己arduino項目.zip》資料免費下載
    發表于 07-27 10:17 ?2次下載
    DIY<b class='flag-5'>自己</b>的<b class='flag-5'>arduino</b>項目

    如何使用Arduino制作觸控電容式鋼琴

    本教程對于電子制造商來說將非常令人興奮,因為我們將使用 Arduino Nano 設計我們自己的觸控電容式鋼琴。我們將在我們的鋼琴上加入錄音和回放功能。
    發表于 07-28 16:47 ?2713次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>觸控<b class='flag-5'>電容</b>式鋼琴

    Arduino制作電容報警器

    電子發燒友網站提供《用Arduino制作電容報警器.zip》資料免費下載
    發表于 11-17 14:45 ?1次下載
    用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b><b class='flag-5'>電容</b>報警器

    Arduino:非接觸式開關的制作與控制

    第1篇:用Arduino控制曲別針電動機?我們推出了一項新計劃,即通過使用了Arduino的簡單制作來學習電子制作的原理和基礎知識。
    的頭像 發表于 02-20 10:47 ?1168次閱讀
    <b class='flag-5'>Arduino</b>:非接觸式開關的<b class='flag-5'>制作</b>與控制

    Arduino制作循跡小車教程

    Arduino制作循跡小車完全教程
    發表于 01-05 11:09 ?2次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>