首页 > 其他分享 >称重系统设计

称重系统设计

时间:2022-10-17 11:33:18浏览次数:37  
标签:AD TempCaliADCValue 校准 HX710 系统 Value 传感器 设计 称重

1.传感器简介

称重系统在工业级日常生活中应用非常广泛,从小型的电子称到大型的地磅。其中传感器大部分为电阻应变式压力传感器。一般由四个电阻应变片组成惠更斯电桥,安装在弹性体上。当有压力时,应变片随弹性体发生形变,电阻产生变化,电桥产生不平衡电压。一般压力与电桥不平衡电压成线性比例关系。

称重系统设计_数据称重系统设计_公众号_02

       传感器的输出电压一般比较小,为mV级别。具体取决于激励电压和传感器灵敏度。常见的灵敏度有1mV/V、2mV/V、3mV/V。对于2mV/V的传感器,在激励电压为5V时,满量程时输出电压为2mV/V*5V=10mV。

2.硬件设计

传感器信号比较小,需要放大后再进行AD采集。目前有很多称重系统专用的AD芯片,内部集成了放大器,大大简化了硬件电路的设计。如TI的ADS1231,芯海科技的CS1231、海芯科技的HX710等。这些芯片都是24位AD,且集成了128倍的放大器(部分芯片放大倍数可设置)。本文以HX710为例进行介绍。其电路图如下:

称重系统设计_引脚_03

查询手册可以看到芯片5V供电时的性能要优于3V供电。但需要注意的是HX710的AVDD不能大于DVDD,而目前大部分单片机为3.3V供电,所以这里都用3.3V供电。ADS1231是没有这个限制的,即DVDD可以是3.3V,AVDD可以是5V。

芯片共模输入电压范围为AGND+0.9V到AVDD-1.3V,这一点在其它应用时需要注意。

芯片差分输入电压范围为±0.5VREF/放大倍数(128)≈±12.89mV。对于3.3V激励电压,2mV/V灵敏度的传感器,最大输出电压为±6.6mV,在芯片要求范围内。两个值相差近一倍,会损失约1位的分辨率。激励电压越大,传感器输出电压越接近AD的输入范围,AD的分辨率就越能得到有效利用。但也要综合考虑整个电源系统的设计。

另外,传感器的激励电压尽量与芯片的VREF采用同一个电源,这样可以抑制一些共模干扰。

3.软件设计

芯片与单片机接口简单,一个数据输出引脚DOUT,一个时钟引脚SCK。

当AD一次转换完成后,DOUT由高电平变为低电平,此时SCK引脚输入25~27个不等的时钟脉冲,每个时钟的上升沿从DOUT读取数据。时序图如下。其它芯片的读取数据时序与此芯片基本相同。

称重系统设计_引脚_04

程序编写


int32_t ad_val=0;//AD值
void Get_HX710()
{
HX710_SCLK_CLR;
if(READ_HX710_DOUT_PIN)return ;

for(i=0;i<24;i++)
{
HX710_SCLK_SET;
ad_val=ad_val<<1;
HX710_SCLK_CLR;
if(READ_HX710_DOUT_PIN)
ad_val++;
}
HX710_SCLK_SET;
if(ad_val&0x800000)ad_val|=0xFF000000;
HX710_SCLK_CLR;
}

传感器校准

上面读取的是AD原始值,转换成重量前需要对传感器进行校准。一般传感器校准至少需要两个点:零点和满量程(当然,其它任意两个点也可以,因为两点确定一条直线)。对于一些要求高的场合,则需要多个点进行分段校准,甚至不同温度区间进行校准。本文以两个点的校准为例。校准数据包括零点校准值、零点AD值、满量程校准值、满量程AD值。

计算称重值比较简单,即在通过两个校准点确定一条直线,找到该曲线上AD值对应的重量。程序如下:

