基本原理讲解
1. 5kg
传感器
满量程输出电压
=
激励电压
*
灵敏度
1.0mv/v
例如:供电电压是
5v
乘以灵敏度
1.0mv/v=
满量程
5mv
。
相当于有
5Kg
重力产生时候产生
5mV
的电压。
2. 711
模块对产生的
5mV
电压进行采样。
概述:
711
模块
A
通道带有
128
倍信号增益,可以将
5mV
的电压放大
128
倍,然
后采样输出
24bit AD
转换的值,单片机通过指定时序将
24bit
数据读出。
详细讲解程序计算原理:
小强电子设计
步骤
1
:如何计算传感器供电电压
HX711
可以在产生
VAVDD
和
AGND
电压,即
711
模块上的
E+
和
E-
电压。
该电压通过
VAVDD=VBG(R1 +R2 )/R2
计算。
VBG
为模块儿基准电压
1.25v
R1 = 20K,R2 = 8.2K
因此得出
VAVDD = 4.3V
(为了降低功耗,该电压只在采样时刻才有输出,
因此用万用表读取的值可能低
于
4.3v
,因为万用表测量的是有效值。
)
步骤
2
:如何计算
AD
输出最大值
在
4.3V
的供电电压下
5Kg
的传感器最大输出电压是
4.3v*1mv/V = 4.3mV
经过
128
倍放大后,最大电压为
4.3mV*128 = 550.4mV
经过
AD
转换后输出的
24bit
数字值最大为:
550.4mV*2 24 /4.3V ≈ 2147483
步骤
3
:程序中数据如何转换
小强电子设计
程序中通过
HX711_Buffer = HX711_Read();
获取当前采样的
AD
值,最大
2147483
,存放在
long
型变量
HX711_Buffer
中,
因
long
型变量计算速率和存放空间占用资源太多,固除以
100
,缩放为
int
型,
便于后续计算。
Weight_Shiwu = HX711_Buffer/100;
Weight_Shiwu
最大为
21474
。
步骤
4
:如何将
AD
值反向转换为重力值
。
假设重力为
A Kg
,
(
x<5Kg
)
,
测量出来的
AD
值为
y
5Kg
传感器输出,发送给
AD
模块儿的电压为
A Kg * 4.3mV / 5Kg = 0.86A mV
经过
128
倍增益后为
128 * 0.86A = 110.08AmV
转换为
24bit
数字信号为
110.08A mV * 2 24 / 4.3V = 429496.7296A
所以
y = 429496.7296A /100 = 4294.967296 A
因此得出
A = y / 4294.967296 Kg ≈ y / 4.30 g
所以得出程序中计算公式
Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/4.30+0.05);
//+0.05
是为了四舍五入百分位
特别注意:
因为不同的传感器斜率特性曲线不一样,因此,每一个传感器需要矫正这里的
4.30
这个除数。当发现测出