设为首页收藏本站自媒体平台

研发设计门户网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8630|回复: 26
打印 上一主题 下一主题

从一个产品称重抽屉说起

[复制链接]

5

主题

41

帖子

208

积分

版主

Rank: 7Rank: 7Rank: 7

积分
208
跳转到指定楼层
楼主
发表于 2015-6-7 17:51:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

高速电路PCB网,专注于嵌入式方案,信号完整性和电源完整性仿真分析,高速电路PCB设计,各种EDA工具(Cadence\Mentor\\AD\\CAM\ANSYS HFSS)交流学习。

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

x
        我所在的公司正在开发一个新产品:枪柜   简单说就是给那些派出所放枪和子弹用的柜子,具体的功能为:枪支、子弹实时监控,同时,取枪用枪中需要领导审批,对枪支数量,子弹数量,枪支使用时间,使用人员等等信息进行统筹管理的一个设备。
       我负责枪锁,子弹称重抽屉,子弹称重抽屉用电阻应变片式压力传感器,刚开始淘宝购买了几个传感器支架,然后自己做电路板,刚开始也对电子秤进行了大致的了解。目标是在10kg内做到1g的精确度,也就是说10kg内误差小于1g。
       刚开始方案用STM8+HX711。HX711是24位的AD芯片,桥式传感器专用,价格淘宝价格3元多,走量的话大概就是1元多。两路差分输入端,一路可以输入传感器的查分电压,一路可以检测电源电压。而且输出还是5V的TTL电平,类似于I2C接口,刚开始用这个芯片,做了两次电路板,软件同事说不稳定,,具体表现就是外壳震动或者是推拉抽屉都会造成AD读数和LED显示屏示数跳变。我测试电压输出纹波也在30mv以内,而且在使用过程中也出现过两次芯片烧坏的现象。考虑到稳定性就更换了下一个方案。
       这个方案用STM8+TI的ADS1230。TI的ADS1230是20位的AD芯片,淘宝价格9元多。重新做电路板,做了一批板子回来之后,同事在网上直接拷贝别人的ADS1230代码,然后测试发现误差还是挺大的。我调试中发现了拷贝的ADS1230代码时序有问题,更改之后,对于淘宝上购买的压力传感器可以精确到1g,然后进行小批量试产,先打样30快电路板,因为可以用的传感器挺多的,中航电测、华衡、广测;进行了简单的测试对比之后,发现中航电测的质量最好,价格最高,其次为华衡,最次为广测。然后购买30个华衡的传感器。同时,结构上也做了30套抽屉。
       小批试产,安装调试,出现了问题。之前软件同事的思维是:只进行一次传感器线性拟合,然后就直接将这个参数固定,软件不做更改,直接在程序初始化中读取每个托盘的毛重,然后存入EEPROM中。问题出现了,基本上所有的传感器示数都不准确,有些差距在10g还多。这样的话需要对每个抽屉进行线性拟合校准,调试代码计算拟合参数,这样工作量太大了,根本无法进行量产。软件同事说是我硬件的问题,我说软件也又可能有问题,因为之前ADS1230驱动代码的确是不能使用。
       然后就是解决问题,求助了群友“南京--杨”,这里感谢杨兄,半夜12点打电话交流。得知:1.每个仪表在出厂前都要进行校准操作,然后才能出厂,而不是一个线性参数通吃所有传感器;2.首先要确定示数跳变是不是由于电源纹波过大影响的,其次要确定传感器本身是否为线性的,如果不是线性的,就需要做线性拟合。
       这几天抽空做了如下实验:1.直接给传感器通电,测试差分输出电压,因为万用表只能测到0.Xmv,所以这个实验基本上没有意义,只能表明传感器没有损坏。2.把我电路板的12V进入转5V输出电源IC去掉,然后直接用铅酸电池外接AMS1117-5.0来供电,放上各个重量砝码,记录AD输出数值,同时把电源IC焊接上去,12V电源适配器供电,同样做记录AD输出数值,发现AD数值的确有变化,但是也不至于误差在10g多;3.拿不同的电路板,对应同一个压力传感器测试AD转换数值,这样发现AD读出来的毛重和对应砝码的数值都不一样,这个先不管,进行标定,去两个参数,额定量程的30%重量对应的AD数值和额定量程80%重量对应的AD数值,分别求出来两个数值的线性度,然后求平均,测试发现三块电路板虽然拟合参数不完全相同,但是基本上都是在第三位小数上变化,同时都能满足10kg内1g的精确度;4.同一块电路板,对应不同的传感器,做跟3同样的实验方法。
         我把实验数据跟软件同事去看,然后他没办法,只能按照我说的去修改代码,测试,基本上这个问题得到解决,每个抽屉都进行标定,然后测试误差都能控制在10kg正负1g,从这件事情中,总结三点:
        1.尽量对自己所要做的东西熟悉,现有一个基本的认识,没有这类产品的话,也要熟悉其同类型产品。比如说:我做的是子弹抽屉,本质上来讲就是一个电子秤,就要去熟悉电子秤的基本功能,注意事项,参数处理以及一些调试方法等等;
         2.从网上拷贝的代码要认真去调试,同事做东西的思想就是能用即可,从来不考虑优化,也不追求完美,只是目前能有,有新的要求或者是BUG再进行更改。殊不知,别人的东西并不一定适合自己。
        3.出现问题要积极想办法去解决,求助他人也好或者是自我分析也好。同时也要有自己的分析办法,出现问题,要先考虑这个模块跟那些模块相连接,会有那些因素影响,罗列这些因素,一一排除。比如所:AD转换,电压(电流),程序,输入端,甚至于PCB布局布线都会影响。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

