0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

涂鸦模组开发(压力传感器HX711)——2.压力传感器HX711

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-16 10:49 次阅读

概述

涂鸦智能 (NYSE:TUYA) 是一家致力于让生活更智能的领先技术公司,涂鸦提供能够智连万物的云平台,打造互联互通的开发标准,连接品牌、OEM 厂商开发者、零售商和各行业的智能化需求,涂鸦的解决方案赋能并提升合作伙伴和客户的产品价值,同时通过技术应用使消费者的生活更加便利,涂鸦智能的智慧商业 SaaS 为丰富的垂直行业提供智能解决方案。涂鸦智能领先业界的技术,符合严格的数据保护标准和安全性。 压力传感器工业实践中最为常用的一种传感器,其广泛应用于各种工业自控环境,涉及水利水电、铁路交通、智能建筑、生产自控、航空航天、军工、石化、油井、电力、船舶、机床、管道等众多行业。 同时压力传感器可以应用于电子称重系统或者久坐系统,实现了称重显示、超限报警、校准、适应各种工作环境、远程实时监控等多种功能,可以广泛应用于各种称重场景。 本章主要是配置开发板对压力传感器HX711进行数据读取以及通过串口打印数据。

资料下载

https://download.csdn.net/download/qq_24312945/84796130

涂鸦智能

想更多了解涂鸦智能化开发方案,获取相关技术资料或开发物料,可点击下方报名参加,同时有30元优惠券。。 https://t.tuya.com/AY1D3R9jGr

硬件准备

首先需要准备一个开发板,这里我准备的是NUCLEO-F103RB的开发板: 在这里插入图片描述

对于该主控的原理图,可以在官方种进行下载,下载地址如下: https://www.st.com/zh/evaluation-tools/nucleo-f103rb.html#cad-resources

在这里插入图片描述

选择芯片型号

使用STM32CUBEMX选择芯片stm32f103rb,如下所示: 在这里插入图片描述

配置时钟

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示: 在这里插入图片描述

配置时钟树

STM32F1的最高主频到72M,但是使用内部时钟最快只能达到64M,所以配置64即可: 在这里插入图片描述

串口配置

本次实验使用的串口1进行串口通信,波特率配置为115200。 在这里插入图片描述

开启中断。 在这里插入图片描述

生成工程设置

在这里插入图片描述

代码生成设置

最后设置生成独立的初始化文件: 在这里插入图片描述

生成代码

在这里插入图片描述

串口接线配置

由于只用做发送数据,故不需要接开发板的rx。 在这里插入图片描述 |开发板 | 串口模块 | |--|--| |PA9(TX) | RX | |GND | GND |

配置keil

在这里插入图片描述在这里插入图片描述

打印代码

在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

变量定义:

/* USER CODE BEGIN PV */
#define BUFFERSIZE 255           //可以接收的最大字符个数       
uint8_t ReceiveBuff[BUFFERSIZE]; //接收缓冲区
uint8_t recv_end_flag = 0,Rx_len;//接收完成中断标志,接收到字符长度
/* USER CODE END PV */

函数声明和串口重定向:

/* USER CODE BEGIN PFP */

#ifdef __GNUC__                                    //串口重定向
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif 
PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
/* USER CODE END PFP */

打印数据进行测试。

/* USER CODE BEGIN 2 */
    printf("压力传感器HX711\\r\\n");
  /* USER CODE END 2 */

打印演示效果

在这里插入图片描述

压力传感器HX711接线说明

桥式传感器于HX711原理如下所示。 在这里插入图片描述 模块接线方式如下所示。 在这里插入图片描述 压力传感器与HX711模块接线。

压力传感器 串口模块
红线 E+
黑线 E-
白线 A-
绿线 A+

开发板HX711模块接线。 |开发板 |串口模块| |--|--| |VCC| VCC| |DT |PC10| |SCK |PC11| |GND |GND|

STM32CUBEMX配置数据管脚

配置PC10为DT数据脚,配置PC11为SCK时钟脚。 在这里插入图片描述

压力传感器HX711通讯

串口通讯线由管脚 PD_SCK 和 DOUT 组成,用来输出数据,选择输入通道和增益。 当数据输出管脚 DOUT 为高电平时,表明A/D 转换器还未准备好输出数据,此时串口时钟输入信号 PD_SCK 应为低电平。当 DOUT 从高电平变低电平后,PD_SCK 应输入 25 至 27 个不等的时钟脉冲。其中第一个时钟脉冲的上升沿 将读出输出 24 位数据的最高位(MSB),直至第 24 个时钟脉冲完成,24 位输出数据从最高位至最低位逐位输出完成。第 25至 27 个时钟脉冲用来选择下一次 A/D 转换的输入通道和增益。 PD_SCK 的输入时钟脉冲数不应少于 25 或多于 27,否则会造成串口通讯错误。 当 A/D 转换器的输入通道或增益改变时,A/D 转换器需要 4 个数据输出周期才能稳定。 DOUT 在 4 个数据输出周期后才会从高电平变低电平,输出有效数据。 在这里插入图片描述在这里插入图片描述

压力传感器HX711驱动程序

通过参考的驱动程序,修改成自己的代码。 在这里插入图片描述

