从电子秤到工业称重器,传感器和电子设备都需要在许多领域测量物体的重量。
当我们谈论测量物体的重量时,是指由于地球重力(重力)的作用而对物体施加在检测系统上的力的检测。这就是为什么在物理学中区分重量和质量的原因,因为后者是身体的一致性,而重量是对质量以重力加速度施加的力的形式传递的感知。质量和重量与重力加速度有关,这并非巧合,重力加速度平均为9.81 m /s²。从这个论述中可以得出结论,测量体重意味着检测到一种力量,这并非偶然,我们称其为力量重量。由于我们是电子设备,因此我们主要对电子称重设备感兴趣,其中有压力传感器。
称重传感器是一种用于测量重量并因此测量压缩和牵引力的设备。
称重传感器如何工作
当以特定方式对其施加力时,称重传感器会产生与该力本身成比例的输出信号。但是它如何产生这个信号呢?好吧,该设备基于称为应变仪的组件,该组件通过利用压阻效应来工作,即某些导电材料在沿某些方向压缩或扩展时必须改变其电阻率的趋势。这种现象类似于在石英和某些合成陶瓷材料中发生的压电效应,在压电材料中,牵引力或压缩力会在两个相对的面之间产生电势差。
应变计(应变计)称重传感器由一个弹性元件组成,该弹性元件被选择性地削弱以产生相对较高的电压区域。应变仪被应用在这些区域。它们以各种配置连接,尽管最受赞赏的是惠斯通电桥,由四个如图1所示布置的应变仪形成。在某些情况下,应变仪是两个,其他两个元件是公共电阻。应变仪也可以布置成半桥,在这种情况下,我们说的是半电池。
惠斯通电桥通过连续且稳定的激励电压在上,下节点(+/-激励点)之间供电,而输出信号则在电桥的水平节点之间汲取。由于惠斯通电桥基本上是一个双电阻分压器,可从中获取接地引起的输出电势,因此产生的电压就是它们之间的差。在图1的图中,输出位于A和B之间。
在没有施加到单元的任何负载的情况下,所有应变仪都具有相同的电阻,因此点A和点B之间的电势没有差异。
当将负载施加到电池时,电压指示器的电阻增加,而压缩指示器的电阻减小,因此电桥变得不平衡,并且存在与施加的载荷成比例的电势差,可以通过点A进行测量和B。
一些称重传感器和指示器具有检测电缆,在前面的图1中将其称为+和– SENSE,它们使指示器能够测量和调整施加到传感器上的激励电压。当放置电池时必须用长电缆连接时,这一点尤为重要。
称重传感器可以单独使用,也可以组合使用,具体取决于要称量的物体的几何形状。
图2示出了典型的金属应变仪,其由刻在平行网格线上的金属箔组成,该金属箔形成由出口焊盘界定的电路。箔片被接合到,这反过来,被约束到所述负载单元的表面的绝缘载体材料,因为它出现在图2中。
图2
在应变式称重传感器中,通常将称重传感器的一端连接到刚性结构上,而另一端则施加到负载接收设备上,通过该负载接收设备施加要测量的负载或力。在这种情况下,它是一个双点像元,我们可以将其同化为悬臂梁,一端卡住,另一端受力。这种称重传感器以其简单性和低成本而最为普遍。该结构通常是双目的,即具有两个孔的光束。应变仪安装在顶部和底部,以测量拉伸力和压缩力。由于应变仪可能会损坏,因此通常会用橡胶波纹管将其覆盖并进行维修。横梁本身通常由镀镍钢合金制成。对于轻载(最大230克),该射束采用铜铍合金制成,而对于较高载荷,则采用不锈钢制成。
在图3中,我们看到了一个梁式称重传感器,其中显示了四个可用的应变仪,标记为T和C,并交叉布置在弱化的金属结构的两个表面上,以利于变形。使用所示的布置,两个应变仪测量拉应力,两个应变仪检测压应力,这与将载荷(重量)施加到称重传感器上时的情况完全相同。应变计为四个,连接在一起形成惠斯通电桥,如图1所示。,但是在这种情况下,他们的安排是为了使他们相互协作,否则,一个方面的阻力变化会与另一个方面形成对比。协作意味着两个T在桥中彼此相对,从而在施加力时获得不平衡。
在惠斯通电桥的相对角上施加稳定的激励电压,并在其他点A和B上测量信号。
除了图3中提出的用于剪切的类型之外,还有图4中所示的用于牵引(张力传感器)的类型,例如用于称重容器和料斗的地方单元悬挂在空中结构上,待称重的物体从下侧悬挂。该结构实际上是S形,广泛用于机械标尺到机电标尺的转换。在这种情况下,电池用于检测将杠杆系统连接到辐条的杆的电压。
图3
图4
这类电池的典型容量范围为45公斤至22吨,而横梁的容量约为500克至数十公斤
然后是单点称重传感器(图5),它们被广泛用于平台秤。无论负载在何处施加在上部平台上,它们都会检测重量。容量通常在1千克到2吨之间,可以容纳表面积为几百cm 2的平台。
图5
称重传感器的类型
可以根据力的施加方向对测力传感器进行分类,因此我们可以选择拉伸,压缩,交替和弯曲的类型(图6):第一种通常为S形,第二种通常为S形。纽扣或发条盒;第三个是在牵引力和压缩力上都起作用,第四个是梁。
图6
还有测量精度的分类:超精确,精确,标准。
弹簧材料的形状取决于测力传感器的特性。
可以对气密性进行另一种分类,如下所示。
•密封的:此类型将应变计的区域封闭在壳体内部,并保护其免受环境影响。通常,壳体的内部充满惰性气体,这使得这些设备适合在不利的环境条件下使用,例如在有灰尘或高湿度的情况下在室外使用。使用膜片或波纹管,以免影响弹簧材料的弯曲。
•敞开式:应变计没有受到保护,或者最多只能用软树脂或橡胶修理,以免受到环境因素的伤害。它适用于温度不太高,湿度或灰尘不多的环境中。
•防爆:由于其结构,这种类型的电池是防火的
除了其组成,应力和密封之外,还可根据其形状对称重传感器进行分类(图7)。因此,我们有光束类型(光束),罐头类型(桶),S类型(S)和垫圈类型(垫圈或按钮)。
单点和多点
称重传感器也可以区分为单点和多点:当需要使用单个称重传感器进行测量时,可以使用单点或单点类型,而多点假定使用了多个载荷。对于单点传感器,由于已经校正了转角误差,因此将权重应用于了称重传感器。
对于多点,通常将三个或四个称重传感器放置在结构的各个点中,并适当添加它们的信号以校正施加力的任何角度误差。
图7
称重传感器的使用
要读取通过称重传感器的力或重量,首先必须评估最合适的配置,然后是牵引力传感器以检测悬挂的重量或压缩以称重系统上的物体;此外,有必要查看需要什么样的精度以及力来自哪个方向。
仅具有两个应变仪的单元就可以检测某种类型的力,并且需要通过两个固定电阻器进行电桥连接,而具有四个应变仪的单元则以交叉方式排列,从而形成一个完整的惠斯通电桥。
在两种情况下,电桥提供的信号都非常小。尤其是仅具有两个应变仪的单元的电池,因为具有四个应变仪的单元的电池通过以适当的方式连接元件来提供差分信号,因此具有更大的幅度。
在任何情况下,都无法直接通过微控制器的ADC或Arduino读取信号,但应进行调节。这个术语意味着放大刚好足以将电平提高到可以承受可能进入连接的干扰的值,并减少任何无线电干扰。
有特定的集成电路,或者在任何情况下都适用于应变式称重传感器的信号调节:例如INA125或HX711;这些页面的专用框中均显示了两者的特征。
称重传感器和Arduino
当然,Arduino公众发现称重传感器很有趣,这就是为什么我们考虑创建一些简单的应用程序来提出建议。应该立即指定,要用Arduino读取称重传感器提供的信号,必须插入一个调节电路,为此目的,上述两个集成电路是合适的。在描述的应用程序中,我们将使用一个安装了HX711(代码HX711BOARD)和500g称重传感器代码LOADCELL500的分组接口,它们将连接到Arduino,如图11所示。
图11
如您所见,该单元具有四根导线,如图所示进行连接。从接线板的输出中,该接线板从Arduino 5V汲取功率(并依次向称重传感器供电),获取包含有关重力信息的数字信号。更确切地讲,分线板通过DT(数据)线在两线I²C型总线上提供数据字符串,该数据线与Arduino在SCK线上生成的时钟同步。清单1提供了获取通过称重传感器和HX711读取的读数所必需的代码。
清单1
#include“ HX711.h”
#define Calibration_factor -9580.00 //此值是使用
// SparkFun_HX711_Calibration草图
#定义DOUT 4
#定义CLK 5
HX711标度(DOUT,CLK);
void setup(){
Serial.begin(9600);
Serial.println(“ HX711 scale demo”);
scale.set_scale(calibration_factor);
scale.tare(); //假设秤上没有重量
//在启动时,将比例重置为0
Serial.println(“ Readings:”);
}
无效循环(){
Serial.print(“ Reading:”);
float libbre = scale.get_units();
浮动公斤=(libbre / 2.2046);
Serial.print(kg,1); //scale.get_units()返回一个浮点数
Serial.print(“ kg”); //您可以将其更改为kg,但是您需要
//重构Calibration_factor
Serial.println();
}
现在,让我们转到基于不同配置的第二个应用示例,即2个半电池,每个电池的容量为50kg(代码LC50KG),总容量等于100kg。在电气上,这些半单元构成惠斯通电桥的每一半,并通过基于HX711的常规分线板进行连接,如图12所示。
图12
这些称重传感器具有以下特征:
输出信号= 1 mV(±0.1);
非线性= 0.05(满量程的百分比);
磁滞= 0.05(满量程的%);
重复性= 0.05(满量程的百分比);
1分钟后蠕变= 0.1(满量程的%);
温度对出口的影响= 10°C(满量程的0.1%);
温度对零的影响= 10°C(满量程的0.3%);
输入电阻= 1 kohm(±10);
输出电阻= 1 kohm(±10);
绝缘电阻》 2,000 Mohm
工作温度= -10°C至+ 40°C;
电桥激励电压= 10 V;
尺寸(毫米):34x34x8。
对于Arduino连接,请记住,红色线是正极(VCC),黑色是负极(GND),白色是要连接的输出(OUT),如图所示。
清单2中提供了用于通过初始皮重确定来执行重量测量的Arduino代码,其中包括HX711库。
清单2
#include“ HX711.h”
#define Calibration_factor -9580.00 //获得的校准系数
//使用草图SparkFun_HX711_Calibration
#define DOUT 4 //数字引脚DT
#定义CLK 5 //数字引脚SCK
HX711标度(DOUT,CLK);
void setup(){
Serial.begin(9600);
Serial.println(“ Rilevazione Peso con Tara iniziale”);
scale.set_scale(calibration_factor);
scale.tare(); //确保开始时没有重量。
延迟(500);
Serial.println(“ Tara in corso 。.. non mettere nessun peso!”);
延迟(1000);
Serial.println(“ Sistema pronto。”);
延迟(300);
}
无效循环(){
Serial.print(“ Peso:”);
浮动磅= scale.get_units();
浮动公斤=(libbre / 2.2046); //转换重量磅(千克)
Serial.print(kg,1);
Serial.print(“ kg”);
Serial.println();
延迟(500); //延迟的体重读数。减少阅读次数!
}
具有四个半电池的电路
图13
从先前的配置中,我们获得了另一个系统,该系统由4个相同类型的半测力传感器组成,可用于检测放置在半测力传感器上的板条箱的重量,每个板条测力传感器都布置在墙的一个角上。例如图13中提出的结构。由于每个称重传感器(半个称重传感器)的重量均为50千克,因此我们可以通过完美平衡的方式达到最大200千克的重量,因为我们的元件位于四个角上。图14提出的接线图描述了用Arduino创建的电路; 红色电缆从每个单元中“拾取”并连接到HX711板的引脚。这种惠斯通电桥构造允许具有平衡的系统,其中以平衡的方式测量重量。清单3中提出了与后一个应用程序示例相关的Arduino代码。
图14
清单3
#include“ HX711.h”
#定义DOUT 4
#定义CLK 5
const int buttonPin = 2;
int buttonState = 0;
HX711标度(DOUT,CLK);
浮动校正系数= -9640.00; //-7050适用于我的440lb最大比例设置
void setup(){
Serial.begin(9600);
Serial.println(“ HX711校准草图”);
Serial.println(“读数开始后,将已知重量放到秤上”);
Serial.println(“按+或a增加校准系数”);
Serial.println(“按-或z减小校准系数”);
scale.set_scale();
scale.tare(); //将比例尺重置为0
long zero_factor = scale.read_average(); //获取基线读数
Serial.print(“零系数:”); //这可用于消除去皮磅的需要。在永久规模的项目中很有用。
Serial.println(zero_factor);
pinMode(buttonPin,INPUT);
}
无效循环(){
buttonState = digitalRead(buttonPin);
如果(buttonState == HIGH){
scale.set_scale();
scale.tare(); //将比例尺重置为0
long zero_factor = scale.read_average(); //获取基线读数
Serial.print(“零系数:”); //这可用于消除去皮磅的需要。
Serial.println(zero_factor);
pinMode(buttonPin,INPUT);
}
scale.set_scale(calibration_factor); //调整到这个校准系数
Serial.print(“ Reading:”);
float libbre = scale.get_units();
浮动公斤=(libbre / 2.2046);
Serial.print(kg,1); //scale.get_units()返回一个浮点数
Serial.print(“ kg”);
Serial.print(“ Calibration_factor:”);
Serial.print(calibration_factor);
Serial.println();
if(Serial.available())
{
char temp = Serial.read();
if(temp ==‘+’|| temp ==‘a’)
标定系数+ = 10;
否则if(temp ==‘-’|| temp ==‘z’)
标定系数-= 10;
}
}
全部0条评论
快来发表一下你的评论吧 !