嵌入式技术项目教程-基于STM32F4CubeMX与HAL库 课件 6 制作电子秤_第1页
嵌入式技术项目教程-基于STM32F4CubeMX与HAL库 课件 6 制作电子秤_第2页
嵌入式技术项目教程-基于STM32F4CubeMX与HAL库 课件 6 制作电子秤_第3页
嵌入式技术项目教程-基于STM32F4CubeMX与HAL库 课件 6 制作电子秤_第4页
嵌入式技术项目教程-基于STM32F4CubeMX与HAL库 课件 6 制作电子秤_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务4.4制作电子秤制作电子秤电子秤案例引导现代生活中,越来越多的场合需要用到称重系统。在家里,有电子秤,用于测量人体的重量,厨房里的电子秤,用来测量食材、调料或者其他食物的重量;超市、物流仓储等场所用的电子秤,能够根据物品的重量进行计价或管理库存。当人们需要寄送包裹或信件时,快递公司通常会使用电子秤来称量物品的重量,这样可以确保正确计算邮费。在科学实验室中,电子称重系统被广泛用于称量和计量化学物质。实验室里的天平具有高度精确的称重能力,能够测量非常小的物质重量,为科学研究提供准确的数据支持。这些智能电子秤,结合按键、智能屏显、打印机、蜂鸣器、网络通信模块等功能外设,实现不同的应用场景。本次任务,我们就来制作一个电子秤。任务拓展电子秤职业能力目标(1)能根据MCU编程手册,利用STM32CubeMX软件,准确配置称重模组。(2)能利用称重模组传感器及转换电路,通过编写代码,准确获取重量数据。(1)能够通过STM32CubeMX软件对HX711数据线及时钟线进行配置。(2)能够根据HX711模组数据手册搭建硬件电路,编写转换函数,获取传感器数据。(3)能够将获取的重量数据通过串口输出,进而将重量在OLED的128×64显示屏显知识目标技能目标任务拓展TFT-LCD显示屏电子秤通过STM32获取称重传感器HX711模组的数据,将称重传感器上的砝码重量显示在串口调试助手中。任务描述任务要求通过STM32CubeMX软件进行HX711模组的配置;根据ADC的知识,获取传感器数据;将获取的重量数据通过串口输出。任务分析TFT-LCD显示屏本任务就是结合STM32微控制器、称重传感器模组、串口接口电路来制作一个电子称重系统。系统连接如图4-56所示。图4-56电子称重系统示意图知识链接TFT-LCD显示屏认识HX711称重模组HX711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其他芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其他同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点,降低了电子秤的整机成本,提高了整机的性能和可靠性。图4-57为HX711芯片应用于计价秤的一个参考电路图。该电路使用内部时钟振荡器(X1接地),10Hz的输出数据速率(RATE=0)。电源(2.7~5.5V)直接取用与MCU芯片相同的供电电源。通道A与传感器相连,通道B通过片外分压电阻(未在图4-57中显示)与电池相连,用于检测电池电压。图4-57知识链接TFT-LCD显示屏2.认识称重传感器图4-59称重传感器安装方式称重传感器的安装方式如图4-59所示,这种平行梁结构是将传感器置于两块板的中间。上面的板固定传感器的一端(未画出),下面的板固定传感器的另一端。固定的时候,上下板与传感器之间要加上预先准备好的垫片,这样才能够使传感器保持悬空状态。图4-60称重传感器受力示意图称重传感器的受力分析如图4-60所示。全桥称重传感器的内部有4个应变片,组成了电阻桥,引出4条线,颜色分别是红色、黑色、白色、绿色。全桥传感器内部原理即惠斯通电桥。知识链接TFT-LCD显示屏2.惠斯通电桥原理惠斯通电桥的四个桥臂或分支由电阻R1、R2、R3和R4四个电阻构成。桥的角点A和D连接桥路激励电压Vs;角点B和C为电桥输出电压Vo即测量信号,如图4-61所示。电桥的工作原理是:加载受力的变化→弹性体形状发生变化→附着在弹性体上的应变片长度发生变化→应变片的电阻值发生变化(即惠斯通电桥的桥壁阻值发生变化)→传感器输出电信号发生变化。

E为供电电源提供的电压值;K:应变片的灵敏系数;

e为应变力的大小通过这个公式,可以知道,电压的变化和应变力的大小成正比。当我们进行标定之后,就可以将质量(重量)转化成电压值。知识链接TFT-LCD显示屏3.称重模组与STM32微控制器的连接HX711模组与STM32微控制器的连接如图4-62所示,模组的VCC接5V,GND接地,串行数据线DT(DOUT)接GPIOB口的PB8,串行时钟线SCK接GPIOB的PB9。图4-62称重系统硬件连接示意图知识链接TFT-LCD显示屏4.称重模块的转换函数(1)hx711.h文件如下。知识链接TFT-LCD显示屏4.称重模块的转换函数(2)hx711.c文件如下。知识链接TFT-LCD显示屏5.微秒级延时函数设计由于HAL库中没有提供微秒级的延时函数,我们使用滴答定时器实现微秒级延时函数。delay.h文件代码如下:delay.c文件代码如下。任务实施TFT-LCD显示屏任务实施前必须准备好表4-34所列的设备/资源。序号设备/资源数量是否准备到位(√)1STM32F407ZET6最小系统1

2HX711称重传感器模组1

3砝码盒1

4杜邦线4

