论坛首页 > 创客天地 > 开源设计 > 使用PIC16F628制作一个高精度的...
查看:2495  |  回复:13
使用PIC16F628制作一个高精度的电容测试仪
立创快报
【官方工作人员】
8
主题
1
回复
发表于Sat Mar 04 11:39:01 CST 2017   |  只看该作者 1# 电梯直达

使用PIC16F628制作一个高精度的电容测试仪

                                                                                                                  网友:Roman Black

 

1、作品简介


    贴片电容,不像贴片电阻那样上面还有数字标识,所以如果多个贴片电容不小心混在一起,是很难区分开来的,原因主要是一般的万用表没那么高分辨率的电容测试功能,为此本期,我们编辑组特意给大家介绍一款来自老外的电子制作,该制作属于开源,具有硬件简洁,但又不失高精度测量的特点,作者也提供了HEX源码,烧录完成后即可工作!该老外的大名是:Roman Black,他的网站是:http://www.romanblack.com 顺此声明,该文章的版权归属:Roman Black, 我们这里只是转载和翻译,如翻译有所偏差,请以作者原文为准)。

 

2、作品亮点


   ① 具有很高的分辨率:达6~7位!(一般的仪器或制作,只有有34位)

   ② 测量范围较宽:0pF50uF

   ③ 硬件简洁,性价比高,使用到一个低成本的PIC单片机16F628

   ④ 不需要校准!(其他需要校准的一个特殊的测试帽)

   ⑤ 类似电子秤的去皮功能,可自动归零,或相对值设置为零


   此外,亮点还包括:

      该电容测量仪,有三种显示格式,根据测量值大小有所差异,具体如下:

    0pF to about 18000 pF, format; "PPPPP.DD pF"

      18nF to 999nF, format; "NNN.DDD nF"

      1uF to 50uF, format; "UU.DDDD uF"


  显示精度:

    在pF级测量显示时,显示精度可达 +/- 0.02pF;

    而在nFuF级测量显示时,显示精度可达 +/- 最后1位数字


3、原理图



   备注说明:以上电路中,最关键的是这个部分,这里特别提取出来分析一下:



     该电路是一个RC震荡电路,其中比较器直接使用了PIC16F628内部自带的比较器。该电路的震荡输出频率 FoutRTCT决定,基本不受供电电压影响,当RT固定时,这个电路可以作为一个高精度测量电容的电路(通过测量Fout的值,就可以计算出CT的值)。在这个电路中,R1R2起的作用,是分压的作用,B点电压在1/3VDD2/3VDD之间变换。


    单片机PIC16F628通过定时器精确地测量到Fout 值后,通过一个算法把待测电容器CT的值,显示在LCD显示屏上。需要指出的是,为了获得更好的精度效果,RT需要使用高精度的金属膜电阻,阻值为: 10.00K。


4、软件部分的描述


    软件部分,很可惜该作者没有给出源码,只是给出了最终可烧录的HEX文件。


    下面,我们来看看该作者实现这个电容测量仪的一些构思。(在此之前,我们建议大家先看该作者的另外一个设计技巧和思路:Zero-error 1 second Timer 零误差产生1HZ 的定时器,该高精度电容测量电路的算法核心就是用这个方法来设计的。)


    本电路中,单片机PIC16F628使用内置的CCP1硬件单元来捕获RC振荡器的频率,PIC定时器的运行时钟为4MHZ16MHz/4=4 )单片机累加连续捕获到的周期数(),直到累加到的周期数超过两百万次(>0.5 second),仅仅误差只是最初和最后1次的捕获到的周期值,所以的误差值被限制在每次最后一次捕获的两百万次的多余部分,从而最终达到1PPM的精度。现在,通过总周期数除以捕获到的周期数,就可以得到一个精确的平均捕获值,接着把该平均值再放大1000倍,即可获得除数后包含了多个数字的最终值(分辨率)。 


  例如;

    "10nF" 的电容,测量到的振荡数是 435Hz

    218个连续的振荡值被累计,对应得到的总和值是:2004597

    从而有:(2004597*1000)/218 = 2004597000/218 = 9195399

    所以平均得到的周期数是:9195.399


  接着,第二步的处理是: 将平均得到的周期数转换为pF

     (9195399*100)/scale = 919539900/919 = 1000587

    1000587 最终被显示在LCD屏上的数字是:10005.87 pF

 

  类似地,再比如:

    "100pF" osc PIC单片机测量到的振荡数是 43500 Hz

    累计值首次超过2百万次,即实际达到2000091时,对应的振荡周期数是:21751

    从而有: 2000091000/21751 = 91953

    比例格式化: 91953000/919 = 100057

    最终, 100057 被处理和显示在LCD屏上的值是100.05 pF


