久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3650|回復: 2
收起左側

Arduino電容測量計設計

[復制鏈接]
ID:653072 發表于 2022-3-4 20:32 | 顯示全部樓層 |閱讀模式
電容被定義為身體存儲電荷的能力。電容的單位是法拉(符號:F),以英國物理學家邁克爾·法拉第的名字命名。1 法拉電容器在充電時具有 1 庫侖的電荷,其板之間的電位差為 1 伏。
電容測量
每個Arduino電容計都依賴于電容器的相同基本特性 - 時間常數。電容器的時間常數定義為電容器兩端的電壓在充滿電時達到其電壓的63.2%所需的時間。較大的電容器需要更長的時間來充電,因此具有較大的時間常數。Arduino可以測量電容,因為電容器充電所需的時間與其電容直接相關:
TC = R * C
  • TC 是電容器的時間常數(以秒為單位)。
  • R是電路的電阻(以歐姆為單位)。
  • C是電容器的電容(以法拉為單位)1uf = .0000001法拉= 10^-6法拉。
  • 示例:1 兆歐 * 1 微法拉 = 1 秒
  • 示例:10k 歐姆 * 100 微法拉 = 1 秒


電容測量代碼算法
  • 將放電引腳設置為 INPUT(因此無法對電容器放電)
  • 將充電引腳設置為輸出并使其為高電平
  • millis() 記錄開始時間
  • 在環路中反復檢查電壓,直到達到總電壓的63.2%。
  • 電容充電后,從開始時間中減去電流時間,以了解電容器充電所花費的時間。
  • 將時間T(以秒為單位)除以以歐姆為單位的充電電阻R,得到電容C。
  • 在串行監視器上打印該值。
  • 對電容器放電。為此,請執行以下操作:
  • 將充電引腳設置為輸入
  • 將放電引腳設置為輸出并使其低電平
  • 讀取電壓以確保電容器完全放電
  • 循環并再次執行
電容測量電路

電容測量電路

用于電容測量的 Arduino 代碼

/*電容測量
一個電容器通過一個電阻,在一個時間常數內充電,定義為T秒,其中
* c = r * c
* TC =以秒為單位的時間常數周期
* R =電阻(歐姆)
* C =電容,單位為法拉(1微法拉(ufd) = .0000001法拉= 10^-6法拉)

*電容器在一個時間常數的電壓定義為充電電壓的63.2%。
*/

#define analogPin      0          // analog pin for measuring capacitor voltage
#define chargePin      13         //為電容器充電的引腳-連接到充電電阻的一端
#define dischargePin   11         // 引腳放電電容器
#define resistorValue  10000.0F   // 10K將此更改為您正在使用的任何電阻值
                                  // F formatter tells compiler it's a floating point value F格式化器告訴編譯器它是一個浮點值

unsigned long startTime;
unsigned long elapsedTime;//決定了給電容器充電的時間

// 電容變量進行初始化
float microFarads;                // floating point variable to preserve precision, make calculations浮點變量保持精度,進行計算
float nanoFarads;

void setup(){
  pinMode(chargePin, OUTPUT);     // set chargePin to output
  digitalWrite(chargePin, LOW);  

  Serial.begin(9600);             // initialize serial transmission for debugging
}

void loop(){
  digitalWrite(chargePin, HIGH);  // set chargePin HIGH and capacitor charging
  startTime = millis();//開始計時器

  while(analogRead(analogPin) < 648){   // 647是1023的63.2%,相當于滿量程電壓,直到電容達到總電壓的63.2%才退出
  }

  elapsedTime= millis() - startTime;//決定了給電容器充電的時間
// convert milliseconds to seconds ( 10^-3 ) and Farads to microFarads ( 10^6 ),  net 10^3 (1000)  將毫秒換算成秒(10 ^-3),將法拉換算成微法拉(10 ^6),比完凈10^3 (1000)
  microFarads = ((float)elapsedTime / resistorValue) * 1000;   
  Serial.print(elapsedTime);       // 將值打印到串口
  Serial.print(" mS    ");         //打印單位和回車


  if (microFarads > 1){//確定單元應該是uf的還是nf的,并相應打印
    Serial.print((long)microFarads);       // print the value to serial port
    Serial.println(" microFarads");         // print units and carriage return
  }
  else
  {
    // if value is smaller than one microFarad, convert to nanoFarads (10^-9 Farad).
    // This is a workaround because Serial.print will not print floats
    //如果value小于1 microFarad,則轉換為nanoFarads (10^-9 Farad)。
              //這是一個解決方案,因為串行。Print將不會打印浮點數

    nanoFarads = microFarads * 1000.0;      // multiply by 1000 to convert to nanoFarads (10^-9 Farads)//乘以1000轉換為nanoFarads
    Serial.print((long)nanoFarads);         // print the value to serial port
    Serial.println(" nanoFarads");          // print units and carriage return
  }

  /* dicharge the capacitor  */
    /*給電容器放電*/
  digitalWrite(chargePin, LOW);             // set charge pin to  LOW 停止充電電容器
  pinMode(dischargePin, OUTPUT);            // set discharge pin to output 允許電容器放電
  digitalWrite(dischargePin, LOW);          // set discharge pin LOW
  while(analogRead(analogPin) > 0){         // wait until capacitor is completely discharged//等待直到電容器完全放電
  }

  pinMode(dischargePin, INPUT);            // set discharge pin back to input//防止電容器放電
}
電容測量結果
  • 如果沒有電容連接,代碼將在此行上等待" while(analogRead(analogPin) < 648) // 647 是 1023 的 63.2%,對應于滿量程電壓"
  • 連接測試端子之間的電容,觀察串口監視器將顯示結果。如果沒有電容連接,串行端將不會顯示任何內容。
  • 該程序將反復測試電容器,并且值可能會略有不同。最好取這些值的平均值。
注:此傳感器對于 1 μF 至 3500 μF 之間的電容值最為精確。
電容測量結果

無電容

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:138707 發表于 2023-7-29 18:43 | 顯示全部樓層
不錯的程序,有研究意義
回復

使用道具 舉報

ID:948464 發表于 2023-9-18 16:20 | 顯示全部樓層
不錯的程序,有研究意義,不過串口打印只能打印一次,換個電容就需要重啟了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97超碰成人| 成人国产精品久久 | 97精品国产手机 | 91在线观看视频 | 天堂一区在线 | 成人国产综合 | 欧美在线天堂 | 美女午夜影院 | 亚洲aⅴ精品 | h视频网站在线观看 | 亚洲国产成人精品久久久国产成人一区 | 中文字幕中文字幕 | 久久久影院| 久操伊人 | 国产精品一区二区在线 | 国产欧美久久精品 | 亚洲精品9999久久久久 | 一区二区视屏 | 一二三四在线视频观看社区 | 日韩毛片网 | 久久91av| 日本淫视频 | 91在线影院 | 久久久久午夜 | 日韩在线免费视频 | 一区二区三区视频在线免费观看 | 国产黄色av网站 | 毛片久久久 | 久久精品com| 亚洲高清视频在线 | 日韩毛片网 | 午夜视频在线 | 一区在线播放 | 久久综合九九 | 色一情一乱一伦一区二区三区 | 国产精品日产欧美久久久久 | 综合视频在线 | 欧美中文一区 | 久久高清亚洲 | 国产伦精品一区二区三区照片91 | 自拍第一页 |