基于STM32的HX711模块的电子秤设计
一、主要功能
打开串口调试助手,波特率设置为115200,系统运行后,蜂鸣器滴一声表示去皮完成,同时串口助手会显示传感器检测实时重量,若重量超过2000g,蜂鸣器报警。当按下KEY1键,物品稳定重量会显示在串口助手上。
二、硬件资源
1、STM32开发板一个(本人使用为STM32407)
2、HX711称重模块一个
3、USB线一条
4、杜邦线
三、硬件连接
蜂鸣器模块-->单片机IOBEEP-->PF8按键模块-->单片机IOKEY0-->PA0KEY1-->PE2KEY2-->PE3KEY3-->PE4HX711称重模块(5KG)-->单片机IODOUT-->PB10(USART3_TX)SCK-->PB11(USART3_RX)VCC-->5VGND-->GND
(经测试,选用供电电压3.3V结果会不稳定,故采用5V供电。)
四、软件设计
1、主要框架
2、主要代码
//主函数程序#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "hx711.h"
#include "beep.h"
#include "key.h"int main()
{ u8 res=0;u8 key=0;SysTick_Init(168);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组,分2组USART1_Init(115200);//波特率设置为115200LED_Init();//LED初始化BEEP_Init();//蜂鸣器初始化KEY_Init();//按键初始化hx711_init();//HX711模块初始化get_plet();//获取毛皮重量BEEP=1;delay_ms(1000);get_plet();//延时1s,再一次获取毛皮重量BEEP=0;while(1){LED1=!LED1;//LED1灯在正常运行中不断闪烁res=get_suttle();//获取净重if(res==0){printf("实时检测重量:%d克\r\n",hx_str.suttle);if(hx_str.suttle>2000)BEEP=1;elseBEEP=0;}}delay_ms(300);key=KEY_Scan(0);if(key==KEY2_PRESS){printf("物品检测重量:%d克\r\n",hx_str.suttle);}}
//hx711部分程序
u32 hx711_read(void)
{u32 count; u8 i; HX711_DOUT=1; delay_us(10);HX711_SCK=0; count=0;while(HX711_DOUT); for(i=0;i<24;i++){ HX711_SCK=1; count=count<<1; delay_us(10);HX711_SCK=0; if(HX711_DOUT)count++;delay_us(10);} HX711_SCK=1; count=count^0x800000;// 第25个下降沿来时,转换数据delay_us(10);HX711_SCK=0; return(count);
}//获取毛皮重量
void get_plet(void)
{hx_str.plet=hx711_read();
}//正常返回0,负重返回2,超重返回1
u8 get_suttle(void)
{hx_str.suttle=hx711_read();if(hx_str.suttle>hx_str.plet){hx_str.suttle=hx_str.suttle-hx_str.plet;//进行去皮if(hx_str.suttle>0){hx_str.suttle=hx_str.suttle/GapValue;//转换为实际重量,此处GapValue设置为400if(hx_str.suttle>5000)//如果超过HX711最大5kg量程return 1;elsereturn 0;}else return 2;}return 1;
}
五、实验现象
如需更多帮助,请私信作者。
基于STM32的HX711模块的电子秤设计相关推荐
- a4988 脉宽要求_基于STM32的微型步进电机驱动控制器设计
基于STM32的微型步进电机驱动控制器设计 摘 要: 设计了一种微型步进电机驱动控制器,通过上位机界面修改步进电机转速.旋转角度.细分系数.该设计以STM32F103T8U6作为主控制器,以A4988 ...
- 基于STM32的ESP8266模块控制多路继电器
基于STM32的ESP8266模块控制多路继电器 1.视频讲解 基于STM32单片机ESP8266物联网阿里云MQTT多路继电器控制 物联网视频教程STM32+ESP8266 2.实物设计 ESP82 ...
- 基于STM32与红外感应开关的自动门设计与实现(结构+设计)
基于STM32与红外感应开关的自动门设计与实现 采用STM32作为主控,设计了自动和手动开门装置,MLX90614作为设计测温装置. 前言说明 元器件清单说明 STM32F103C8T6系统板 微型滑 ...
- 基于STM32的电子琴音乐播放器设计
基于STM32的电子琴/音乐播放器设计 文章目录 基于STM32的电子琴/音乐播放器设计 @[toc] 引言 第一章 总体设计 1.1 系统功能 1.2 主要技术性能指标 第二章 系统设计 2.1 系 ...
- 毕业设计 —— 基于STM32手势控制显示系统的设计
目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...
- 基于STM32的指纹识别智能锁设计
本设计是基于stm32的指纹识别智能锁设计,主要实现以下功能: 1,OLED显示输入锁的状态,解锁状态,开锁成功,开锁失败,确定,清除 2,通过矩阵键盘输入开门密码.修改密码.确认密码等操作: 3,可 ...
- 基于 STM32 的新型激光测距控制系统的设计
基于 STM32 的新型激光测距控制系统的设计 基于 STM32 的新型激光测距控制系统的设计 闵小 (陕西理工大学(物理与电信工程学院)电子专业1502班,陕西 汉中 723003) 指导老师:韩团 ...
- 基于STM32的智能手环系统的设计
STM32系列 基于STM32的智能手环系统的设计 STM32系列 前言 一.系统方案的设计 1.1系统功能分析 1.2系统总体结构 二.硬件电路的搭建 2.1STM32最小系统组成部分 2.2S硬件 ...
- 基于STM32与GSM模块发送中英文短信
基于STM32与GSM模块发送中英文短信 最近在做毕业设计有用到GSM模块进行短信报警,模块的功能比较多这里就不介绍了,一般的拨打电话都很简单就只需要一条指令即可,发送英文短信也很简单也只要几条命令也 ...
最新文章
- mysql 自动管理内存_MySQL内存管理,内存分配器和操作系统
- 4 信道编码之循环码
- navicat 导入csv未响应_使用navicat将csv文件导入mysql
- §3—2 借贷记账法
- 《Haskell趣学指南》—— 第2章,第2.3节类型变量
- mysql编译卡主_mysql 编译安装以及主从设定
- 【LCT】大融合(luogu 4219)
- Unity3D-RayMarch-几何图元1-添加基本着色模型
- Oracle递归查询,Oracle START WITH……CONNECT BY查询
- python开发app教程_超简单app制作教程,颠覆行业的开发模式来啦
- activemq_CVE-2015-5254_漏洞复现_源码分析
- 如何干掉腾讯网迷你版
- Linux学习简单教程和常用命令(小白学习法)
- rstudio中读取数据_用RStudio导入数据
- Unity制作RPG游戏——补充
- Excel表格中,删除列或行的快捷键是什么
- 1,515美元的价格可让您驾驭野兽式机械套装
- 诺禾-实验技巧之WB篇
- 存储技术和灾备解决方案要点
- 产品方法论—如何竞品分析