LabVIEW Arduino电子称重系统(项目篇—1)

简介: 质量是物理学中的7个基本量纲之一。在工业生产和日常生活中,我们都需要获取一个物体的质量,比如购买某件商品时,需要确定其质量大小,或者以质量作为中间量以进一步获得物体的其他参数,如质心、偏心等。

1、项目概述

质量是物理学中的7个基本量纲之一。在工业生产和日常生活中,我们都需要获取一个物体的质量,比如购买某件商品时,需要确定其质量大小,或者以质量作为中间量以进一步获得物体的其他参数,如质心、偏心等。


称重传感器实际上是一种将质量信号转变为可测量的电信号输出的装置。按照转换方法的不同,称重传感器分为光电式、液压式、电磁力式、电容式、磁极变形式、振动式、陀螺仪式、电阻应变式8类,其中,电阻应变式的使用最为广泛。


电阻应变式称重传感器的工作原理:弹性体(弹性元件、敏感梁)在外力作用下产生弹性变形,使粘贴在它表面的电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它的阻值将发生变化(增大或减小),再经相应的测量电路把这一电阻变化转换为电信号(电压或电流),从而完成将外力变换为电信号的过程。


由此可见,电阻应变片、弹性体和检测电路是电阻应变式称重传感器中不可缺少的组成部分,下面简述这三者的作用。


电阻应变片

电阻应变片是把一根电阻丝均匀地分布在一块有机材料制成的基底上,即成为一片应变片,其最重要的参数是灵敏系数K。


需要说明的是:灵敏度系数K值的大小是由制作金属电阻丝材料的性质决定的一个常数,它和应变片的形状、尺寸大小无关,不同的材料的K值一般在1.7~3.6。其次K值是一个无因次量,即它没有量纲。


df4cbf7688c8477c98f69df44fbce641[0].png


弹性体

弹性体是一个有特殊形状的结构件,有两个功能,首先是它承受称重传感器所受的外力,对外力产生反作用力,达到相对静平衡。其次,它要产生一个高品质的应变场(区),使粘贴在此区的电阻应变片比较理想地完成机械形变至电信号的转换。


需要说明的是,上面分析的应力状态均是“局部"情况,而应变片实际感受的是“平均"状态。


检测电路

检测电路的功能是把电阻应变片的电阻变化转变为电压输出。因为惠斯登电桥具有很多优点,如可以抑制温度变化的影响,可以抑制侧向力干扰,可以比较方便地解决称重传感器的补偿问题等,所以惠斯登电桥在称重传感器中得到了广泛的应用。因为全桥式等臂电桥的灵敏度最高,各臂参数一致,各种干扰的影响容易相互抵消,所以称重传感器均采用全桥式等臂电桥。


称重传感器的出线方式有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-短接,仅限于传感器与称重模块距离较近,电压损耗非常小的场合,否则测量存在误差。称重传感器实物如下图所示:


9bee9c55b5c54e4995051bebd7203f2e[0].png


2、项目架构

本篇博文将介绍使用应变式称重传感器、HX711模块、Arduino Uno和LabVIEW组成上下位机小量程电子称重系统,系统框图如下图所示:


153328e1838d4b9cb30b72f987e42e53[0].png


Arduino Uno作为下位机,负责HX711的读写以及数据传输,LabVIEW编写的显示软件作为上位机,上下位机利用USB-TTL接口实现通信。另外,还可以通过此系统对未知传感器进行标定,以修正误差,提高测量精度。


HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其他芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其他同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。


HX711降低了电子称重的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。


1ece956729b34baba488c05816aafca4[0].png


项目资源下载请参见:LabVIEWArduino电子称重系统【实战项目】-单片机文档类资源

https://download.csdn.net/download/m0_38106923/85611887


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控制器之间的连接线也应该尽量短。若一定需要延长线,则最好使用带电磁屏蔽的电缆线。效果如下图所示:


e395360b168f44e28e5e27837c5e9a81[0].png


4、Arduino功能设计

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.h>
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<3;i++)
   {
      comdata[i] =Serial.read();
      //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
       delay(2);
   }
}
void test_do_data(void)
{
  if(comdata[0] == 0x55)            //0x55和0xAA均为判断是否为有效命令
   {
     if(comdata[1] == 0xAA)
     {
        if(comdata[2] == HX711_COMMAND)
        {            
            for (int i = 0; i < 10; i++){
                sum += hx.read();}
            Serial.println(sum/10,2);          
        }
      }
   }
} 


5、LabVIEW功能设计

LabVIEW上位机部分需要完成以下功能:


1、向下位机Arduino控制器发送电压采集命令,Arduino控制器通过串口接收上位机命令,完成相应的数据采集之后并将采集的数据回传,LabVIEW软件将回传的数据转换为质量并显示在前面板上。