5、材料清单(BOM列表)


  以下是这个电子制作的BOM列表,大部分器件可采购自立创商城http://www.szlcsc.com):

器件名称

器件类型

立创商城编号

备注

10KΩ ±1%

金属膜电阻

C58587

 

PIC16F628

PIC单片机

 

商城暂无

7805

7805

C77895

类似型号很多

16MHZ

晶振

C12676

类似型号很多

LCD显示屏 31

16x2 LCD

C83274

黑底白字效果

16x2 LCD

C83275

蓝底白字效果

16x2 LCD

C83276

黄绿底色效果

 

6PCB实物图




7、调试过程和应用实例


    测试是很简单的,PCBA焊接和组装无误后,上电会显示320pF左右(此时假设是没有接上待测电容CT的),此时该RC振荡器的频率大概是220KHZ左右。接着,轻触按键对该电容测量仪进行归零,LCD显示屏显示"Zero Cal",随后该装置即可进行待测状态!在测量极小电容的时候,由于精度很高,同时温度影响,出现一些跳过,比如+-0.05的变动,是正常的。另外,如果这个RC振荡器停止震荡,或者待测电容的2端短路,或者超过50uF的电容被插入来测量,那么LCD将会显示"Error" ,并交替性出现"Error" "Large cap"的提示。

 

8、总结


     Roman Black是个大牛,在他的个人网站上有很多他开源的作品,特别是他提出的“Zero-error 1 second Timer 零误差产生1HZ 的定时器”,这个算法在MCU中有很多应用,它可以让单片机即使使用特殊或有误差的晶振,也能产生精确的周期性、频率信号。这个算法,值得大家去学习和参考。另外这个电容测量仪的电路中,如果采用更高速的比较器,可以得到更准确的测量值,特别是在测量pF级微小容量的电容时,也欢迎大家去改进~



附件:

  官方原文:http://www.romanblack.com/onesec/CapMeter.htm

  烧录文件(HEX):CapMeter.rar


 

 

该帖子已被立创快报于Sat Mar 04 12:56:34 CST 2017编辑过
此账号用于发布《立创快报》最新资讯及相关趣味文章,欢迎大家多多关注!!!
回复 收藏
  举报
电子发烧客
3
主题
73
回复
发表于Sat Mar 04 11:45:56 CST 2017   |  只看该作者 2#

很不错的制作!希望以后多一些这样高质量的作品分享。

代售LCD显示屏的哥们是否可以用这个制作做个PCB验证板?

ChessWorld
22
主题
501
回复
发表于Sat Mar 04 13:42:48 CST 2017   |  只看该作者 3#
PIC16F628 -- 商城暂无 
立创商城赵...
【官方工作人员】
100
主题
1126
回复
发表于Sat Mar 04 13:58:18 CST 2017   |  只看该作者 4#
电子发烧客 发表于 Sat Mar 04 11:45:56 CST 2017  2# 很不错的制作!希望以后多一些这样高质量的作品分享。 代售LCD...

这个PCB验证板,如果是成品,或许会存在商业版权。

后续,我们商城会跟原作者Roman Black沟通,获得它的邮件授权后,我们才开放给网友或第三方来设计这款PCB验证板。

