HX711 24位A/D模块计算公式

2023-05-16

基本原理讲解

  1. 100kg 传感器
    满量程输出电压=激励电压*灵敏度2.0mv/v
    例如:供电电压是5v 乘以灵敏度2.0mv/v=满量程10mv。
    相当于有100Kg 重力产生时候产生10mV 的电压。
  2. 711模块对产生的10mV 电压进行采样。
    概述:711模块 A 通道带有128倍信号增益,可以将10mV 的电压放大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 的供电电压下100Kg 的传感器最大输出电压是4.3v2mv/V = 8.6mV
    经过128倍放大后,最大电压为8.6mV
    128 = 1100.8mV
    经过 AD 转换后输出的24bit 数字值最大为:
    1100.8mV*(2^24) /4.3V ≈ 4294967
    步骤3 :程序中数据如何转换
    小强电子设计
    程序中通过
    HX711_Buffer = HX711_Read();
    获取当前采样的 AD 值,最大4294967,存放在 long 型变量 HX711_Buffer 中,
    因 long 型变量计算速率和存放空间占用资源太多,固除以100,缩放为 int 型,
    便于后续计算。
    Weight_Shiwu = HX711_Buffer/100;
    Weight_Shiwu 最大为42949。
    步骤4 :如何将 AD 值反向转换为重力值 。
    假设重力为 A Kg, (x<100Kg),测量出来的 AD 值为 y
    100Kg 传感器输出,发送给 AD 模块儿的电压为 A Kg * 8.6mV / 100Kg = 0.086A mV
    经过128倍增益后为 128 * 0.086A = 11.008AmV
    转换为24bit 数字信号为 11.008A mV * 2^24 /4.3V = 42949.67296A
    所以 y = 429496.7296A /100 = 429.4967296 A
    因此得出 A = y / 429.4967296 Kg
    特别注意:
    因为不同的传感器斜率特性曲线不一样,因此,每一个传感器需要软件校正调零。
    每个传感器都要校准。