程序代码

/* USER CODE BEGIN 2 */
    printf("压力传感器HX711\\r\\n");
    weight_qupi=ReadCount();//首次读取重量进行去皮操作
    printf("首次去皮weight_qupi=%d\\n",weight_qupi);
    HAL_Delay(100);

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        weight_shiji=ReadCount();
        if(weight_qupi>=weight_shiji)
        {
            weight_shiji=weight_qupi-weight_shiji;
            weight_shiji=weight_shiji/100;
            printf("重量为:%dg",weight_shiji);
        }
        else
        {
            weight_shiji=weight_shiji-weight_qupi;
            weight_shiji=weight_shiji/100;
            printf("重量为:-%dg",weight_shiji);
        }    
        HAL_Delay(1000);
  }
  /* USER CODE END 3 */

实际演示

实际测试重量为1115g在这里插入图片描述 模块测试如下所示1157g。 在这里插入图片描述在这里插入图片描述

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 压力传感器
    +关注

    关注

    34

    文章

    2058

    浏览量

    162586
  • 涂鸦智能
    +关注

    关注

    6

    文章

    152

    浏览量

    19301
收藏 人收藏

    评论

    相关推荐

    压力传感器HX711的一些疑问,求解答

    想用20Kg量程的压力传感器HX711做一个电子秤,灵敏度是2.0mv/v,空载情况下怎么处理从HX711得出的数据使得LCD显示0KG呢?求助!!!
    发表于 05-24 21:34

    求一个用HX711压力传感器和STM32组合的开关程序

    想求一个用HX711压力传感器和STM32组合的开关程序,有压力时STM32的led亮,无压力时蜂鸣器响,最好有程序注解和接线方式
    发表于 07-25 09:29

    压力传感器模块5Kg电子秤开发教程

    基于HX711压力传感器模块的电子秤开发教程,简单易操作
    发表于 02-13 21:07

    HX711压力传感器模块-电子秤程序分享

    基于HX711压力传感器模块的电子秤程序分享
    发表于 02-13 21:12

    HX711模块怎么转单通道?HX711模块连接称重有四根线,怎么转两根线接压力传感器

    HX711模块连接称重有4根接线,怎么转两根接线,让它连接压力传感器压力传感器只有两个接口。
    发表于 10-08 11:59

    stm32压力传感器的步进电机

    基于stm32c8t6的压力传感器控制步进电机正反转。主控:stm32c8t6 ,压力传感器:悬壁式压力传感器+HX711 ,步进电机:24BYJ48(电机)+ULN2003(驱动)实
    发表于 06-29 06:35

    电子秤设计 单片机 proteus 仿真 HX711 读取 精选资料分享

    课程设计题三十:电子秤设计 设计要求: 1. 利用压力传感器检测重量信号,经放大和A/D转换,送单片机进行处理,并在LED显示屏上显示出被称重量值; 2. 最小显示单位为1克。 3. 量程1kg
    发表于 07-19 06:36

    hx711是什么

    hx711是一个很常见的压力传感器模块,精度很高,在平时做嵌入式开发的时候也常常遇到。但是在网上找到的代码往往都很老了,用现在常用的stm32板子都或多或少有一些问题,尤其是在一些购买该模块地方那里
    发表于 08-04 06:19

    怎样去使用hx711压力传感器模块呢

    hx711是什么?怎样去使用hx711压力传感器模块呢?
    发表于 10-19 06:04

    STM32压力传感器信号采集-24位AD HX720 HX711原理是什么?

    STM32压力传感器信号采集-24位AD HX720 HX711原理是什么?
    发表于 01-27 07:01

    STM32称重传感器+HX711的使用方法及注意事项

    STM32称重传感器+HX711的使用——HAL库文章目录STM32称重传感器+HX711的使用——HAL库前言一、接线二、CubeMax配置三、代码编写注意点前言因为在一个项目中使用
    发表于 02-25 07:38

    【LuckFox Pico 开发板免费试用】2. 添加压力传感器hx711

    本章介绍基于luckfox开发板添加压力传感器hx711,并编写测试 一、参考资料 Rockchip_RV1103_Datasheet_V1.1-20220427.pdf 二、电路图 只有
    发表于 10-28 13:39

    stm32f103c8t6连接HX711和四个3线桥式传感器读出的数据是0的原因?

    我照着网上的说的连接方式4个压力传感器的同色线与旁边相连接,红色线接到HX711的E+,E-,A+,A-.然后HX711的VCC和GND与32的相连接,sck和dt 连接在32的B12,B13.用的网上的代码但是读出数据是0,请
    发表于 11-09 06:45

    stm32压力传感器步进电机

    基于stm32c8t6的压力传感器控制步进电机正反转。主控:stm32c8t6 ,压力传感器:悬壁式压力传感器+HX711 ,步进电机:24BYJ48(电机)+ULN2003(驱动)实
    发表于 01-13 11:24 29次下载
    stm32<b class='flag-5'>压力传感器</b>步进电机

    HX711压力传感器资料合集(含51的软件驱动代码即部分说明)

    HX711压力传感器资料合集(含51的软件驱动代码即部分说明)
    发表于 02-08 16:36 75次下载