379

主题

893

帖子

3760

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3760
沙发
发表于 2015-6-8 08:54:24 | 只看该作者
不错啊。 支持原创好文!!!

75

主题

261

帖子

2360

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2360
板凳
发表于 2015-6-8 09:03:44 | 只看该作者
总结的很不错,赞一个!遇到问题就应该想各种方法去解决,积极的态度!!

14

主题

65

帖子

806

积分

版主

Rank: 7Rank: 7Rank: 7

积分
806
地板
发表于 2015-6-8 09:40:57 | 只看该作者
顶个   这思路就是电子秤的大体思路  凡是做此类的毕设都可以参考此文

0

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
5#
发表于 2015-6-8 10:00:09 | 只看该作者
目测楼主是处女座啊!

22

主题

132

帖子

5204

积分

技术专家

Rank: 8Rank: 8

积分
5204
6#
发表于 2015-6-8 16:50:26 | 只看该作者
产品软件和硬件分开来开发有什么好处?

5

主题

41

帖子

208

积分

版主

Rank: 7Rank: 7Rank: 7

积分
208
7#
 楼主| 发表于 2015-6-8 21:51:35 | 只看该作者
提示: 该帖被管理员或版主屏蔽

5

主题

41

帖子

208

积分

版主

Rank: 7Rank: 7Rank: 7

积分
208
8#
 楼主| 发表于 2015-6-8 21:51:57 | 只看该作者
llzmoon 发表于 2015-6-8 10:00
目测楼主是处女座啊!

目测不准确,是射手座的!

5

主题

41

帖子

208

积分

版主

Rank: 7Rank: 7Rank: 7

积分
208
9#
 楼主| 发表于 2015-6-8 21:52:45 | 只看该作者
any_012 发表于 2015-6-8 16:50
产品软件和硬件分开来开发有什么好处?

各司其职,做好本职工作!软件做好软件的工作,硬件做好硬件的工作!

14

主题

65

帖子

806

积分

版主

Rank: 7Rank: 7Rank: 7

积分
806
10#
发表于 2015-6-8 22:34:14 | 只看该作者
DIYfashaoyou 发表于 2015-6-8 21:51
我后续测试发现亮点:1.不同的电路板对应同一个传感器读出来的毛重不一样;2.一个传感器放一个重物放置一 ...

由于 用的传感器的原理是变阻的 非常传统  所以应该有个常识:同一重量下 采集到的点  在某个值 范围波动 。
硬件方面:电路好坏 决定 AD值的波动范围 也就是说 电路好 波动小点 电路不好 波动大点,总之 波动是存在的。
软件方面:
方案一 不一定纠结于某个定值  完全可以划分量程也就是等分  。举个例子:你量程0~5kg,你划分N个等分(根据实际的精度,在我认为就是每个等分的宽度就是波动的范围)  每当你测一个重物时,你就直接判断你所采到的AD值 在哪个等分  就能知道重量了
方案二  假如纠结于某定值(必须通过AD值 直接得出重量) 多采几次,求均方根啥的 得出离散度 然后尝试着得出一个AD直接  最后求个系数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

内容正在加载中,请稍候……

QQ|我的微博|小黑屋|手机版|Archiver|YanFa.Tech(gaosupcb Inc.)    

GMT+8, 2024-4-20 05:48 AM , Processed in 0.065737 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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