int32_t CaliADCValue[2];//校准的AD值
int32_t CaliSensorValue[2];//校准的传感器值
int32_t ZeroValue;//去皮AD值
int32_t Sensor_Value = 0;//计算后的称重值
void CalcWeight(int32_t AD_Value)
{
int32_t TempCaliADCValue[2];//校准AD值

TempCaliADCValue[0] = CaliADCValue[0] + ZeroValue;
TempCaliADCValue[1] = CaliADCValue[1] + ZeroValue;//去皮

if(AD_Value < TempCaliADCValue[0])//小于0点值
{
Sensor_Value = 0;
}
else if(AD_Value > TempCaliADCValue[1])//大于最大校准值
{
Sensor_Value = CaliSensorValue[1] + (float)(AD_Value - TempCaliADCValue[1])/(float)(TempCaliADCValue[1] - TempCaliADCValue[0]) * (float)(CaliSensorValue[1] - CaliSensorValue[0]);
}
else//在校准范围内
{
Sensor_Value = CaliSensorValue[0] + (float)(AD_Value - TempCaliADCValue[0])/(float)(TempCaliADCValue[1] - TempCaliADCValue[0]) * (float)(CaliSensorValue[1] - CaliSensorValue[0]);
}
}

称重系统的一个重要功能就是去皮。上面程序中包括了去皮的功能,去皮即在原来校准AD值的基础上加上去皮AD值,作为新的校准AD值去计算。

AD去皮值=当前AD值-零点校准AD值。


ZeroValue = ad_val - CaliADCValue[0];


本文介绍的只是一种常见的称重系统设计方案。在一些要求高的场合,可能需要对传感器进行蠕变补偿,采用交流激励等方式。



欢迎关注公众号"嵌入式技术开发",大家可以后台给我留言沟通交流。如果觉得该公众号对你有所帮助,也欢迎推荐分享给其他人。

称重系统设计_引脚_05

标签:AD,TempCaliADCValue,校准,HX710,系统,Value,传感器,设计,称重
From: https://blog.51cto.com/u_15830484/5761797

相关文章

  • ERP 系统最重要的是什么?
    ERP系统最重要的就是内部业务逻辑,这也是ERP复杂、专业性的体现!ERP系统可以算是当今最复杂的应用系统,也是最昂贵的,头部厂商一套系统动辄上千万,实施费用也常常达到千万级,实施......
  • Tutorial 1_UML与面向对象程序设计基本原则
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1. 继承关系     继承指的是一个类(称为子......
  • C/C++数据结构算法动态演示系统
    C/C++数据结构算法动态演示系统《数据结构与算法基础》课程项目课程项目题目:数据结构算法动态演示系统设计要求:设计并建立一套数据结构算法的动态演示系统。利用可......
  • Google已将”XXX”标记为恶意扩展程序并已阻止系统安装它
    在Chrome浏览器中安装扩展程序时报错;Google已将”XXX”标记为恶意扩展程序并已阻止系统安装它 解决方法:1)将下载的扩展插件文件 *.crx,文件名crx后缀改为zip2)并用RA......
  • Java_SE_第八讲:理解面向对象程序设计
    break语句:经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。continue语句:经常用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执......
  • QFramework v1.0 使用指南 架构篇:08. 用接口设计模块(依赖倒置原则)
    QFramework本身支持依赖倒置原则,就是所有的模块访问和交互都可以通过接口来完成,代码如下:usingUnityEngine;usingUnityEngine.UI;namespaceQFramework.Example{......
  • windows系统无法登陆提示引用账户当前已锁定,且可能无法登录的解决方法 简单解决办法
    windows系统无法登陆提示引用账户当前已锁定,且可能无法登录的解决方法简单解决办法就是什么都不用做,等半个小时然后登录就行了.你可能会疑惑为什么是半个小时呢,因为这是......
  • 支付系统
    应用管理:同时支持公司多个业务系统对接。商户管理:支持商户入驻,商户需要向平台方提供相关的资料备案。渠道管理:支持微信、支付宝、银联、京东支付等多种渠道。账户......
  • 设计模式五(桥接模式)
      publicinterfaceDrawAPI{publicvoiddrawCircle(intradius,intx,inty);}publicclassRedCircleimplementsDrawAPI{@Overridepublic......
  • 从0到1设计通用数据大屏搭建平台
    ​作者:vivo互联网大数据团队-WangLei一、前言一直以来,许多产品平台都在尝试通过可视化搭建的手段来降低GUI应用的研发门槛,提高生产效率。随着我们业务的发展,数据建......