我的账户
中国电子DIY

科技成就未来

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

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

[复制链接]
树的世界 发表于 2017-7-3 10:48:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1、作品简介
贴片电容,不像贴片电阻那样上面还有数字标识,所以如果多个贴片电容不小心混在一起,是很难区分开来的,原因主要是一般的万用表没那么高分辨率的电容测试功能,为此本期,我们编辑组特意给大家介绍一款来自老外的电子制作,该制作属于开源,具有硬件简洁,但又不失高精度测量的特点,作者也提供了HEX源码,烧录完成后即可工作!该老外的大名是:Roman Black顺此声明,该文章的版权归属:Roman Black, 我们立创商城只是转载和翻译,如翻译有所偏差,请以作者原文为准)。
2、作品亮点
① 具有很高的分辨率:达6~7位!(一般的仪器或制作,只有有3或4位)
② 测量范围较宽:0pF到50uF。
③ 硬件简洁,性价比高,使用到一个低成本的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、原理图
1.jpg

备注说明:
以上电路中,最关键的是这个部分,这里特别提取出来分析一下:
2.jpg
该电路是一个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
[size=10.5000pt]
PIC16F628
PIC单片机
[size=10.5000pt]
商城暂无
7805
7805
C77895
类似型号很多
16MHZ
晶振
C12676
类似型号很多
LCD显示屏 (31
16x2 LCD
C83274
黑底白字效果
16x2 LCD
C83275
蓝底白字效果
16x2 LCD
C83276
黄绿底色效果
6PCB实物图
4.jpg 5.jpg
7、调试过程和应用实例
  测试是很简单的,PCBA焊接和组装无误后,上电会显示320pF左右(此时假设是没有接上待测电容CT的),此时该RC振荡器的频率大概是220KHZ左右。
  接着,轻触按键对该电容测量仪进行归零,LCD显示屏显示"Zero Cal",随后该装置即可进行待测状态!在测量极小电容的时候,由于精度很高,同时温度影响,出现一些跳过,比如+-0.05的变动,是正常的。
另外,如果这个RC振荡器停止震荡,或者待测电容的2端短路,或者超过50uF的电容被插入来测量,那么LCD将会显示"Error" ,并交替性出现"Error" 和 "Large cap"的提示最终, 100057 被处理和显示在LCD屏上的值是100.05 pF
8、总结
Roman Black是个大牛,特别是他提出的Zero-error 1 second Timer 零误差产生1HZ 的定时器”,这个算法在MCU中有很多应用,它可以让单片机即使使用特殊或有误差的晶振,也能产生精确的周期性、频率信号。这个算法,值得大家去学习和参考。另外这个电容测量仪的电路中,如果采用更高速的比较器,可以得到更准确的测量值,特别是在测量pF级微小容量的电容时,也欢迎大家去改进~
本文由立创商城翻译整理,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。自建6000多平米现代化元器件仓库,现货库存超50000种,集团电子全产业链自营服务涵盖:在线EDA(LCEDA)+行业领先的PCB打样/中小批量+元器件商城+钢网制造+SMT贴片+电子设计教育及方案。

精彩评论12

mks751205 发表于 2017-7-3 11:20:52 | 显示全部楼层
厉害,佩服
回复

使用道具 举报

wyl 发表于 2017-7-3 16:20:32 | 显示全部楼层
很好的资料,感觉量程太小了。最大只有50uf。
回复

使用道具 举报

Raymondau 发表于 2017-7-3 16:32:16 | 显示全部楼层
不错,附相关制作资料就好了
回复

使用道具 举报

电子学徒工 发表于 2017-7-9 09:22:41 | 显示全部楼层
有一个详细的制作过程更好了,套件有吗,价格。
回复

使用道具 举报

123qweasdzxc 发表于 2017-7-18 08:21:23 | 显示全部楼层
小白,入过
回复

使用道具 举报

tjm9096 发表于 2017-9-16 00:53:12 | 显示全部楼层
很好的资料,感觉量程太小了。
回复

使用道具 举报

1013438925 发表于 2017-9-20 08:27:19 | 显示全部楼层
不错,附相关制作资料就好了
回复

使用道具 举报

yangjiaxu 发表于 2017-10-21 09:52:58 | 显示全部楼层
给力哈 感谢分享                 
回复

使用道具 举报

wolff 发表于 2017-10-22 22:21:18 | 显示全部楼层
历害,有没有牛人在这个基础上面改一个连电感也可以测的,那就更完美。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注0

粉丝3

帖子101

发布主题
推荐阅读
关注我们
中国电子DIY官方微信

客服电话:000-000-0000

客服邮箱:776513803@qq.com

周一至周五 9:00-18:00

公司地址:深圳市南山区美丽湾大厦B座

Powered by Discuz! X3.4@ 2001-2013 Comsenz Inc.