力传感器之电子枰的制作
人类认识和研究力的历史很长,但 对于力的正确认识和研究时间却并不 长,因为力这个物理量既无法直接观察, 也无法直接测量。从亚里士多德认为力 是维持物体运动的原因到伽利略认识到 力是改变物体运动的原因,中间经历了 两千多年。正因为力无法直接观察和测 量,必须借助力传感器将其转换为其它 物理量后进行测量。
力传感器
力传感器的种类繁多,如电阻应变 片压力传感器、半导体应变片压力传感 器、压阻式压力传感器、电感式压力传 感器、电容式压力传感器、谐振式压力 传感器及电容式加速度传感器等。但应 用最为广泛的是电阻应变片压力传感 器,它具有极低的价格和较高的精度以 及较好的线性特性,市场上大部分称重 量具比如电子枰都采用电阻应变式压力 传感器。咱们今天用电阻应变式称重传 感器开展两套信号调理电路,并针对其 特性进行物体重量的测量和显示,最后 完成实用电子秤的制作。
■电阻应变式称重传感器的特性
在进入电路分析前有必要先了解下 电阻应变式传感器的特性。电阻应变片 是一种将被测件上的应变量转换成一种 电信号的敏感器件。如图1所示为电 阻应变片的结构示意图,它由基体材料、 金属应变丝或应变箔片、绝缘保护片和 引出线等部分组成。
当基体受力发生形变时,电阻应变 片也一?产生形变,使应变片的阻值发 生改变,从而使加在电阻上的电压发生 变化。这种应变片在受力时产生的阻值 变化通常较小,一般这种应变片都组成 应变电桥,并通过后续的仪表放大器进行放大。为了提高测量精度,通常把四片应变片组合成全桥测量电路, 如下图2所示为电阻应变片全桥测量电路的电路模型。四个臂R1、 R2、R3、R4都用电阻应变片代替。
在实际的生产应用中通常将四片电阻应变片通过特殊的材料紧 密的粘合在能产生力学应变的基体上。图3所示为后续被使用到的 梁式电阻应变片称重传感器。类似于横梁,其中间通常留有一些孔 或槽,上下两面各贴有电阻应变片。整个传感器由全桥电阻应变片 和基体构成,当梁受力发生机械形变时电阻应变片也发生形变,直接导致了电阻值的变化。在整个传感器电路中会把 电阻值的变化直接转换成输出电压值的变化。
光有梁式称重传感器还不能制作成电子枰,还 需要为梁式称重传感器打造一套可以称重的拖盘结 构,如图4所示,是电子秤的本 体机械图,包含称重托盘、传感 器-桥臂和底座。
■分立件信号调理电路
桥臂式传感器的信号调理电 路,采用仪表放大器进行放大。 仪表放大器是一种高增益、直流 耦合放大器,它具有差分输入、 单端输出、高输入阻抗和高共模 抑制比等特点。电路特点决定了 适应桥臂式传感器的信号调理放 大,而运算放大器只有工作在双 电源情况下才能对称的进行零点 调节。因此不得不为电路设计双 路输出电源,如图5所示。传感 器工作电压由HT7550-S.0V的 LDO芯片供电,其中W2用于 电路零点调节,W1是放大倍数 调节,也就是常说的量程。
每一款传感器的出厂性能都 不一致,因此欲想得到准备的质 量与输出电压值,必须对电路加 以调试,首先是电路输出调零。 所谓调零,就是电子枰接入传感 器信号电路后,电子秤空载的输出电压必须为0V。如果是简易的调节W2电位器能就校准 输出电压,那么你的想法就错了。真正能有效的校准这个信 号调理电路输出为0V的方法如下。
这里使用了称重传感器标称值为5Kg ,若称重物体为 100g ,输出电压为0.1V ;若称重物体为1kg ,输出电压为 IV。由此可以理论得到一个交好的线性关系:y = k x + b ,其中y表示电压,x表示质量。因此对电 路校准输出0V必须在电子秤空载的情况下先 将W2进行调整,用万用表测量U6第6脚输 出电压为0V时完成第一步;然后将_个lKg 的物体置于电子枰上,测量输出电压值可能会 偏离IV ,此时调整W1进行量程核准,使输 出电压为IV ;最后将lKg物体移走,再用万 用表测量输出电压值,若不为0V ,重新微调 W2。以上步骤可以多重复几次,或更换不同 重量的物体测量,使电路保证输出准确的0V。 测试连接如图6所示,其中电源部分使用万能 板焊接的,由双路输出变压器供电,控制器使 用 C51/AVR/Arduino 主板的 Arduino 部分。
校准结束后,可以取两种不同重量的物体, 进行人工测量。求出线性关系中的斜率和截距, 方便后面的开发使用。笔者测量725g和100g 两个物体,实际测量输出电压值分别为714mv 和107mv ,两点坐标值可以求出斜率k值为 0.9712 ,通过公式代入_个坐标值即可得出截 距b值为1.04552。有了这个线性关系,可以 利用线性函数关系式实时测量传感器的输出电 压进而计算出测试的称重物体的质量。
接下来就可以测量下实际物体重量,开始 进入电子枰制作工作中。使用Arduino芯片处 理,可以加速整个调试开发过程。Arduino内 置了 10位精度的ADC $专换功能,其简易的电 子枰实现流程如图7所示。
使用Arduino的A0接口采集输出电压值, 用Arduino调试窗口直接观察称重物体的质 量。图8所示为测量725g物体的显示的质量, 从显示数据上看,其测量的输出电压值有漂移 浮动,使得计算出来的质量随之跳动。
Arduino演示代码如下:程序中使用了人 工标定后计算出的线性函数关系因子数和多次 采样取平均值的滤波方法。 void setupQ9600 bits per second:
Serial.begin(9600);
}
//_平均滤波法 #define FILTER_N 10 float Filter()
{
int i;
float filter_sum = 0; for(i = 0; i < FILTER_N; i++)
{
int sensorValue = analogRead(AO);
// read the input on analog pin 0 // Convert the analog reading (which goes from 0 -1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0); filter_sum += voltage;
II read the input on analog pin 0: delay(l);
}
return (float)(filter_sum / FILTER_N);
}
// the loop routine runs over and over again for-ever:
void loop()
{
float k = 0.9712; II人工标定计算出的斜率float b = 1.04552; //人工标定计算出的截距 II获得滤波器输出值
float Wei = ((Filter()*1000) - b) / k; // 线性函数 Serial.print(Wei,3); // print out the value you
read:
Serial.print( 'g');
Serial.print(" ");
Serial.print(Wei/1000,3); // print out the value you read:
Serial.println( "Kg"); delay(500);
}
-集成化数字电踣模块
故名思义,接下将要介绍的是用数字电路模块用来采集 称重传感器的输出动态电压。此款模块为电子秤专用模拟I 数字转换器芯片,HX711。其内部具有24位A/D高精度 转换器,可输入两通道差分信号,其中通道A的増益可编 程128和64倍。工作电压范围在2.6V至5.5V ,图9为官 方提供的参考电路。
由于将信号调理电路已集成为芯片,所以就没有了外围 调节校准等工作,也不存在标定和计算线性关系因子。接下 来将使用STC89C52RC单片机对模块进行通信,并将使用 4X4矩阵键盘对称重物体进行计价操作,LCD1602显示模 块显示质量、单价和支付金额,同时在程序设计中増加负压 和过压检测报警动作。
图10是对lg的跳线进行称重示意,其结果很稳定, 默认显示的单位的Kg ;图11是对称重物体进行单价99
元输入后的计算应付金额为3.5 元。因为称重传感器会有受到托 盘的重力,存在一定的毛重,所以电子称在进入初始化工作时必须对电子称进行一次毛重计算, 直接正常工作后,当前称重的数 据需要减去毛重,这样称出来的 重量值才是实物的重量。此款电 子秤的实现流程基本和Ard u i - no版一样,只是大部工作均由 HX711芯片辅助处理了,C51 只需要连续发送脉冲给HX711 后直接读取出HX711已经转换图9 HX711模块参考应用C51电子称参考代码如下所示:程序中Weight_Mao- pi变量就是电子称上电后的对托盘称重的毛重。其中转换 后的数据除以100是用来缩小数据,将后续计算出的单位 化为g ,即4位有效值。而计算实物重量时除以4.22 ,这 个数值因不同的称重传感器特性曲线不一样,每一个传感器 都会有一个矫正值,这里取值为4.22。当发现测试出来的 重量偏大时,可加大这个数值,反之减小,该数值一般在4.0 到5.0之间,计算式最后补加0.05是保证测量结果以四舍 五入百分位计算。完整驱动程序读者们从《电子制作》杂志 社网站下载。
void Get一Weight()
{
HX711_Buffer = HX711 Read();
HX711_Buffer = HX711 Buffer /100;
Weight_Shiwu = HX711_
Buffer;
Weight_Shiwu = Weight_
Shiwu - Weight_Maopi; //获 取实物的AD采样数值。
Buzzer = 0; //负重量报警 }
else if(Weight_Shiwu > 5000) II压力传感器上总质量 大于5Kg的最大量程,报警 {
Buzzer = 0;
}
else if(Weight_Shiwu > -200) //正常测量
Buzzer = 1; //关闭警报Weight_Shiwu (unsigned int)((float)Weight_
Shiwu / 4.22 + 0.05); //计 算实物的实际重量
if(Weight_Shiwu < -300)
//称重小于毛皮值说明负重 300克的漂移值
总结
通过两种称重传感器信号处理电路的分析和实测,可总 结出。分立件仪表放大器电路结构复杂,电源供电复杂、调 试步骤繁多,虽然线性度还是比较好,但会存在若电源不稳 定、温度上升、工作时间过长会影响输出电压发生漂移,在 运算上增加了复杂的计算难度。而电子秤专用集成化芯片, 供电简单、功耗低、线路精简、转换精度高、无调试步骤、 无温漂等影响。