用51单片机测电容容值的方法原理及一些问题的解决方案

       先来说一下电容的测量方式吧,电容测量方式有很多,其中一种是基于对RC 电路的时间常数的计算,电容的充电速度与R 和C 的大小有关,R 与C 的乘积越大,充电时间就越长。这个RC 的乘积就叫做RC电路的时间常数τ, 即T=R∙C。若R的单位用欧姆,C 的单位用法拉,则T的单位为秒

       要知道电容大小,只要知道充电时间T和充电电阻R的值就行了。


       那么怎么用51求出充电时间T和充电电阻R的值呢?不要急,慢慢来。
       先说求充电时间T的方法吧(方法很多,这里介绍一下最简单的),先介绍一下电容充电时电压的一般规律:在两端电压Uc随t的变化曲线中,Uc 是按指数规律上升的,Uc 开始变化较快,以后逐渐减慢,并缓慢地趋近其最终值。假设当t=τ时,Uc到达能达到的最大值U,那么我们便可以计算出电容两端电压从0到U所花的时间。这个计算过程可以用51单片机的外部中断来实现,可以将51单片机的外部中断设定为下降沿触发。当第一次下降沿来临时,在中断程序中,启动定时器的计时;在第二次下降沿来临时,再停止定时器。这样一来,计时器所统计的数值,就代表了脉冲的周期。定时器在计时方式下,是针对机器周期计数,在晶振为 12MHz 时,计时的结果将在 0~65536us 范围内。以 ms 为单位,就是:00.000 ~ 65.535ms。这样就可以得到充电时间T了。
        充电电阻的话,由于你这个问题的重点是用单片机测电容,那么电阻就直接用电表测吧,默认测出结果为R。
       注意:T=R*C计算公式T的单位是s。
      用单片机进行计算时可以先直接用计数值*脉冲周期得到us为单位的时间,用us单位的时间进行计算,C=T/R,只要在往数码管上显示数字的时候在前5位弄个小数点就行。
       最后,大功告成!!!

       还有个问题,就是测的电容可能很大,那么依据公式,我们也可以知道只要改变T或R的值就行了。
       一种方法是换较低频率的晶振,单片机计数器的最大值是确定了的,通过减小晶振频率来增大脉冲周期,就能增大T的范围,就可以测比较大容量的电容了,但这种方法,不建议使用,因为改变晶振对单片机的整个内部运行会造成很大问题,里面的reg51.h文件里面的内容可能得改些。
       第二种方法简单了,直接换个小点的充电电阻就完事。。。

  • 7
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值