2、通过使用标准砝码对称重系统进行标定,以获得称重传感器的输出电压与质量的关系,从而拟合出传感器的输出电压与质量的标定系数,用于将传感器的输出电压换算为所称量的质量,而且通过精确的砝码对称重系统进行多次标定,有利于提高整个称重系统的测量精度。


5.1、前面板设计

LabVIEW前面板分为称重和标定两个部分,称重部分主要有读取标定系数、单次称重、多次称重取平均值。标定部分主要有5阶正反行程的标定、计算拟合系数和保存拟合系数。同时,在标定部分设有一个超时测量电压的显示框,以实时地显示当前称重传感器输出信号值的变化情况。小量程电子称重系统的LabVIEW上位机前面板,如下图所示:


8f745fd696334e6a967a2e3c4fb628b9[0].png


5.2、程序框图设计

由于在LabVIEW上位机的程序设计中需要多次调用电压采集子程序,以向ArduinoUno控制器发送命令码,并获取Arduino Uno控制器返回的测量数据,所以将电压采集子程序设计成子Vl,不仅可以简化程序设计,还便于调用。


电压采集子程序的前面板和程序框图,如下图所示:


b77eba5d6aac4e13ae4d0bf908a4f511[0].png


22b32301240541aa9612b7095660d685[0].png


LabVIEW上位机主程序的结构为顺序结构+While循环+事件结构。首先,在顺序结构中的第一帧中,对所使用的数组、中间变量和显示控件进行初始化,在顺序结构的第二帧中,通过设置的串口号来初始化串口通信。然后,程序进入While循环和事件结构,不断地检测是否有事件得到响应,并执行,事件结构有"测量_称重”、“测量_读取标定系数”"、“测量_计算平均值"、“标定_采集"、“标定_拟合"、“标定_保存"和“超时”。最后,关闭串口通信。


初始化程序框图如下图所示:


d7a5878c1e0a421e99737aedd8d94704[0].png


在“测量_称重"事件结构中,通过“采集子程序"读取Arduino Uno控制器返回的数据,并利用标定系数计算得到所称量的重量,同时利用称重计数器将重量数据循环显示在测量数据中。“测量_称重"值改变事件程序框图如下图所示:


b40a5f70f5f0401fbe6fea66c2004a96[0].png


在“测量_读取标定系数"事件结构中,通过“文件对话框"的选择来读取称重传感器的标定系数,以用于计算所称量的重量,同时显示当前标定系数,以表示当前所使用的标定系数,进一步扩大了电子称重系统的适用范围,可以通过配置不同量程的称重传感器来实现不同范围的称重需求。“测量_读取标定系数"值改变事件程序框图如下图所示:


f92445bf9f6f468295398cd4e9e78b4a[0].png


在"测量_计算平均值"事件结构中,通过对测量数据数组的5个元素累加并除以5,得到所称量的重量,这种通过多次测量取平均值的方法可以提高称重精度,满足较高精度的称重需求。“测量_计算平均值"值改变事件程序框图如下图所示:


429623b0af2d4d58980399bc883e9644[0].png


在“标定_采集"事件结构中,通过“采集子程序"读取Arduino Uno控制器返回的称重传感器输出的电压信号,并利用标定计数器和条件结构将所采集到的数据依次显示在正行程和反行程上。“标定_采集"值改变事件程序框图如下图所示:


0ae36dee2bcf4396b7b63673690a0485[0].png


在“标定_拟合"事件结构中,通过将正行程和反行程数组中的电压数据求平均值,与质量标准值数组利用线性拟合函数计算出拟合系数,并显示在标定系数上。“标定_拟合”值改变事件程序框图如下图所示:


65da2fdaf7e64f0382f9351a48565434[0].png


在“标定_保存"事件结构中,通过“文件对话框"来选择标定系数的保存路径,并检查是否存在相同文件名的文件,如存在则提醒是否替换文件,然后将标定系数以配置文件的格式保存,后缀名为".ini"。“标定_保存"值改变事件程序框图如下图所示:


c4352f9ff78f451ca0ffd96614ba5a50[0].png


当2秒内无事件被触发,则事件结构进入“超时"分支。在“超时"事件结构中,通过“采集子程序"读取Arduino Uno控制器返回的称重传感器输出信号,并将其显示为前面板上的当前电压值。“超时"事件结构如下图所示:


fb76fd40141a470890e020efc48ff408[0].png


除了传感器的非线性之外,电阻应变式称重传感器温度漂移的偏差值也不容忽视,可以在系统中加入温度传感器(例如DS18B20),并在计算重量时进行线性温度漂移修正。


另外,选择较高精度的称重传感器,还可以利用此小量程电子称重系统实现物体的质量质心的测量,例如,固体火箭发动机的质量质心测量系统。


