HX711电子秤模块详解(STM32)

目录

一、介绍

二、传感器原理

1.原理图

2.引脚描述

3.工作原理介绍 

三、程序设计

main.c文件

hx711.h文件

hx711.c文件

四、实验效果 

五、资料获取

项目分享


一、介绍

        HX711是一种高精度、低成本的压力传感器信号放大器,主要用于测量重力或压力变化。它工作在 2.7V 5.5V 的电源范围内,支持多种传感器类型,如电桥、应变计等。HX711 提供了一种简便的数字接口来读取模拟输出信号,适用于嵌入式系统和传感器应用。

以下是HX711电子秤模块的参数:

型号

HX711

工作电压

3.3~5V(推荐5V

量程

5kg

精度

1g

AD位宽

24

哔哩哔哩视频链接

HX711电子秤模块详解(STM32)

(资料分享见文末) 

二、传感器原理

1.原理图

2.引脚描述

引脚名称

描述

GND

模块地线

DT

数据输出端口

SCK

时钟输入端口

VCC

电源

3.工作原理介绍 

    传感器的一个重要构成是HX711的芯片,内部由二进制模数转换器(ADC)和一个放大器组成。ADC将模拟信号转换为数字信号,放大器则扩大转化出来的信号的幅度,以便更精确地测量。HX711压力传感器的工作原理是基于万用表电桥原理,利用压力传感器的阻值变化来实现重量的测量

 

三、程序设计

1.使用STM32F103C8T6读取HX711电子秤模块采集的数据,通过串口发送至电脑

2.将读取得到信息数据同时在OLED上显示

HX711_SCK

PA0

HX711_DT

PA1

OLED_SCL

PB11

OLED_SDA

PB10

串口

串口1

main.c文件

#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "hx711.h"/*****************辰哥单片机设计******************STM32* 项目			:	HX711电子秤模块实验                     * 版本			: V1.0* 日期			: 2024.9.11* MCU			:	STM32F103C8T6* 接口			:	参看HX711.h							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/int value;
float weight;
int32_t reset;
u8 buff[30];float Weights=100.0;  //100g
int32_t Weights_100=8493860;  //100gint main(void)
{ SystemInit();//配置系统时钟为72M	delay_init(72);LED_Init();LED_On();HX711_Init();USART1_Config();//串口初始化OLED_Init();printf("Start \n");delay_ms(1000);//显示“重量:”OLED_ShowChinese(0,0,0,16,1);OLED_ShowChinese(16,0,1,16,1);OLED_ShowChar(32,0,':',16,1);reset = HX711_GetData();while (1){LED_Toggle();value = HX711_GetData();weight=(float)(value-reset)*Weights/(float)(Weights_100-reset);sprintf((char*)buff,"%.1f   ",weight);printf("重量: %f\r\n",weight);OLED_ShowString(50,30,buff,16,1);delay_ms(500);}
}

hx711.h文件

#ifndef __HX711_H
#define	__HX711_H
#include "stm32f10x.h"
#include "delay.h"
#include "math.h"/*****************辰哥单片机设计******************STM32* 文件			:	HX711电子秤模块h文件                   * 版本			: V1.0* 日期			: 2024.9.11* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************//***************根据自己需求更改****************/
// HX711 GPIO宏定义
#define		HX711_GPIO_CLK									RCC_APB2Periph_GPIOA
#define 	HX711_SCK_GPIO_PORT							GPIOA
#define 	HX711_SCK_GPIO_PIN							GPIO_Pin_0
#define 	HX711_DT_GPIO_PORT							GPIOA
#define 	HX711_DT_GPIO_PIN								GPIO_Pin_1
/*********************END**********************/#define HX711_SCK_H				GPIO_SetBits(HX711_SCK_GPIO_PORT,HX711_SCK_GPIO_PIN);
#define HX711_SCK_L				GPIO_ResetBits(HX711_SCK_GPIO_PORT,HX711_SCK_GPIO_PIN);#define HX711_DT					GPIO_ReadInputDataBit(HX711_DT_GPIO_PORT, HX711_DT_GPIO_PIN)void HX711_Init(void);
unsigned long HX711_GetData(void);#endif /* __ADC_H */

hx711.c文件

#include "hx711.h"
#include "delay.h"/*****************辰哥单片机设计******************STM32* 文件			:	HX711电子秤模块c文件                   * 版本			: V1.0* 日期			: 2024.9.11* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************//*** @brief  PM25初始化程序* @param  无* @retval 无*/void HX711_Init(void)
{/*定义一个HX711_InitTypeDef类型的结构体*/GPIO_InitTypeDef GPIO_InitStructure;/*开启相关的GPIO外设时钟*/RCC_APB2PeriphClockCmd(HX711_GPIO_CLK , ENABLE);/*选择要控制的GPIO引脚*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = HX711_SCK_GPIO_PIN;GPIO_Init(HX711_SCK_GPIO_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = HX711_DT_GPIO_PIN;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;   GPIO_Init(HX711_DT_GPIO_PORT, &GPIO_InitStructure);	}unsigned long HX711_GetData(void)
{unsigned long Count;unsigned char i;HX711_SCK_L;delay_us(1);Count=0;while(HX711_DT);for (i=0;i<24;i++){HX711_SCK_H;delay_us(1);Count=Count<<1;HX711_SCK_L;delay_us(1);if(HX711_DT) Count++;}HX711_SCK_H;delay_us(1);Count=Count^0x800000;//最高位取反,其他位不变//在HX71芯片中,count是一个32位的有符号整数,用于存储称重传感器的读数。//当count的最高位为1时,表示读数为负数,而HX711芯片不支持负数的读数。//因此,为了将负数转换为正数,需要将count的最高位取反,即将count与0x800000进行异或操作。//具体来说,0x800000的二进制表示为100000000000000000000000,与count进行异或操作后,//可以将count的最高位从1变为0,从而得到对应的正数读数。HX711_SCK_L;delay_us(1);return(Count);
}

四、实验效果 

五、资料获取

项目分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145145.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Allow anonymous access to my Azure OpenAI chat bot

题意&#xff1a;允许匿名访问我的 Azure OpenAI 聊天机器人 问题背景&#xff1a; I have an Azure OpenAI chat bot using my own data (I configured an OpenAI resource and chose Deploy as Web App) . Members of my domain can access it by logging in. Now I want it…

数据库基础知识---------------------------(3)

MYSQL的索引 用于快速找出在某个列中有一特定值的行&#xff0c;不使用索引&#xff0c;MySQL必须从第一条记录开始读完整个表&#xff0c;直到找出相关的行。按实现方式分为Hash索引和BTree索引 单列索引 普通索引 允许在定义索引的列中插入重复值和空值唯一索引 索引列的值必…

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击

引言&#xff1a; 在当今数字化时代&#xff0c;电子通信设备已成为我们日常生活中不可或缺的一部分。然而&#xff0c;近期黎巴嫩发生的电子设备爆炸事件提醒我们&#xff0c;这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施&#xff0c;以及网络智能…

LangChain-Chatchat本地部署(非docker)-亲测有效全网最新

文章目录 1.相关参数2.下载安装xinference推理框架3.启动xinference下载GLM模型和模型编码器4.模型和编码器下载完成后进行检查5.创建新的虚拟环境chatchat6.将LangChain-chatchat项目拉到本地7.下载langchain-chatchat的包清华源镜像8.创建一个chatchat配置文件存储路径9.查看…

【第33章】Spring Cloud之SkyWalking服务链路追踪

文章目录 前言一、介绍1. 架构图2. SkyWalking APM 二、服务端和控制台1. 下载2. 解压3. 初始化数据库4. 增加驱动5. 修改后端配置6. 启动7. 访问控制台8. 数据库表 三、客户端1. 下载2. 设置java代理3. idea配置3.1 环境变量3.2 JVM参数3.3 启动日志 4. 启用网关插件 四、链路…

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo

传送带异物破损裂缝检测数据集 2300张 带标注voc yolo 2 传送带异物破损裂缝检测数据集 数据集描述 该数据集旨在用于传送带上的异物、破损、裂缝等缺陷的检测任务。数据集包含大量的图像及其对应的标注信息&#xff0c;可用于训练计算机视觉模型&#xff0c;以识别和定位传…

求Huffman树及其matlab程序详解

#################本文为学习《图论算法及其MATLAB实现》的学习笔记################# 算法用途 求Haffman树 算法思想 根据定理4.17,给出求Huffman树的算法步骤如下: ①对给出的所要求的叶子顶点的权进行从小到大排序,写出的权重向量 ; ②根据定理4.17,写出兄弟的权重分别为…

通过iFIX在ARMxy边缘计算网关上实现维护管理

在当今快速发展的工业环境中&#xff0c;维护管理的有效性直接影响到生产效率和设备可靠性。随着物联网和边缘计算的兴起&#xff0c;传统的维护方式正在被更智能和高效的解决方案所替代。ARMxy系列的BL340控制器&#xff0c;凭借其灵活的IO配置和强大的处理能力&#xff0c;成…

OpenCV特征检测(1)检测图像中的线段的类LineSegmentDe()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 检测图像中线段的类.。 遵循在 285中描述的算法。 函数原型1 绘制两组线&#xff0c;一组用蓝色&#xff0c;一组用红色&#xff0c;并计算非重…

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目&#xff1a;**18.30 (找出单词) 编写一个程序&#xff0c;递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数&#xff1a; java Exercise18_30 dirName word 习题思路 &#xff08;读取路径方法&#xff09;和18.28题差不多&#xff0c;把找…

【趣学Python算法100例】百钱百鸡

问题描述 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”&#xff1a;一只公鸡值五钱&#xff0c;一只母鸡值三钱&#xff0c;三只小鸡值一钱&#xff0c;现在要用百钱买百鸡&#xff0c;请问公鸡、母鸡、小鸡各多少只&#xff1f; 问题分析 用百钱如…

.Net网络通信组件 - TouchSocket

文章目录 .Net网络通信组件 - TouchSocket1、新建.Net8控制台项目2、Nuget安装TouchSocket组件3、编写服务端代码4、编写客户端代码5、编写Program代码6、运行效果7、日志组件&#xff08;NLog&#xff09;参考我的另一篇博客 .Net网络通信组件 - TouchSocket 1、新建.Net8控制…

图像处理软件,常用于照片编辑和修饰

一、简介 1、一款功能强大的图像处理软件&#xff0c;常用于照片编辑和修饰。它提供多种工具和特效&#xff0c;允许用户调整照片的亮度、对比度、色彩、锐化等 二、下载 1、文末有下载链接,不明白可以私聊我哈&#xff08;麻烦咚咚咚&#xff0c;动动小手给个关注收藏小三连&a…

Apache的ab压力测试工具与性能监控

【图书介绍】《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》_软件性能测试分析与调优实践之路-CSDN博客《软件性能测试、分析与调优实践之路&#xff08;第2版&#xff09;》(张永清)【摘要 书评 试读】- 京东图书 (jd.com) Apache的ab压力测试工具 A…

分布式Redis(14)哈希槽

文章目录 一致性哈希算法理论普通哈希的问题一致性hash算法 Redis 使用哈希槽Redis Cluster集群 为什么Redis是使用哈希槽而不是一致性哈希呢&#xff1f;为什么Redis Cluster哈希槽数量是16384&#xff1f; 关键词&#xff1a;一致性 Hash&#xff0c;哈希槽&#xff0c; 带着…

react的组件的概念和使用

文章目录 1. **组件的定义****函数组件****类组件** 2. **组件的生命周期**3. **状态管理****类组件中的状态管理****函数组件中的状态管理** 4. **组件之间的通信****通过 Props 传递数据****上下文&#xff08;Context&#xff09;** 5. **组件的样式**6. **处理表单**7. **错…

51单片机-AD(模拟信号转数字信号)-实验()

介绍AD AD转换&#xff08;Analog to Digital Conversion&#xff0c;模数转换&#xff09;是将连续的模拟信号转换为离散的数字信号的过程。这个过程在各种电子设备中都非常重要&#xff0c;特别是在涉及传感器、音频信号、视频信号等需要进行数字化处理的领域。 个人理解&a…

正也科技-辖区与指标管理系统 强化决策支持

正也科技的“辖区与指标管理系统”设计理念先进&#xff0c;旨在通过科学合理的组织架构和精细化的指标管理&#xff0c;帮助企业实现更高效的市场布局、人员配置及业绩监控。以下是对该系统核心功能的进一步阐述及其对企业运营带来的优势&#xff1a; 正也科技辖区管理 1. 组…

最新PyCharm安装详细教程及pycharm配置

目录 一、PyCharm简介及其下载网站 二、单击网站的Downloads&#xff0c;进入二级页面&#xff0c;选择对应的操作系统下载PyCharm 三、PyCharm的安装程序的安装及其配置(configuration) 1、运行PyCharm Setup 2、安装位置设置 3、安装选项设置 4、开始菜单中PyCharm快捷方式的…

【Git使用】删除Github仓库中的指定文件/文件夹

前言&#xff1a; 上篇文章带大家上传了第一个项目至github,那要是想删除仓库中的指定文件夹怎么办&#xff1f;在Github中 仓库是无法通过鼠标操作直接删除文件和文件夹的&#xff0c;那只能通过 git 命令来执行删除操作。接下来就带大家进行操作。 详细步骤&#xff1a; 一…