您当前的位置:首页 > 电子 > 电子器件

电容测量之NE555

时间:08-15来源:作者:点击数:

电容传感器在我们的生活中用处广泛,如何测量电容,电容测量电路也是一个讨论甚广的电路。

本期我们分享一种利用NE555测量电路的方法。

NE555有着电子小甲虫之称,其使用非常非常的广泛,并且稳定性经过了时间的考验。在NE555的基础上有着许多的电路设计例如施密特触发器、单稳态触发器等等,本期我们使用NE555构成无稳态振荡器来实现电容的测量。

01电容器件的测量

上图这种利用NE555的无稳态电路被广泛的使用,利用R1和R2以及C1构成的充电放电电路在这个特定的电路之下使得3脚输出一个频率的方波

利用这个公式我们可以推算出频率和电容电阻的关系

我们利用Multisim进行仿真,可以看到理论频率为4800HZ,我们利用频谱分析仪测出的频率则是在4877HZ,1.6%的误差(应该可以纠正, 而且是频谱分析仪,而且是仿真。)

02测量电路与数据处理

本期我们想要测量10pf到100pf的电容,事实上在测量这种小电容的时候会受到电路分布电容的影响。

由于两个引脚相距很近,所以事实上这两个IO自己就会构成一个电容,因此当我们测微小电容的时候引脚之间的电容是不能忽视的。

简单的用洞洞板做了个电路,R1和R2分别选用328K电阻(可能也有点误差)。

我们发现,电路空载的时候存在一个168.4KHZ的方波,这个信号就是由电路的分布电容引起的振荡。

接着我们将168.4KHZ代入公式。

1.44/(328+2*328)/168.4 = 0.0000086uF,即约等于8pf的电容。

之后我们测量多组数据,将实际电容值和理论电容值记录下来

利用拟合工具进行拟合。

可以看到线性度还是非常不错的(我自己做的工具欸)这样子数据处理的部分我们就完成了。

03程序运行程序部分本来打算使用51单片机的(主打一个丐版),因为频率在168KHZ,51单片机完全可以采集到168KHZ的信号,因此但是手上并没有合适的51单片机和屏幕,于是就打算使用STM32单片机来进行测试,我们使用外部中断来获取频率数,利用定时器定时触发来计算频率数量,之后转换成电容值进行数据处理后打印在LCD屏幕上。

使用PB2作为外部中断,定时器2作为时间计数。

定义一个数字变量,在外部中断的中断回调函数中进行频率计数,定时器每秒统计频率计数用一个变量来存储。

long  number = 0;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    number++;
  
}
int i = 0;
double Fre = 0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  i++;
  if(i == 25) //计时一秒
  {
    i = 0;
    Fre = number;
    number = 0;
  }
}

之后再把我们获得的频率利用公式计算出理论电容,之后把理论电容通过拟合曲线转换为实际电容。

LCD_ShowString(30,30,480,40,32,"Frequent:        HZ");
    LCD_ShowxNum(140,30,Fre,10,32,1);
    CC = 1.44*1000*1000/(324*3)/Fre*1000;//转化为理论电容值
    
    CC =  (-11.139 + 0.969*CC)*1000;//最小二乘法拟合
    if(CC<0)
    {
      CC = 0;//阈值设定
    }
    LCD_ShowString(30,70,480,40,32,"C  Value:    .   pF");
    LCD_ShowxNum(65,70,(int)(CC)/1000,10,32,1);//显示整数部分
    LCD_ShowxNum(140,70,(int)(CC)%1000,10,32,1);//显示小数部分
    HAL_Delay(1000);
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