思考一下,此次任务会用到哪些设备资源呢?任务实施TFT-LCD显示屏要完成本任务,可以实施步骤分成以下7步。使用STM32CubeMX完成电子秤工程的创建和配置。在工程中添加代码包。在源文件中添加代码。编译代码。硬件环境搭建。模块固件下载。结果验证。具体实施步骤如下。参考之前的任务1,完成以下操作任务实施TFT-LCD显示屏新建工程可参考之前的项目,完成如下操作。打开STM32CubeMX,选择“NewProject”进入芯片选择界面。在搜索栏输入“STM32F407ZE”,右侧会出现STM32F407ZE的芯片,选择LQFP封装,双击进入芯片配置界面。依次单击“SystemCore”→“RCC”→“HighSpeedClock(HSE)”,选择“Crystal/CeramicResonator”。依次单击“Sys”→“Debug”,选择“SerialWire”。依次单击“Connectivity”→“USART1”,配置串口1,如图4-63所示,MODE选择“Asynchronous”,BaudRate选择“115200bit/s”,DataDirection选择“ReceiveandTransmit”。任务实施TFT-LCD显示屏依次单击“SystemCore”→“GPIO”,在“Pinoutview”配置界面,单击MCU的“PB8”引脚,GPIOmode选“Inputmode”,GPIOPull-up/Pull-down选“Pull-up”,UserLabel选“DOUT”,如图4-64所示。同理配置“PB9”引脚,GPIOmode选“OutputPushPull”,GPIOPull-up/Pull-down选“NoPull-upandnopulldown”,UserLabel选“SCK”,GPIOoutputlevel选“Low”,Maximumoutputspeed选“High”。单击“ClockConfiguration”,进行如图4-65所示的时钟配置。任务实施TFT-LCD显示屏单击“ProjectManager”,单击“Project”设置文件名和保存的位置,Toolchain/IDE选择“MDK-ARM”。切换到“CodeGenerator”选项卡,进行勾选设置。最后单击右上角“GENERATECODE”按钮生成初始化代码。任务实施TFT-LCD显示屏任务实施TFT-LCD显示屏添加代码包1)在项目工程文件夹下新建delay、hx711两个文件夹,并将delay.h和delay.c文件复制到delay文件夹,将hx711.h和hx711.c文件复制到hx711文件夹下。2)右击项目文件名,在弹出的快捷菜单中选择“AddGroup”添加组,将“NewGroup”改为“Delay”,双击“Delay”,选择delay.c文件添加到Delay组下。同理,添加“Hx711”组,将hx711.c文件添加到Hx711组下。3)添加的文件直接编译会报错,需要包含文件夹的路径,图4-66所示就是添加hx711文件的路径,以便程序可以找到文件。4)用同样的方法将delay文件夹的路径添加进去。图4-66任务实施TFT-LCD显示屏3.添加程序代码修改main.c文件(1)添加头文件在MDK-ARM中双击打开“Application/User/Core”下的main.c文件,在添加头文件处添加delay.h和hx711.h头文件。(2)添加变量(3)在“USERCODEBEGIN2”和“USERCODEEND2”之间添加如下代码:(4)在“USERCODEBEGIN3”和“USERCODEEND3”之间添加如下代码:2)修改usart.h文件3)修改usart.c文件任务实施TFT-LCD显示屏3.添加程序代码修改main.c文件任务实施TFT-LCD显示屏实施步骤编译代码代码添加完成后,单击“重新编译”按钮完成编译,确保编译准确无误。硬件环境搭建如图4-67所示,是本任务的硬件连线图。STM32F407ZET6最小系统的PB8、PB9依次连接到HX711模组的DOUT和SCK端,再连接好电源线和地线。6.固件下载使用ST-Link仿真器下载程序到开发板即可。如手头没有ST-Link仿真器,也可用串口方式下,方法请读者自行查找资料学习基于串口的下载方式。任务实施TFT-LCD显示屏实施步骤结果验证打开串口调试工具,单片机上电,选择连接好串口,在称重传感器秤盘上轻放一个100g的砝码,串口调试助手的输出以及依次加50g、20g、20g后的显示如图4-68所示。实验发现,加载了190g砝码,测量值为200g,误差还不小呢。任务实施TFT-LCD显示屏如何提高测量准确度呢?适当调节HX711_GapValue这个参数,我们在程序中设置为420。厂商给的参考值为429.5,那它是如何计算出来的,现在又该如何校正呢?HX711模组满量程输出电压=激励电压×灵敏度1.0mV/V,例如,供电电压是5V乘以灵敏度1.0mV/V=满量程5mV。相当于有5kg重力对应电桥输出5mV的电压。我们使用的HX711模组适配的传感器量程正好是5kg。HX711模组A通道带有128倍信号增益,可以将5mV的电压放大128倍,然后采样输出24bitA/D转换的值,单片机通过指定时序将24bit数据读出。如何计算传感器供电电压HX711模组可以在产生VAVDD

和VAGND

电压,即HX711模组上的E+和E-电压。该电压通过VAVDD=VVBG(R1+R2)/R2计算。VVBG为模组基准电压1.25V,R1=20kΩ,R2=8.2kΩ,因此得出VAVDD=4.3V。如何将A/D值反向转换为重力值假设重力为Akg,(A<5kg),测量出来的A/D值为y,传感器输出,发送给ADC模块的电压为Akg×4.3mV/5kg=0.86mV,经过128倍增益后为:128×0.86mV=110.08mV。转换为24bit数字信号为110.08mV×224/4.3V=429496.7296。所以y=429496.7296,因此得出A=y/429496.7296kg=y/429.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论