提高单片机对模拟传感器(电压)采样精度
game00over2013/06/24仪器仪表 IP:天津
自学电子的道路是漫长的,分享本人一点关于单片机对微弱电压变化的采样的经验。如果有出错的地方,欢迎各位大神指出错误,谢谢。

        前段时间群里有个朋友问道Arduino的模拟输入的分辨率是多少,其实这个问题没有一个固定的答案。不过普遍大多数刚刚接触Arduino的初学者来说,普遍认为是4.88mV更精确的理论值0.0048828125V。也就是说,输入电压=0.0048828125*返回数值(0~1023),换句话说误差也是4.88mV。
        大部分初学者根据此来设计程序,比如 一温度传感器 ,温度与输出电压成正比, 10mV对应1℃(如:38.4℃对应输出384mV)。程序按照此规则编写好后,烧写,上电。却发现有时测出的温度与用其他使用相同传感器的电子温度计数值不同,有时甚至有两三摄氏度的误差。其实,绝大多数并不是由于传感器质量的原因。而是由于供电电压不是标准的5V的原因。
        为什么采样值会与供电电压有关系呢?
        我们不妨先分析下那个4.88mV的分辨率是怎么来的。Arduino的模拟基准电压默认为5V,也就是说分辨率=基准电压/1024。而我们在日常使用方法中,有时并不能得到一个非常标准的5V电源为Arduino供电,以一种常见的USB手机直充头来说。经测试,它的输出电压为5.4V,那么如果以它为Arduino供电,这时分辨率=5.4V/1024=5.2734375mV 。有人可能说不就多了0.3mV么,这点电压够干什么?您接着往下看,以上面的温度传感器为例,若此时输出电压为384mV

在标准5V情况下:
分辨率=4.88mV
返回值=384/4.88=78或79
经程序处理输出温度=38.064℃或38.552℃

在5.4V非标准供电下:
分辨率=5.27mV
返回值=384/5.27=72或73
经程序处理输出温度=35.136℃或35.624℃

所以,千万别小看基准电压带来的问题,这在实际中可是大问题。
这还仅仅是10mV对应一摄氏度的“敏感”型传感器,如果是一些电压变化较小的传感器呢?
由基准电压不稳定造成的测量误差实在是太大了。

---------------------------------------------------------------------------------------
ps:深夜宿舍手机发帖,码字辛苦。所以不能一次写完,望谅解~
若超时,将以回帖方式补充
下帖预告“提高单片机对模拟传感器(电压)采样精度之-从氧气传感器的电压采样说起"
来自:仪器与装备 / 仪器仪表
14
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
.........
10年11个月前 IP:未同步
539588
每次我都是记录下数据,然后线性拟合一遍的...基准呃,AVR有片内2.5v基准的,可以尝试下.
LZ如果是10mv/℃的话,分辨率大概也就0.5℃.还不如用DS18B20,也是0.5℃的精度.
+1
科创币
game00over
2013-06-24
只是举例,还没写完呢,后面会说到使用0.512V外部基准源,实现提高精度的……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
.........
10年11个月前 IP:未同步
539590
这个LZ参考下吧,里面写了AD误差类型以及如何校准
attachment icon AVR120_AVR的ADC校正和说明.pdf 337.75KB PDF 78次下载 预览
+25
科创币
game00over
2013-06-24
感谢分享资料
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
.........
10年11个月前 IP:未同步
539594
LZ采集温度是用的什么?PT100?热敏电阻?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
光谱
10年11个月前 IP:未同步
539596
可以在其他AD口接个431,换算。431是2.5v。不玩Arduino.另外楼上的18b20也是个法子。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
光谱
10年11个月前 IP:未同步
539597
另外,18 20精度好像不止0。5我记得好像是0。0625 ?可以自己查datasheet。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
game00over作者
10年11个月前 IP:未同步
539599
回 3楼(.........) 的帖子
我仅仅是举例……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
10年11个月前 IP:未同步
539650
回 6楼(game00over) 的帖子
对于常见的ATmega328/168(对应Arduino pro mini),读取内部1.1V基准电压,反推电源电压即可
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
zw1235
10年11个月前 IP:未同步
539667
A/D采样,必然离不开基准,没了基准参考,采样出来的数据也就没了意义
多数芯片内部集成的基准,离散性偏差都比较大,要求高的场合还是建议选用专用基准电压芯片做外部基准.
当然基准只是决定精度和稳定性的一项,前级的缓冲放大,走线,电源,等等因素都会影响采样精度和稳定性
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
log1
9年7个月前 IP:广东
728094
用AD精密采样,基准是必须考虑的,一般来说不应该采用内部基准,内部基准不论是绝对误差,温漂时漂,调整率等都远远低于专门的基准源。
但是,除了基准外,还有其他更多的因素需要考虑,运放的温漂、偏置,取样电阻精度、温漂、信号传输过程的干扰,线路电流影响,信号频率
等等因素,这些远比基准的影响还要大。
一般来说,还应该考虑通过校准消除绝对误差,甚至也可以做温度补偿等等,这二个可以编程实现,非常方便。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
biggigi2002
9年7个月前 IP:四川
728105
仅仅用于测量温度的话 还是IIC  总线的数字化温度表给力啊
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
04102
9年6个月前 IP:陕西
731263
提高过采样倍数,利用噪声以达到^0.5数量的多余分辨率,但是这个方法暂且只是理论上的,实践起来并不一定有精度,内部ADC的INL不一定高,标定后也不好说,需要实测,有闲心的话试一下吧。
Vref影响full scale精度,能折到gain error去
18b20是0.5℃精度,如果没有标定校准手段的话,这个精度、性价比相当高,类似的还有LM75,sht1x。
在0~100℃范围内,用一个完美精度的检测电路去检测K、PT100的温度,传感器价格要是不高于18b20的话,传感器自身误差就能把绝对精度打到和18b20相差不多的精度。
上面有提到以Vcc作为ref,转换内部低压ref通道反算Vcc的,STM32F0一些型号也是这样,挺典型的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
format0789
9年1个月前 IP:安徽
768366
引用 分析纯_金:
另外,18 20精度好像不止0。5我记得好像是0。0625 ?可以自己查datasheet。
那是分辨率
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
format0789
9年1个月前 IP:安徽
768367
引用 分析纯_金:
另外,18 20精度好像不止0。5我记得好像是0。0625 ?可以自己查datasheet。
18b20和1820米精度和分辨率都不一样的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
game00over
学者 笔友
文章
45
回复
576
学术分
4
2010/12/31注册,1年1个月前活动

喜欢捣鼓的宅男

主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}