项目资源下载请参见:LabVIEWArduino电子称重系统【实战项目】-单片机文档类资源

https://download.csdn.net/download/m0_38106923/85611887


相关文章
|
数据采集 监控 算法
区块链量化交易系统开发策略详细丨需求步骤丨案例设计丨规则玩法丨成熟源码
策略:建立数据采集系统,获取各种市场数据,包括交易数据、新闻情报、社交媒体消息等。
|
网络协议 算法 数据库
计算机网络实验(华为eNSP模拟器)——第十四章 RIP协议和OSPF协议
计算机网络实验(华为eNSP模拟器)——第十四章 RIP协议和OSPF协议
计算机网络实验(华为eNSP模拟器)——第十四章 RIP协议和OSPF协议
|
9月前
|
存储 自然语言处理 监控
民航机场大模型私有知识库搭建步骤:技术选型 + 实施路径全解析!
近年来,民航机场面临知识管理难题,大模型技术为构建高效、安全的企业知识库提供了新思路。本文介绍知识库发展历程、大模型应用挑战,并详述私有化部署策略与八大实施步骤,助力民航提升运营效率与服务质量。
|
12月前
|
编解码 边缘计算 文字识别
SmolVLM:资源受限环境下的高效多模态模型研究
SmolVLM是一系列专为资源受限设备多模态模型,通过优化架构与训练策略,在图像和视频处理任务中表现出接近大型模型的性能。该系列包含三种变体:SmolVLM-256M、500M和2.2B,分别适用于极端边缘计算、中等资源设备及高端边缘系统。研究探索了视觉与语言组件间的参数分配、高效视觉信息传递机制、视频编码策略等关键技术,并在多个基准测试中展现出卓越性能。SmolVLM不仅在计算效率和内存占用上具有显著优势,还在设备端部署中表现出高吞吐量和广泛适用性,适用于智能手机、笔记本电脑以及专业领域如文档理解与生物医学视觉问答等场景。论文由Ritvik Rastogi发布,详细探讨了模型设计与实验结果。
644 3
SmolVLM:资源受限环境下的高效多模态模型研究
|
11月前
|
人工智能 搜索推荐 程序员
程序员圈爆火,狂揽2.4K星!1秒内AI语音双向对话,支持个性化发音和多端适配,颠覆你的交互想象!
RealtimeVoiceChat是一款基于现代Web技术的开源实时语音对话工具,无需下载任何软件,打开浏览器即可与AI实时语音互动。其核心亮点包括零安装体验、超低延迟、高度可定制化以及跨平台兼容等特性。通过Web Speech API实现毫秒级语音合成,支持多参数精细控制(如音色、语速、音调等),并提供隐私安全保障。项目适用于无障碍辅助、语言学习、智能客服及内容创作等多个场景。开发者可快速集成GPT/Claude等大模型,扩展为企业级应用。此外,随着Web Speech API普及率提升,该项目有望推动语音交互在教育、智能家居等领域的发展
1335 4
|
传感器 人工智能 数据可视化
数智入海,GIS赋能智慧海洋
随着科技发展,各国积极推进海洋数字化建设,建立全球海洋观测网络,获取实时数据并挖掘价值。我国从“十四五”规划到二十大报告强调海洋强国战略,利用地理空间信息技术和物联网整合监测数据,提供智能管理与决策支持,实现海洋环境的可视化三维场景、实时监测、环境保护、灾害预警及专题图件服务,推动海洋经济高质量发展。
|
机器学习/深度学习 自然语言处理 自动驾驶
探索深度学习中的弱监督学习
弱监督学习(Weakly Supervised Learning)是一种介于监督学习和无监督学习之间的机器学习方法。它在有限、部分或不完全标注的数据上进行训练,旨在利用这些不完美的标签信息来学习有效的模型。弱监督学习在深度学习中具有重要的应用,因为获得大规模的完全标注数据往往非常困难和昂贵。以下是对深度学习中弱监督学习的详细介绍,包括其基本概念、主要类型、方法、应用场景、优势和挑战。
925 1
|
人工智能 机器人 API
用Python开发一个AI消息回复机器人
用Python开发一个AI消息回复机器人
654 0
|
调度 Python
python3 协程实战(python3经典编程案例)
该文章通过多个实战案例介绍了如何在Python3中使用协程来提高I/O密集型应用的性能,利用asyncio库以及async/await语法来编写高效的异步代码。
461 0
|
JavaScript 程序员
vue中使用three.js报错
在vue中使用threejs居然报错了,这是为什么?是vue的问题还是threejs的问题?锅居然甩到了es6的proxy上了,居然还和defineProperty脱不开关系,快来看看是怎么一回事吧!
577 0
vue中使用three.js报错

热门文章

最新文章

下一篇
开通oss服务