参考驱动程序(汇编)
/*-------------------------------------------------------------------
在ASM中调用: LCALL ReadAD
可以在C中调用: extern unsigned long ReadAD(void);
.
.
unsigned long data;
data=ReadAD();
.
.
----------------------------------------------------------------------*/
PUBLIC ReadAD
HX711ROM segment code
rseg HX711ROM
sbit ADDO = P1.5;
sbit ADSK = P0.0;
/*--------------------------------------------------
OUT: R4, R5, R6, R7 R7=>LSB
如果在C中调用,不能修改R4,R5,R6,R7。
---------------------------------------------------*/
ReadAD:
CLR ADSK //使能AD(PD_SCK置低)
JB ADDO,$ //判断AD转换是否结束,若未结束则等待否则开始读取
MOV R4,#24
ShiftOut:
SETB ADSK //PD_SCK置高(发送脉冲)
NOP
CLR ADSK //PD_SCK置低
MOV C,ADDO //读取数据(每次一位)
XCH A,R7 //移入数据
RLC A
XCH A,R7
XCH A,R6
RLC A
XCH A,R6
XCH A,R5
RLC A
XCH A,R5
DJNZ R4,ShiftOut //判断是否移入24BIT
SETB ADSK
NOP
CLR ADSK
RET
ENDHX711
AVIA SEMICONDUCTOR 9
参考驱动程序( C)
sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void){
unsigned long Count;
unsigned char i;
ADSK=0;
Count=0;
while(ADDO);
for (i=0;i<24;i++){
ADSK=1;
Count=Count<<1;
ADSK=0;
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;//此处进行的异或运算,是因为Count最高位是符号位,符号位为1表示是负数,为了让数值能够呈现递增显示,即压力越大值越大,所以在这里需要进行异或处理,使得符号位始终为0,即始终是非负数。
ADSK=0;
return(Count);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HX711 24位A/D模块计算公式 的相关文章

  • MouseWithoutBorders无界鼠标安装配置教程

    第一步 xff1a 怎样修改系统计算机全名 xff08 链接教程 xff09 win7如何修改计算机的名字 百度经验 所有虚拟机必须改成不一样的名字 xff08 至关重要 xff09 第二步 xff1a 必须防火墙为开启的状态 xff08
  • 更换 PVE7 软件仓库源和 CT模板(LXC)源为国内源

    PVE7 安装后默认配置的 apt 软件源和 CT LXC 容器模板源均是官方默认的 xff0c 国内使用性能不佳 xff0c 建议替换为 清华 Tuna 提供的国内镜像源 xff0c 速度将有一个较大的提升 如果 pve 官网 iso 镜
  • Proxmox 7.3 换国内源安装

    Proxmox 7 2 默认来自官方的源 xff0c 国内慢的一逼高峰期只有个几KB的速度 xff0c 所以换源 Debian系统源 阿里云源 和中科大proxmox源 一 更换阿里云的源 vi etc apt sources list 替
  • 在x86平台制作龙芯版debian 10系统(mips64el)

    OS ubuntu 18 04 使用debootstrap制作根文件系统会分成两个阶段 第一阶段是 xff0c 使用debootstrap命令来下载软件包 第二阶段是安装软件包 安装debootstap 等相关工具 sudo apt ins
  • Mac安装homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation的解决办法

    在mac上安装homebrew的时候一般都是在终端输入以下的命令安装的 xff1a bin bash c 34 curl fsSL https raw githubusercontent com Homebrew install maste
  • 深度强化学习-DQN算法

    论文地址 xff1a https arxiv org abs 1312 5602 先讲下在线 xff0c 离线 xff0c 同策略和异策略 同策略 xff08 on policy xff09 和异策略 xff08 off policy xf
  • 再忙也要及时输出

    最近项目比较忙 xff0c 加班到很晚 xff0c 所以没有太多时间来更新博客 在做事情的过程中有过许多想法因为没有及时记录下来 xff0c 已经回想不起来了 xff0c 这是一种损失 不论再忙碌 xff0c 也要去反思和输出自己思考的东西
  • 通过Navicat 连接的数据库 查看数据库密码

    有时候数据库密码弄丢了 但是navicat能正常连接 想着到navicat连接处 复制一个 发现复制不了 可以用下面的方法查看 一 xff1a 导出连接 选择要导出数据库 勾选导出密码 导出的结果 里面打开就有加密后的密码 二 xff1a
  • 波长与频率的关系

    波长的定义 沿着波的传播方向 xff0c 在波的图形中相对平衡位置的位移时刻相同的两个质点之间的距离 横波与纵波的波长 在横波中波长通常是指相邻两个波峰或波谷之间的距离 在纵波中波长是指相邻两个密部或疏部之间的距离 波长在物理中表示为 xf
  • Python中的yield详细解释

    Python中的yield详细解释 yield是一个六级词汇 xff0c 常见意思有 产量 xff0c 屈服 动词 这里的yield大概率解释为一个僻义 缴出 咱们在什么情况下 xff0c 会用到yield呢 xff1f 答 xff1a 处
  • scrapy下载文件遇到的问题

    在写DEMO时遇到两个问题 1 FilesPipeline 不执行 原因 xff1a 从网上抄的脚本 xff0c FILES STORE 写成 FILE STORE了 xff0c 改成FILES STORE xff0c 可以触发FilesP
  • odoo 界面风格(theme)设置

    odoo 官方提供了不少收费或免费的界面风格 xff0c 可以自行选择安装 xff0c 下面介绍一下安装过程 xff11 下载安装包 安装包从官方下载 xff0c 地址 xff1a https apps odoo com apps them
  • windows环境 odoo16源码安装

    windows环境 odoo16源码安装 odoo16 源码安装 postgresql 安装 anaconda安装 odoo安装 odoo配置 odoo16 源码安装 安装环境为windows7 postgresql 13 odoo16的源
  • 1602B液晶使用范例

    2007 12 24 16 27 46 液晶显示模块具有体积小 功耗低 显示内容丰富等特点 xff0c 现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了 本实验以常见的1602B字符型LCD模块为例 xff0c 介绍该模块

随机推荐