HX711称重模块的使用

HX711称重模块的使用

先贴一段文字(见多了可以跳过直接看下面):

满量程输出电压=激励电压*灵敏度1.0mv/v
例如:供电电压是5v 乘以灵敏度1.0mv/v=满量程5mv。
相当于有5Kg 重力产生时候产生5mV 的电压。
2.
概述: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 值反向转换为重力值。
假设重力为A Kg,(x<5Kg),测量出来的AD 值为y
传感器输出,发送给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
因此得出A = y / 429496.7296

分析:

这是买模块时都会送的一段教学文字,但是其中有很多问题,不只各位用模块的有没有想过24位带符号位的AD最高位是符号位,有效的只有23位,什么上面用2^24次方计算,居然算出来还是对的(为什么还能算对下面有讲),下图是从datasheet上截取的一段。
datasheet
还有给的样例代码最后一步Count=Count^0x800000更是让人捉摸不透
datasheet
人家datasheet上都写的是补码输出,最小800000对应-8388608,最大7FFFFF对应8388607,非得把符号位拿了剩下的打肿脸充胖子说是测量值。
我举一个小一点数的例子,我们讨论一个char型的数Count,如果读到的数是0x01,那很好原码反码补码都一样,那就是1,如果读到的数是0xff,注意读到的是补码,求反+1转化为源码是0x81,最高位是1表示是个负数,负几呢,后面不是1吗,他其实是-1。如果按照他给的例子Count=Count^0x80,注意Count是读到的补码是0xff,直接把符号位干掉=0x7f,你说-1等于127吗???

以我个人见解,我觉得应该这么算,如果这根梁的满量程是Akghx711模块用Bv的电压供电重物为Ckg,这个传感器的灵敏度是1mV/V(这个1mV/V怎么来的定义如下)。称重传感器的灵敏度S,计算方法:传感器在一定的供电条件下Uin(比如5VDC),载荷达到额定满量程(比如10kg)时的输出变化量Uout(比如10mV)与供电电压的比值:S=Uout/Uin=10mV/5V=2mV/V.如果传感器的灵敏度为1mV/V,那么在5VDC激励电源作用下,传感器在额定载荷时的输出信号应该为:Uout=S * Uin=1mV/V * 5V=5mV。

某宝传感器灵敏度——S=1mV/V
所以满量程输出电压为——BS=Bmv。
Ckg重物就能产生——BC/Amv的电压。

一般能测正负电压的ADC,单侧的测量电压只有参考电压的一半,虽然VAVDD = 4.3V,我们这里用2.15V进行计算,这里有除了2,我上面说的2^24应该去除符号位是23次方,这里也正好是两倍关系正好抵消了,所以某宝给的文档能算对。

Ckg的重物产生的电压经过D倍的增益经AD转换后的数值——y
(BCD/A)/y=(2.15 * 1000)/2^23————y=3901.678 * BCD/A

我们可以带入A=5kg,B=4.3v,D=128倍增益试一试,y=429496.7296C
和某宝文档一样。

至于符号位的问题千万不要按他的来,有时候校零的时候会出现0x00FFFFFF,其实是-1,如果直接砍掉符号位,这个零为校到死也校不出来了。可以这么写

	unsigned long Count;
	long AD_Value;
	
	if(Count&0x800000)
	{
		AD_Value=0-((~Count+1)&0x7fffff);
	}
	else
	{
		AD_Value=Count;
	}
### 回答1: HX711称重模块是一种高精度、高稳定性的AD转换器,主要用于测量物体的重量。在使用过程中,如果需要对称重模块进行调试打印,则需要采取如下步骤: 1. 确认硬件连接是否正确:首先需要将HX711称重模块与电路板连接好,并接上电源,确认模块正常工作; 2. 配置软件环境:在连接成功后,需要进行软件环境的配置。比如需要安装Arduino IDE编辑器,在Arduino IDE中安装HX711称重模块的相关库文件; 3. 编写代码:根据自己的需求编写对应的代码,实现称重模块读取数据并将其打印出来的功能。为了保证数据的准确性,需要对校准参数进行设置; 4. 运行代码:将编写好的代码上传到Arduino控制板中,进行运行。在运行过程中,需要注意模块的读数是否合理,如果出现读数异常,则需要检查连接和代码的正确性。 总体来说,HX711称重模块的调试打印较为简单,只需要注意硬件连接和软件环境的设置,以及代码的编写和运行即可。此外,在使用过程中需要注意保持环境的稳定性,避免外部因素对称重模块的测量产生干扰。 ### 回答2: HX711称重模块是一种高精度的ADC(模数转换器)芯片,它常用于测量和记录重量或其他力的大小。它的工作原理是将压力传感器的输出信号转换成数字信号,以便于扫描和处理,同时可以输出2个电平(高电平或低电平)信号来驱动外部装置。 首先,用户需要确保已经正确地连接了HX711称重模块和压力传感器,并按照正确的接线方式进行接口连接。接口连接后,可以通过Arduino或其他微控制器编写程序,将程序上传至板子中,并进行调试。调试包括断点调试和串口打印。 在断点调试中,用户可以设置断点,跟踪程序运行,查看代码运行到哪里会出现问题。这可以帮助用户轻松地定位代码错误并进行修复。 在串口打印中,用户可以通过设置串口波特率、串口发送和接收功能等参数来输出相关信息。这可以帮助用户更好地理解和处理设备的工作情况,更有效地进行数据分析和处理。 调试过程中,用户还可以通过实际测量物体的重量,并将其输出到串口监视器上来验证程序是否正确。如果程序正确,那么输出的重量应该与实际测量值基本相同。 总之,HX711称重模块的调试打印需要用户将程序上传到设备中,进行断点调试和串口打印,并进行实际测量来验证程序是否正确。通过这些步骤,用户可以快速调试和排除设备问题,从而有效地使用HX711称重模块。 ### 回答3: HX711称重模块是一种常用的传感器,可以广泛应用于称重、较高精度重量测量等领域。在使用过程中,常常需要对模块进行调试,以确保测量数据的准确性。调试打印是一种常用的调试方法,下面我们来介绍一下这种方法的具体实施过程。 首先需要准备好Arduino开发板、HX711称重模块和用于存储数据的计算机。然后将HX711模块与Arduino开发板相连,并将计算机与开发板通过USB线连接。接下来,在Arduino IDE中编写一个简单的程序,调用HX711的库函数,并将测量数据用串口输出到计算机上。具体代码如下: #include <HX711.h> HX711 scale; void setup() { Serial.begin(9600); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); } void loop() { float weight = scale.get_units(1); Serial.println(weight); delay(100); } 其中LOADCELL_DOUT_PIN和LOADCELL_SCK_PIN为HX711模块的数据和时钟引脚,根据实际连接情况进行修改。然后在串口监视器中打开打印窗口,即可实时看到模块测量到的数据。如果需要记录数据,可以将调用get_units()函数的次数增加或者添加数据存储功能,保存数据到计算机硬盘中。 当然,调试打印只是调试工具的一种,如果需要更加高效和准确地调试HX711模块,可以使用示波器、逻辑分析仪等专业的调试设备。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值