DIY 简易自动量程电容计 (10pF-10000microF)
组件和用品
关于这个项目
简单的数字万用表 (DMM) 无法测量电容,为了找到电容,您要么需要使用先进、昂贵的数字万用表,要么寻找专用的电容模块。
在这个项目中,我将构建一个具有自动量程功能的简单 Arduino 电容表。它可以测量从 10 pF 到 10, 000 μF 的电容。测量在自动模式下进行,将电容器连接到测量触点就足够了。该器件有两个量程:“nF”和“μF”。测量电容器时,首先打开“nF”量程,如果电容太大,则过渡到“μF”量程。
每个电容计都有一个电阻值已知和电容值未知的 RC 电路。 Arduino 将测量电容器上的电压并记录在充满电时达到一定百分比电压所需的时间(时间常数)。由于电阻值已知,我们可以在程序中使用该公式来计算未知电容。被测电容器使用其中一个电阻器充电。 Arduino根据其容量通过电阻启动电容器充电。在电容表中,每次开机都要进行零位校准,因此,在开机的瞬间,不应在测量触点上连接电容器。此外,所有电容器都必须预先放电。
精度为 +/- 几个百分点,主要取决于所用电阻的容差以及电源电压的稳定性。
最后,整个设备都装在一个合适的盒子里,是您实验室中的另一个有用工具。
代码
Arduino 代码C/C++
#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// RS,E,D4,D5,D6,D7void setup(){ lcd.begin(16, 2) );// LCD 16X2 pinMode(A0,INPUT);}unsigned long time0,time1,time2; float c,null0;byte kn,mk,i;void loop(){ lcd.setCursor(15,0);液晶打印(“*”); if(mk==0){ pinMode(8,OUTPUT);引脚模式(7,输入);数字写入(8,高); } if(mk==1){ pinMode(7,OUTPUT); pinMode(8,输入);数字写入(7,高); } time0=micros(); while(analogRead(A0)<644){ time2=micros()-time0; if(time2>=1000000 &&mk==0){ mk=1;时间0=100000000;休息; } } time1=micros()-time0; while(analogRead(A0)>0){ pinMode(7,OUTPUT); pinMode(8,输出);数字写入(7,低);数字写入(8,低); } if(mk==1&&time1<1000){ mk=0; } lcd.setCursor(1,0); c=时间1; c=c/1000-null0; c=abs(c); if(time1>=10000000){ lcd.setCursor(1,0); lcd.print(“测试uF”); }其他{液晶。打印(c); if(mk==0){ lcd.print(" nF "); } if(mk==1){ lcd.print(" uF "); } } if(i==0){ i++; null0=c+0.02; }延迟(100);}
示意图