审核专员(第二届立创商城电子制作节)、《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
电子发烧客
3
主题
73
回复
发表于Sat Mar 04 14:40:29 CST 2017   |  只看该作者 5#
立创商城赵工 发表于 Sat Mar 04 13:58:18 CST 2017  4# 这个PCB验证板,如果是成品,或许会存在商业版权。 后续,我们...
小伊
28
主题
353
回复
发表于Tue Mar 21 14:33:50 CST 2017   |  只看该作者 6#
ChessWorld 发表于 Sat Mar 04 13:42:48 CST 2017  3# PIC16F628 -- 商城暂无
10多块钱一片。。。
①菲尼克斯PCB端子/接插件3.5/3.8/5.08/7.6/9.5间距到货 ②黄花电子工具-烙铁-936焊台-风枪 ③世达工具套装
立创商城赵...
【官方工作人员】
100
主题
1126
回复
发表于Tue Mar 21 14:59:05 CST 2017   |  只看该作者 7#
小伊 发表于 Tue Mar 21 14:33:50 CST 2017  6# 10多块钱一片。。。

这个芯片应该是货源问题,才较贵,毕竟只是8位机。像我们商城上同个原厂的的PIC32MX(32位)百片含17%的价格才7元左右。

这个制作,其实用其他芯片也可以做的,测量原理一样即可。

审核专员(第二届立创商城电子制作节)、《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
小伊
28
主题
353
回复
发表于Tue Mar 21 15:08:15 CST 2017   |  只看该作者 8#
立创商城赵工 发表于 Tue Mar 21 14:59:05 CST 2017  7# 这个芯片应该是货源问题,才较贵,毕竟只是8位机。像我们商城上...

如果没有记错,628应该是10多年前出的了。这个也算是PIC单片机的一个优势吧,生命周期都比较长,虽然说到后面价格没有优势了,但是对部分不方便改版的老用户来说,买得到才是王道。

对于32位来说,PIC32MM系列是这两年刚出来的,性价比不错,就是商城用的人还不多,非ARM内核的32位芯片厂家也做得很累啊。

①菲尼克斯PCB端子/接插件3.5/3.8/5.08/7.6/9.5间距到货 ②黄花电子工具-烙铁-936焊台-风枪 ③世达工具套装
香橙批
3
主题
16
回复
发表于Fri Mar 24 07:44:30 CST 2017   |  只看该作者 9#
其实用STM32也行,电容触摸功能的测量方法也是类似的。
创客老宋
3
主题
8
回复
发表于Fri Mar 24 09:28:36 CST 2017   |  只看该作者 10#
这个可以有,支持下
创客老宋 供职于深圳市金聚宝科技有限公司 http://www.saxmcu.com 微信:s308894904
kiss83610
0
主题
2
回复
发表于Sun Mar 26 19:15:55 CST 2017   |  只看该作者 11#
有现成的PCB吗?那里有购买的!
立创商城赵...
【官方工作人员】
100
主题
1126
回复
发表于Mon Mar 27 09:13:13 CST 2017   |  只看该作者 12#
kiss83610 发表于 Sun Mar 26 19:15:55 CST 2017  11# 有现成的PCB吗?那里有购买的!

目前我们商城还没有这款现成的PCB空板,现有的是这大概50款PCB(相关资料正在陆续整理和上线中。。)

 http://www.szlcsc.com/caseCheckBoard.html

审核专员(第二届立创商城电子制作节)、《立创快报》总编辑、立创电子公共实验室建设者,企业QQ:2355740879
一路向前
0
主题
3
回复
发表于Sun Jul 02 22:40:15 CST 2017   |  只看该作者 13#
不错!感谢分享,自制电容测试仪。
令狐小侠
0
主题
5
回复
发表于Sat Aug 12 09:27:01 CST 2017   |  只看该作者 14#
多谢楼主分享这么有价值的东西,我详细看了一下计算公式,为什么scale的值位919,能否指点一下?
  • 温馨提示:标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考:社区发帖规则
  • 您当前输入了 0个文字。还可以输入8000个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

顶部