数码之家

 找回密码
 立即注册
搜索
查看: 2596|回复: 86

[C51] 单片机做电压表,线性这么差吗?

[复制链接]
发表于 2022-7-12 16:50:09 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shangh 于 2022-7-12 16:54 编辑

用STC12C2052AD单片机做了一个0-30V电压表,A/D转换使用芯片自带的,
只有在6V很准,30V误差快1V,
这个能通过软件修正吗?

用洞洞板搭建试验

IMG_5320.JPG



捕获1吧.PNG

打赏

参与人数 1家元 +20 收起 理由
zzqqzzz + 20 歡迎探討

查看全部打赏

发表于 2022-7-12 16:56:51 来自手机浏览器 | 显示全部楼层
单片机的电源要处理好,要稳定,采样时加数字滤波
回复 支持 反对

使用道具 举报

发表于 2022-7-12 17:07:31 | 显示全部楼层
有分压电阻吗?
回复 支持 反对

使用道具 举报

发表于 2022-7-12 17:51:40 | 显示全部楼层
程序应该多次采集取平均值
回复 支持 反对

使用道具 举报

发表于 2022-7-12 17:57:20 | 显示全部楼层
等待高手解答
回复 支持 反对

使用道具 举报

发表于 2022-7-12 17:59:51 | 显示全部楼层
感觉和取样位数,速率,基准电压,取样电阻都有关系。或者每个电压区间都校准,比如每1V
回复 支持 反对

使用道具 举报

发表于 2022-7-12 18:02:18 | 显示全部楼层
电压误差随着电压的升高而加大,没玩过,不知道怎么解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 18:15:53 | 显示全部楼层

没有分压电阻测不到30V这么高
屏幕截图 2022-07-12 181418.jpeg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 18:18:18 | 显示全部楼层
9@9电子-家宁 发表于 2022-7-12 16:56
单片机的电源要处理好,要稳定,采样时加数字滤波

数字滤波不会写代码,有硬件滤波,开始没有硬件滤波电压根本读不了,数字一直跳,电源用的是电脑USB
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 18:24:28 | 显示全部楼层
ling11052001 发表于 2022-7-12 17:59
感觉和取样位数,速率,基准电压,取样电阻都有关系。或者每个电压区间都校准,比如每1V ...

没玩过单片机电压表,没料到线性会这么差,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 18:26:10 | 显示全部楼层
wy1032533 发表于 2022-7-12 17:51
程序应该多次采集取平均值

不会写程序,程序是网上的,看不懂有没有多次采集
回复 支持 反对

使用道具 举报

发表于 2022-7-12 20:44:08 | 显示全部楼层
shangh 发表于 2022-7-12 18:26
不会写程序,程序是网上的,看不懂有没有多次采集

建议你先不分压试试,输入0-5v,看看线性
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-7-12 20:53:41 来自手机浏览器 | 显示全部楼层
wxhjsr 发表于 2022-7-12 18:02
电压误差随着电压的升高而加大,没玩过,不知道怎么解决

谢谢支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 20:54:33 来自手机浏览器 | 显示全部楼层
人艰不拆了 发表于 2022-7-12 20:44
建议你先不分压试试,输入0-5v,看看线性

我明天试试看
回复 支持 反对

使用道具 举报

发表于 2022-7-12 20:54:48 | 显示全部楼层
看上去是线性递增的。
这个不能怪单片机ADC,是“基准源”(单片机供电电源)误差太大了
回复 支持 反对

使用道具 举报

发表于 2022-7-12 20:58:38 | 显示全部楼层
你这看着还行啊,校准一次

就是选两点,把直线斜率和截距算出来

然后每次ADC采集到数据后,代入直线公式计算显示值

就不会偏差那么大了.

ADC只要线性好,就可以这样校准.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-12 21:37:49 来自手机浏览器 | 显示全部楼层
yanjian 发表于 2022-7-12 20:58
你这看着还行啊,校准一次

就是选两点,把直线斜率和截距算出来

不会写程序,你说的这个方法玩不来,谢谢你
回复 支持 反对

使用道具 举报

发表于 2022-7-13 00:55:13 | 显示全部楼层
实在不行,人肉做嘛

电压高低位各选一点,ADC1,U1,ADC2,U2
k=(U2-U1)/(ADC2-ADC1)
c=U2-k*ADC2

以后按U=k*ADC+c计算
回复 支持 2 反对 0

使用道具 举报

发表于 2022-7-13 07:50:11 | 显示全部楼层
数字滤波说白了就是采集多次,然后计算加权平均值或者是递延加权平均值,但若是自己不会改写代码的说就等于白说。
回复 支持 反对

使用道具 举报

发表于 2022-7-13 08:19:22 | 显示全部楼层
既然使用单片机测量就好办了,用查表确定测量区间,然后再线性计算,在软件中进行修正。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-28 18:52 , Processed in 0.156001 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表