stm32超声波测距汇总.docx
《stm32超声波测距汇总.docx》由会员分享,可在线阅读,更多相关《stm32超声波测距汇总.docx(10页珍藏版)》请在冰豆网上搜索。
stm32超声波测距汇总
嵌入式系统及应用
开放性实验报告
Stm32
HC-SR04超声波测距
第一章绪论
1.1STM32超声波测距系统
1.1.1HC-SR04超声波测距模块简介
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
使用电压:
DC---5V
静态电流:
小于2mA
电平输出:
高5V 低0V
感应角度:
不大于15度
探测距离:
2cm-450cm
高精度:
可达3mm
1.1.2HC-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按下是
否
否
第二章正文
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超声波测距模块、定时器、数码管等设备,加深了对寄存器,中断,库函数等的理解。
这次实验让我明白,遇到问题不要慌张,可以一步一步去测试是哪里出现问题,再重点解决。
多在网上查找资料,一步一步让实验成功