HX711称重模块的使用

2023-11-12

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;
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HX711称重模块的使用 的相关文章

  • 你好请问,postman不登录联网怎么使用mock Server

    你好 Postman 具有内置的 mock server 功能 因此无需联网即可使用 要使用 mock server 请执行以下步骤 打开 Postman 应用程序 创建一个新的请求 或打开一个现有的请求 在请求的右上角 单击 更多 按钮
  • pyqt窗口控件跟随窗口大小变化而变化的方法

    要做的很简单 使用qtdesigner对设计的界面配置一下layout 页面布局 即可实现拖拽时界面中控件的放大缩小 这是布局时的几种方式 重点 用designer时要注意 不要选中多个控件然后右键选择layout 要直接在mainwind

随机推荐

  • 恶意代码分析实战07-02

    先peview看看exe程序 注意到这里有两个kernel32 dll 不过仔细看的话 发现其中有一个是假的 名字为kerne132 dll kernel的l被换成了1 而且出现了lab07 03 dll 看来运行这个exe的时候会加载这个
  • 常见JMeter面试题

    1 什么是JMeter JMeter是一种开源的性能测试工具 可以用于测试静态和动态资源 如Web应用程序 数据库 FTP服务器等 2 JMeter可以测试哪些类型的应用 JMeter可以测试各种类型的应用程序 包括Web应用程序 数据库服
  • Python中[:2]、[:,-1]、[-1]、[:-1]、[::-1]、[2::-1]如何使用

    数据准备 import numpy as np X np array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 print X 形成矩阵 1 print X 1 取最后一个元素 2
  • C++检测异常assert()函数

    1 assert 函数使用 assert 一般用于debug下异常检测的功能函数 例如文件打开是否成功 函数形参传入是否理想 变量定义是否正确等 总的来说其作用是如果它的条件返回错误 则终止程序执行 原型定义 include
  • 如何用PHP写一个excel文件并导出

    其实用PHP写一个excel文件并下载下来很容易 这里我们使用了PHPExcel库去实现一个例子
  • Java基础篇--工具类操作之敏感词过滤

    编写敏感词过滤程序 说明 在网络程序中 如聊天室 聊天软件等 经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤 如 性 色情 爆炸 恐怖 枪 军火 等 这些都不可以在网上进行传播 需要过滤掉或者用其他词语替换掉 提示 将用户的聊天内
  • Python3,如何实现CPU的并行计算,那还不简单,5种方式,这篇就搞定。

    多进程实现CPU并行计算 1 引言 2 实战 2 1 多进程模式 2 1 1 定义 2 1 2 multiprocessing 2 1 3 模式 2 1 4 适用场景 2 1 4 代码示例 2 2 执行方法 2 2 1 多线程并发执行 2
  • 高德导航红绿灯为啥能读秒?

    来源 JavaEdge 1 内部员工吐露 2 真正的内幕 免责声明 任何文章不要过度深思 万事万物都经不起审视 因为世上没有同样的成长环境 也没有同样的认知水平 更 没有适用于所有人的解决方案 不要急着评判文章列出的观点 只需代入其中 适度
  • 外汇高概率一分钟交易系统

    交易系统前置 建议资金 10000美金 交易品种 黄金 交易周期 1分钟 使用指标 Ichimoku Kinko Hyo 注 只留上下Kumo 其他线隐藏 MACD MA15 MA55 交易仓位 建议每次交易 0 05手 交易入场条件 MA
  • MATLAB深度学习LSTM 标签分类classificationLayer层,YTrain的设置出错

    问题 使用matlab深度学习工具箱进行标签分类 设置XTrain为输入是n 1的元胞数组 每个元胞数据有6个特征值 YTrain输出是n 1的元胞数组 内容为标签 0 或 1 LSTM层和options设置如下 layers sequen
  • Java-进制转换

    常用的进制转换 十进制转二进制 二进制转十进制 十进制转八进制 八进制转十进制 十进制转十六进制 十六进制转十进制 如果二 八 十六之间想转换可以通过十进制做中间者 import java util Scanner import java
  • 10本编程书籍推荐!带你从入门到精通

    在看书 阅读前 一定先选择一门适合自己的编程语言 对0基础的同学 选择程序设计语言时先了解自己的学习能力 太难的语言 没有一定的基础 以及没有老师讲解 指引 太容易产生挫败感从而放弃 其次 如果自己有一点点明确的目的或需求 那么选一门对自己
  • C++ Windows上键盘拦截

    键盘捕获代码 include
  • Java8 之Optional 的使用

    作为java8的新特性之一 可选在没有接触之前没有感受到过他的魅力 当真正的去用它才感觉到魅力之所在 可选 JAVA新增的工具类 主要是用来解决我们之前 NullPointException的问题 我先贴一段之前的代码 部分截取 真实业务场
  • 利用python开启简单http服务用户文件下载

    当文件传输没有工具时 利用python可以开启http服务 方便文件传输下载 python2 python m SimpleHTTPServer 2222 Serving HTTP on 0 0 0 0 port 2222 已经启动了端口为
  • ChatGPT专业应用:修改SQL为MySQL

    正文共 875 字 阅读大约需要 4 分钟 程序员等必备技巧 您将在4分钟后获得以下超能力 修改SQL为MySQL Beezy评级 A级 经过寻找和一段时间的学习 一部分人能掌握 主要提升效率并增强自身技能 推荐人 Kim 编辑者 Yola
  • STM32-按键输入

    1 硬件连接 1 1 mini 1 2 战舰 1 3 探索者 KEY0 gt PE4 上拉输入 KEY1 gt PE3 上拉输入 KEY2 gt PE2 上拉输入 WK UP gt PA0 下拉输入 按键输入最关键的是对按键的初始化和输入判
  • 数据结构小白之浅析二叉排序树(bst)

    1 什么是二叉排序树 二叉排序树 binary sort tree 简称为bst 是一种无论是查询还是添加都相对较快速的数据结构 相比于数组而言 未排序的数组 可以直接在数组的尾部进行添加数据 但是查找的速度慢 排序的数组 可以使用二分查找
  • Unity常见问题合集

    目录 前言 1 StopCoroutine并不能停止协程 2 GetComponentsInChildren如何获取隐藏物体 3 导入的模型无法编辑材质球属性 4 MeshRender更换材质球方法 5 两个模型动画不同步 播完后有延迟 前
  • HX711称重模块的使用

    HX711称重模块的使用 先贴一段文字 见多了可以跳过直接看下面 满量程输出电压 激励电压 灵敏度1 0mv v 例如 供电电压是5v 乘以灵敏度1 0mv v 满量程5mv 相当于有5Kg 重力产生时候产生5mV 的电压 2 概述 711