stm32超声波测距汇总

stm32超声波测距汇总
stm32超声波测距汇总

嵌入式系统及应用开放性实验报告

Stm32

HC-SR04超声波测距

第一章绪论

1.1STM32超声波测距系统

1.1.1 HC-SR04超声波测距模块简介

HC-SR04 超声波测距模块可提供2cm-400cm 的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。

使用电压:DC---5V

静态电流:小于2mA

电平输出:高5V 低0V

感应角度:不大于15度

探测距离:2cm-450cm

高精度:可达3mm

1.1.2 HC-SR04超声波测距模块原理

采用IO 口TRIG 触发测距,给TRIG至少10us 的高电平信号;

模块自动发送8个40khz 的方波,自动检测是否有信号返回;

有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超

声波从发射到返回的时间。

测试距离=(高电平时间*声速(340M/S))/2; T(℃)={(V25-Vsense)/Avg_Slope}+25

V25=Vsense 在25 度时的数值(典型值为: 1.43)。

Avg_Slope=温度与Vsense 曲线的平均斜率(单位为mv/℃或uv/℃)(典型值为4.3Mv/℃)。

利用以上公式,我们就可以方便的计算出当前物体超声波模块之间的距离。

程序中使用: 测试距离=高电平时间*声速(340M/S))/2 这个公式

1.2 设计要求

使用ARM开发板上硬件资源与超声波模块结合,编程实现实时距离显示功能,通过数码管实时显示距离,并在距离小于设定报警距离时使用蜂鸣器报警。1.3 总体设计方案及框图

1.3.1 距离测量及获取方法

通过设置定时器,开启中断,读取ECHO 输出高电平的持续时间,计算结果

作为当前距离。1.3.2 总体设计方案

实时距离: 本超声波测距系统可实现对距离的实时测量,并不断显示在数码

管上

保持距离: 用户可通过按键使得当前距离值在数码管保持,

也可再次返回对

距离的实时测量,此模式下距离小于报警值不会报警,仅为显示模式。

两种模式相互转换,并且可以在距离保持状态时通过按键进入修改报警距离模式,如果实测距离小于下限值,蜂鸣器报警,当距离大于下限值时,报警自动停止。

1.3.3 程序框图

K5

按下

K6按下

K7按下

超声波测距数码管显示距离K4是否按下

显示当前距离K7是否按下

开始初始化

数码管及按键扫描

SV++

SV--

K1是否按下

第二章正文

2.1 要求重述及分析

2.1.1设计任务

超声波测距系统

2.1.2设计要求

使用STM-32开发板上硬件资源及HC-SR04超声波测距模块,编程实现超声波测距功能,通过数码管实时显示距离。

2.1.3要求分析

1使用HC-SR04 超声波测距模块以及stm-32自带数码管、LED等

2实现实时距离测量功能,通过数码管实时显示当前距离:设计程序实现对距

离报警值的设定,并在低于报警值时使用蜂鸣器等进行提示。

2.2 相关配置具体设计

2.2.1 相关配置

1输入口输出口配置:将PC8设为与Trig相连的输出口,将PC7设置为接收Echo返回数据的输入口。使能APB2总线上的GPIOC时钟,根据参数配置对应引脚。

2按键配置:控制按键的端口:PA15和PB4~7。使能APB2总线上的GPIOA以及GPIOB时钟,根据参数配置对应引脚。

3蜂鸣器:控制蜂鸣器的端口为PB8。APB2总线上GPIOB时钟已经使能可省略,根据参数配置PB8端口。

4数码管配置:控制数码管的端口:PE0~13。p使能APB2总线上的GPIOE时钟,根据参数配置对应引脚。

5定时器配置:

2.3 具体设计

2.3.1按键扫描设计:当按键按下时,对应的IO口为低电平,没有按下时为高电平

2.3.2数码管显示设计:

2.3.3超声波测距设计:给TRIG至少10us 的高电平信号,使用定时器中断法获得ECHO输入端PC7低电平持续时间,即为超声波一来回所用时间如(黄线为ECHO输入信号,测出低电平所用时间)算出物体和超声波测距模块之间距离。

2.3.4报警功能设计:在进入数码管显示前对当前距离进行判断若小于报警

距离则启动蜂鸣器

2.4实验结果分析

2.4.1 实验结果

使用超声波测距模块、按键、蜂鸣器等实现了距离测量系统的设计,本设计可实时测距以及暂停显示当前距离,实现了对距离的测量,具体功能如下:1距离报警值的设置:

程序启动先进入报警值设置,通过按下按键KEY3、KEY4分别使得报警值增大和减小。报警值会在数码管上显示,默认报警值为 5.0cm。

2实时测距系统:

此时程序循环获取当前距离并显示在数码管上,同时根据当前距离与距离报警值选择是否启动蜂鸣器,若当前距离小于报警值则启动蜂鸣器。此时按下KEY2则进入距离保持状态。

3距离测量系统

此时超声波传感器暂停,数码管上保持显示上一时刻距离,按下KEY5可进入实时距离测量,按下KEY1则会返回报警值设置。

2.4.2 结果分析

试验达到了预期的效果,实现了两种模式下的距离测量及两种模式的相互切换,并实现距离报警值的设定与显示,当前距离小于报警值时进行报警。误差在5mm以内

实际距离与超声波测量距离

测量距离/cm 理论距离/cm 误差/mm

3.2 3 2

11.2 11 2

20.2 20 2

29.7 30 3

32.9 33 1

39.7 40 3

2.5总结

2.5.1实验中遇到的问题及解决办法

1数码管显示距离值时无小数点。

给需要显示小数点的数字的显示码“与”小数点显示码0x80再显示即可加上小数点。

2每次按键设置报警值是报警值跳动太快

增加按键扫描函数里的延时即可。

2.5.2 试验心得

本次实验设计学会了如何熟练使用HC-SR04 超声波测距模块、定时器、数码管等设备,加深了对寄存器,中断,库函数等的理解。这次实验让我明白,遇到

问题不要慌张,可以一步一步去测试是哪里出现问题,再重点解决。多在网上查找资料,一步一步让实验成功

相关主题
相关文档
最新文档