stm32+hx711+称重传感器

2023-10-26

本项目使用主控stm32f103c8t6(最小系统核心板),称重模块hx711,串口打印到电脑端显示数值。

 

这个传感器内部是一组半桥应变片,使用方法可以有以下三种:

1、使用一只传感器配合外接电阻组成全桥测量,量程为一个传感器的量程:50kg。对外接电阻要求较高。

2、使用二只传感器组成全桥测量,量程为两只传感器的量程之和:50kgx2=100kg

3、使用四只传感器组成全桥测量,量程为四只传感器的量程之和:50kgx4=200kg

我的称重组成是4个应变片半桥传感器串联组成一个桥路,供电后输出一组模拟电压信号。

连线: 黑线连信号正    白(黄)线连信号负   红线连 电源 。这里的V+连接E+,V-连接E-,Vout+连A+,Vout-连A-;hx711的另一边vcc接5V,gnd连gnd,SCK 和DT连自己设的引脚

桥结构图如下:

 

单片机称重AD模块-HX711

       这个模块采用24位高精度的A/D转换器芯片hx711,是一款专为高精度电子称而设计的,具有两路模拟通道输入,内部集成128倍增益可编程放大器。输入电路可配置为提供桥压的电桥式(如压力、称重)传感器模式,是一款理想的高精度、低成本采样前端模块

代码:

void Init_HX711pin(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    //HX711_SCK
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;          //端口配置
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
    GPIO_Init(GPIOB, &GPIO_InitStructure);             //根据设定参数初始化GPIOC

    //HX711_DOUT
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;      //输入上拉
    GPIO_Init(GPIOB, & GPIO_InitStructure);

    //GPIO_SetBits(GPIOB, GPIO_Pin_1);   //初始化设置为0
}

u32 HX711_Read(void)                   //增益128
{
    u32 count;
    u8 i;
    HX711_DOUT = 1;
    delay_us(1);
    HX711_SCK = 0;
    count = 0;
    while (HX711_DOUT);
    for (i = 0; i < 24; i++)
    {
        HX711_SCK = 1;
        count = count << 1;
        delay_us(1);
        HX711_SCK = 0;
        if (HX711_DOUT)
            count++;
        delay_us(1);
    }
    HX711_SCK = 1;
    count=count^0x800000;//第25个脉冲下降沿来时,转换数据
    delay_us(1);
    HX711_SCK = 0;
    return(count);
}


void Get_Maopi(void)
{
	Weight_Maopi = HX711_Read();	
} 


//****************************************************
//称重
//****************************************************
void Get_Weight(void)
{
	HX711_Buffer = HX711_Read();
	if(HX711_Buffer > Weight_Maopi)			
	{
		Weight_Shiwu = HX711_Buffer;
		Weight_Shiwu = Weight_Shiwu - Weight_Maopi;				//获取实物的AD采样数值。
		printf("实物ad值是:%d\r\n",Weight_Shiwu);
	
		Weight_Shiwu = (s32)((float)Weight_Shiwu/GapValue-0.0383); 	//计算实物的实际重量
																		//因为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的GapValue这个除数。
																		//当发现测试出来的重量偏大时,增加该数值。
																		//如果测试出来的重量偏小时,减小改数值。
	}
}
int main(void)
{	
  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  /* 初始化RGB彩灯 */
  LED_GPIO_Config();
	delay_init();
  
  /* 初始化USART 配置模式为 115200 8-N-1 */
  USART_Config();
	Init_HX711pin();               //HX711初始化
	Get_Maopi();
	delay_ms(1000);
	Get_Maopi();
	printf("皮毛值是:%d\r\n",Weight_Maopi);
  while(1)
	{	
		LED0 =~LED0; 
		 Get_Weight();
		delay_ms(4000);
		weight=(float)Weight_Shiwu/1000;
		printf("重量值是:%0.3fkg\r\n",weight);
		printf("ad值是:%d\r\n",Weight_Shiwu);
		 
	}	
}

 代码中GapValue要自己根据传感器值的不同来调试,我是用一个5kg和一个20kg的重物来测的,因为ad值的重物的重量是有着线性关系的,相当于解一个二元一次方程组,提供二元一次方程计算器。    2个重物之间的值尽量大一些,准度会稍微准一点。

 程序源码和电子秤HX711AD模块资料 :

链接:https://pan.baidu.com/s/1-tT6jRfDV8SAvVVFOBH8qg 
提取码:dd11

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

stm32+hx711+称重传感器 的相关文章

