目录
1、项目概述
2、项目架构
3、硬件环境
4、Arduino功能设计
5、LabVIEW功能设计
5.1、前面板设计
5.2、程序框图设计
1、项目概述质量是物理学中的7个基本量纲之一。在工业生产和日常生活中,我们都需要获取一个物体的质量,比如购买某件商品时,需要确定其质量大小,或者以质量作为中间量以进一步获得物体的其他参数,如质心、偏心等。
称重传感器实际上是一种将质量信号转变为可测量的电信号输出的装置。按照转换方法的不同,称重传感器分为光电式、液压式、电磁力式、电容式、磁极变形式、振动式、陀螺仪式、电阻应变式8类,其中,电阻应变式的使用最为广泛。
电阻应变式称重传感器的工作原理:弹性体(弹性元件、敏感梁)在外力作用下产生弹性变形,使粘贴在它表面的电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它的阻值将发生变化(增大或减小),再经相应的测量电路把这一电阻变化转换为电信号(电压或电流),从而完成将外力变换为电信号的过程。
由此可见,电阻应变片、弹性体和检测电路是电阻应变式称重传感器中不可缺少的组成部分,下面简述这三者的作用。
- 电阻应变片
电阻应变片是把一根电阻丝均匀地分布在一块有机材料制成的基底上,即成为一片应变片,其最重要的参数是灵敏系数K。
需要说明的是:灵敏度系数K值的大小是由制作金属电阻丝材料的性质决定的一个常数,它和应变片的形状、尺寸大小无关,不同的材料的K值一般在1.7~3.6。其次K值是一个无因次量,即它没有量纲。
- 弹性体
弹性体是一个有特殊形状的结构件,有两个功能,首先是它承受称重传感器所受的外力,对外力产生反作用力,达到相对静平衡。其次,它要产生一个高品质的应变场(区),使粘贴在此区的电阻应变片比较理想地完成机械形变至电信号的转换。
需要说明的是,上面分析的应力状态均是“局部"情况,而应变片实际感受的是“平均"状态。
- 检测电路
检测电路的功能是把电阻应变片的电阻变化转变为电压输出。因为惠斯登电桥具有很多优点,如可以抑制温度变化的影响,可以抑制侧向力干扰,可以比较方便地解决称重传感器的补偿问题等,所以惠斯登电桥在称重传感器中得到了广泛的应用。因为全桥式等臂电桥的灵敏度最高,各臂参数一致,各种干扰的影响容易相互抵消,所以称重传感器均采用全桥式等臂电桥。
称重传感器的出线方式有4线和6线两种,模块或称重变送器的接线也有4线和6线两种,接线原则是:传感器能接6线的不接4线,必须接4线的就要进行短接。
一般的称重传感器都是六线制的,当接成四线制时,电源线(EXC-,EXC+)与反馈线(SEN-,SEN+)就分别短接了。SEN+和SEN-是补偿线路电阻用的,SEN+和EXC+是通路的,SEN-和EXC-是通路的。EXC+和EXC-是给称重传感器供电的,但是由于称重模块和传感器之间的线路损耗,实际上传感器接收到的电压会小于供电电压。每个称重传感器都有一个mV/V的特性,它输出的mV信号与接收到的电压密切相关,SENS+和SENS-实际上是称重传感器内的一个高阻抗回路,可以将称重模块实际接收到的电压反馈给称重模块。在称重传感器上将EXC+与SENS+短接,EXC-与SENS-短接,仅限于传感器与称重模块距离较近,电压损耗非常小的场合,否则测量存在误差。称重传感器实物如下图所示:
本篇博文将介绍使用应变式称重传感器、HX711模块、Arduino Uno和LabVIEW组成上下位机小量程电子称重系统,系统框图如下图所示:
Arduino Uno作为下位机,负责HX711的读写以及数据传输,LabVIEW编写的显示软件作为上位机,上下位机利用USB-TTL接口实现通信。另外,还可以通过此系统对未知传感器进行标定,以修正误差,提高测量精度。
HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其他芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其他同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
HX711降低了电子称重的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
项目资源下载请参见:LabVIEWArduino电子称重系统【实战项目】-单片机文档类资源
3、硬件环境将HX711模块的VCC、GND、SCK和DOUT分别接至Arduino Uno控制器的5V、GND、D9和D10;并将HX711模块的E+、E-、A+和A-分别接称重传感器的激励电压正、负,输出电压正、负(具体接线请查阅所使用的传感器接线说明),最后将HX711模块的B+和B-接GND。
为了减少干扰信号,HX711高精度A/D模块与电阻式称重传感器之间的连接线应尽量短,过长的话会受到干扰,HX711高精度A/D模块与Arduino Uno控制器之间的连接线也应该尽量短。若一定需要延长线,则最好使用带电磁屏蔽的电缆线。效果如下图所示:
Arduino下位机部分需要完成以下功能:读取和传输称重传感器的输出信号,Arduino Uno控制板通过USB-TTL电缆接收上位机发来的命令,完成称重传感器的数据读取之后,并将数据回传至LabVIEW上位机软件。HX711模块主要完成输出信号的高精度A/D转换和给称重传感器提供激励电源。
另外,还需要查看具体传感器的灵敏度,以计算满量程电压和增益倍数。满量程电压的计算公式为︰满量程输出电压=激励电压×灵敏度。以灵敏度1.0mV/V为例,假设供电电压为5V,则满量程电压为5mV。
通过实际测量,HX711高精度A/D模块输出的供电电压为4V左右,则传感器满量程电压为4mV。由于HX711高精度A/D模块增益倍数为128或64对应的满量程差分输入电压分别为±20mV或±40mV。为了获得更高的精度,选择增益倍数为128倍。
Arduino Uno控制器负责读取LabVIEW上位机发来的质量测量命令,并通过HX71获取称重传感器输出的电压值,通过串口发送回上位机LabVIEW软件。Arduino Uno控制器的程序代码如代码如下所示:
#include
HX711 hx(9, 10,128);
#define HX711_COMMAND 0x10 //采集命令字
byte comdata[3]={0}; //定义数组数据,存放串口接收数据
void receive_data(void); //接受串口数据
void test_do_data(void); //测试串口数据是否正确,并更新数据
double sum = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0) //不断检测串口是否有数据
{
receive_data(); //接受串口数据
test_do_data(); //测试数据是否正确并更新标志位
}
}
void receive_data(void)
{
int i ;
for(i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?