随机推荐

  • checkstyle:off 使用注释暂时禁用checkstyle检查

    背景 本文介绍在Gradle中 如何跳过checkstyle对指定的文件 或者指定的代码块 的检查 步骤 1 在checkstyle xml的
  • Typescript常见表达式

    Typescript常见表达式 一 析构表达式 destructuring 1 数组析构表达式 用中括号括起来 var array1 1 2 3 4 function doSomething number1 number2 others c
  • Java基础---反射、多线程

    十 反射机制 1 Java反射机制概述 1 1Java Reflection Reflection 反射 是被犯为动态语言的关键 反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息 并能直接操作任意对象的内部属性
  • datetime.time类介绍

    一 time是一个时间类 由时 分 秒 微妙组成 其构造函数如下 class datetime time hour minute second microsecond tzinfo 参数tzinfo 它表示时区信息 各参数的取值范围 hou
  • window安装docker Desktop和wsl2

    目录 一 先到微软商店下载terminal 也就是power shell 后续命令都在这个里面执行 二 安装docker Destop 1 打开控制面板 2 勾选Hyper V服务 3 根据提示重启电脑 等待更新即可 二 启动Docker
  • 字符串去重的5种方式

    public class Demo public static void main String args String str albcad12l gt sfg gt String newStr quChong5 str System o
  • 深度负反馈

    负反馈放大电路的方块图 因为负反馈放大电路有四种组态 而且对于同一种组态 具体电路也各不相同 所以为了研究负反馈放大电路的共同规律 可以利用方块图来描述所有电路 一 负反馈放大电路的方块图表示法 任何负反馈放大电路都可以用下图所示的方块图来
  • windows服务器禁用135,137,138,139,445端口方法

    windows服务器禁用135 137 138 139 445端口方法 1 防火墙新建入站和出站规则 注意 此方法只针对防火墙已开启的情况下才能实现禁用端口 打开控制面板 系统和安全 Windows Defender 防火墙 在左侧选择 高
  • 安装Apache Hive-2.3.3

    1 Hive是什么 1 1 Hive是数据仓库 数据仓库英文名DataWarehouse 可简写为DW或DWH 数据仓库 由数据仓库之父比尔 恩门 Bill Inmon 于1990年提出 主要功能仍是将组织透过资讯系统之联机事务处理 OLT
  • 【H.264/AVC视频编解码技术详解】十七:帧内预测编码的预测实现方法

    H 264 AVC视频编解码技术详解 视频教程已经在 CSDN学院 上线 视频中详述了H 264的背景 标准协议和实现 并通过一个实战工程的形式对H 264的标准进行解析和实现 欢迎观看 纸上得来终觉浅 绝知此事要躬行 只有自己按照标准文档
  • pandas.read_csv参数整理

    pandas read csv参数整理 转载 读取CSV 逗号分割 文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见 http pandas pydata org pandas docs stable io html
  • 如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养

    本文系 NebulaGraph Community Academic 技术文档工程师 Abby 的参会观感 讲述了她在中国技术传播大会分享的收获以及感悟 据说 技术内容领域 传播领域的专家和决策者们会在中国技术传播大会 tcworld Ch
  • 实施静态分析并非易事

    针对软件错误和漏洞的静态分析测试 SAST 应该成为应用程序安全性和软件质量程序的一部分 您需要做的就是运行一个工具 它将在开发的早期发现价格便宜且易于修复的错误 听起来很简单 但是 这不仅需要购买工具并运行扫描 还需要将代码上传到测试服务
  • 【云原生】Docker镜像、容器、仓库、配置等常见问题汇总(面试必看)

    Docker 常见问题整理汇总 本文目录 一 镜像相关 二 容器相关 三 仓库相关 四 配置相关 五 Docker与虚拟化 六 其它常见问题 一 镜像相关 1 如何批量清理临时镜像文件 可以使用sudo docker rmi sudo do
  • C++入门基础07:函数定义与声明、函数传参(传值、传地址、传引用)、函数重载

    C 入门基础07 函数定义与声明 函数传参 传值 传地址 传引用 函数重载 1 函数定义与声明 函数是一起执行一个任务的一组语句 每个程序 C C 都有一个主函数 main 所有简单的程序都可以定义其他额外的函数 可以把代码划分到不同的函数
  • 上位机发送FINS UDP命令读写欧姆龙PLC数据

    上位机通过发送FINS UDP命令读写欧姆龙PLC内部数据 可以用于上位机socket通讯测试 客户服务中心 打开 Sockettool软件 新建一个UDP客户端 HTcP TIP urIEl调试工具W 创 H隊 是出 H TCP H TC
  • 服务器物理内存总是九十几,服务器物理内存使用率90以上

    服务器物理内存使用率90以上 内容精选 换一换 开启弹性云服务器的虚拟内存后 会导致硬盘I O性能下降 因此 平台提供的Windows弹性云服务器默认未配置虚拟内存 如果弹性云服务器内存不足 建议通过 变更规格 操作来扩大内存 如果业务需要
  • 时空编解码器残差多图卷积网络预测OD客流需求

    paper title Predicting origin destination ride sourcing demand with a spatio temporal encoder decoder residual multi gra
  • windows下调用系统API实现进程创建和文件读写

    题目要求 有一个文本文件CommandList txt 第一行是说明文字 本文件最后一次打开和运行日期是20150407 第二行开始每行是一个可执行程序的名称 含路径 编写一个应用程序能打开该文件 并顺序执行其中的每个程序 并更新文件第一行
  • stm32+hx711+称重传感器

    本项目使用主控stm32f103c8t6 最小系统核心板 称重模块hx711 串口打印到电脑端显示数值 这个传感器内部是一组半桥应变片 使用方法可以有以下三种 1 使用一只传感器配合外接电阻组成全桥测量 量程为一个传感器的量程 50kg 对