超声波测距是一种典型的非接触测量方式。超声波在气体、液体及固体中以不同速度传播,定向性好、能量集中、传输过程中衰减较小、反射能力较强。且超声波测距系统结构简单、电路易实现、成本低、速度快,所以在工业自动控制、建筑工程测量和机器人视觉识别等领域应用非常广泛。
3 软件算法
3.1 基本流程
系统以STM32 单片机为核心,实现对各部分的控制和响应。测距软件的基本流程:首先使用美国DALAS 公司生产的DS18B20 数字温度传感器测量环境温度,通过查找事先建立好的声速-温度对照表得到当前声速;开启计数器计时,同时通过STM32 的PWM 模块产生8 个周期40 KHz 的脉冲方波和输入捕捉模块捕获超声波回波。待回波进入接收电路,经放大/ 整形等硬件处理后,进入单片机。单片机捕捉到回波的
触发信号,并记录产生下降沿的时刻;经过软件滤波,和峰值时间检测算法,得到峰值时刻作为回波到达的时刻,最后计算距离。软件流程如图5 所示。

STM32 的高级定时器由一个16 位的自动装载计数器组成, 时钟源频率高达72 MHz, 大大提高了时间测量的分辨率。高级定时器有4 个独立的通道,本文利用其互补的PWM来驱动超声波发射器,输入捕获通道来捕捉回波信号,在开启定时器的同一时刻也启动了PWM, 这不仅消除了启动发射和启动计时之间的误差,并且捕获通道精准的记录了超声波回波到达的时刻(比较器的下降沿)。待单片机进入中断后读取该值,而非等到进入中断后才开始读取当前计时器的值。
3.2 峰值时间检测
回波信号处理常规的方法是采用具有固定阈值电平的比较器电路,将回波信号与某一固定阈值电平在比较器电路中进行比较, 比较器输出的翻转时间就是回波到达的时间,在使用了时间增益补偿电路后,超声波回波信号的幅值得到了相对的稳定,但由于回波信号幅度仍存在一定程度的波动及回波信号被展宽,造成了时间检测产生一定的误差,因而在设计中把回波幅度的峰值时间点作为回波到达的时间。传
统的峰值检测方法大多通过硬件电路, 包括包络检测电路、微分电路和过零检测电路,设计较复杂,难实现。本文通过软件方法来实现峰值检测。
超声波回波经过比较器LMV331 后,将产生频率为40 kHz的方波,由于比较器阈值固定,回波信号的占空比将由小变大,达到一个最大值后再变小,而占空比最大处正对应着峰值点所在的回波波形,th/2 处对应着峰值时刻点, 如图6 所示。STM32 的PWM 输入模式启用两个输入捕获单元对应同一个输入信号,分别捕获信号的上升沿和下降沿,可以方便计算出回波信号的频率和占空比。

4 结果
为了验证系统的测量精度及盲区,在实验室进行了测距实验,表1 中的测量距离一栏取的是3 次测量的平均值。测量结果如表1 所示。

由表1 中数据可知:一方面,由于采用了峰值时间检测技术,使得系统的盲区很小;另一方面,在所测量程内,由于采用了时间增益补偿技术,使得测量误差并没有随着距离的增大而增大。

以下是我的stm32代码,可以去连接下载,有点小问题:https://download.csdn.net/download/leva345/37549084

超声波测距系统的设计实现(基于STM32 )-软件部分相关推荐

  1. 【毕设狗】【单片机毕业设计】基于单片机的超声波测距系统的设计

    软件安装: Keil:点击下载 Proteus:点击下载 AD:点击下载 Visio:点击下载 设计简介: 本设计是基于单片机的超声波测距系统的设计,主要实现以下功能: 实现通过DS18B20测量当前 ...

  2. 单片机STM8S测量电压电路_STM32单片机的高精度超声波测距系统的设计

    相比于传统的单片机,STM32单片机具有更高的时间测量分辨率,其主频与定时器频率高达72MHz,且该单片机在开启定时器的同时,会启动PWM通道驱动超声波发射器和通道捕捉回波信号,提高了测量的精度和准确 ...

  3. 硬件课程设计:基于STM32的多功能播放器之小说阅读

    1 小说阅读功能 1.1 功能介绍 1.1.1 设计思路 在TFTLCD屏上显示中英文文本文件是本次硬件课程设计的基本要求,也是我设计的多功能播放器最重要的功能,要求能够读取事先存储在SD卡中的文本文 ...

  4. 硬件课程设计:基于STM32的多功能播放器之MP3音乐播放

    3 MP3音乐播放 3.1 功能介绍 3.1.1 设计思路 音乐播放是手机等电子产品最常见的功能,也是最具娱乐性的功能,在该模块中,我先从SD卡中读取已存放的MP3音乐文件,然后将读取的字节流依次送人 ...

  5. 硬件课程设计:基于STM32的多功能播放器之聊天功能

    6 聊天功能 6.1 功能介绍 6.1.1 设计思路        在该功能模块中,我打算模拟手机QQ的聊天功能,不同的是QQ是通过互联网实现手机与手机之间的通信,而我是通过蓝牙实现stm32开发板与 ...

  6. 硬件课程设计:基于STM32的多功能播放器之小游戏

    4 游戏 4.1 功能介绍 4.1.1 设计思路 为了扩展开发板的应用,同时增加实验的难度和趣味性,我设计了一个类似赛车的小游戏.游戏中共有6条车道,同时有5个障碍物,用按键1和按键2控制赛车更换不同 ...

  7. 超声波测距系统的设计实现(基于STM32 )-硬件部分

    超声波测距是一种典型的非接触测量方式.超声波在气体.液体及固体中以不同速度传播,定向性好.能量集中.传输过程中衰减较小.反射能力较强.且超声波测距系统结构简单.电路易实现.成本低.速度快,所以在工业自 ...

  8. 智能手环功能模块设计_基于STM32实现智能手环设计

    龙源期刊网 http://www.qikan.com.cn 基于 STM32 实现智能手环设计 作者:付海生 陈婷婷 韩百科 涂曾兵 来源:<科学导报 · 学术> 2017 年第 10 期 ...

  9. 单片机课程设计:基于STM32的温湿度检监测报警系统的设计

    基于STM32的温湿度检监测报警系统 文章目录 基于STM32的温湿度检监测报警系统 前言 一.设计任务 二.系统硬件设计 1.元器件选用 2.系统模型设计 3.硬件连接 二.系统程序设计 1.程序流 ...

最新文章

  1. java tree json_treePanel json java后台
  2. iOS高级教程:处理1000张图片的内存优化
  3. Android相机的实现
  4. 应用场景的多样,奠定了区块链的未来
  5. redis 双写一致性 看一篇成高手系列 一
  6. Spring Boot 项目瘦身指南,瘦到不可思议!129M->1.3M
  7. 软件测试方法的分类细谈
  8. 【FPGA】——UART串口通信
  9. 软工视频(33~36)-用户界面设计
  10. jQuery中animate()的方法以及$(body).animate({scrollTop:top})不被Firefox支持问题的解决...
  11. 哈理工OJ 2274 Heroic Action(01坑背包)
  12. net stop sharedaccess命令 2009-1-15 11:10
  13. 如何由网址查找IP地址
  14. 关于人工智能AI的发展,边缘计算中的AI芯片
  15. Python爬虫——王者荣耀全皮肤拉取
  16. 1173 Problem V 《C语言程序设计》江宝钏主编-习题6-2-排列数
  17. 001 Python 字符串格式化 % 运算符
  18. Fluent中的压力类型
  19. ARMA-GARCH模型与单独的ARMA模型和GARCH模型有什么区别
  20. 机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)【关系类似“梯度下降法”<=>“直接求导法”】【EM“梯度下降”:先初始化一个随机值,然后通过迭代不断靠近真实值】

热门文章

  1. 红米5plus成功移植刷入ubuntu20.04
  2. wampserver使用教程
  3. 基于C/C++的log日志记录等级系统
  4. 中国省市code码数据,可以用于elementui省市联动
  5. 软件设计师-笔记(2)什么是浮点数 ,十进制转浮点数
  6. 做好APP推广的关键,给自己的APP取一个好名字Yopai.com
  7. python:ggplot(2)- 图形画法
  8. add python to path是什么意思_Python原来这么好学(PATH保存了与路径相关的参数安装时需要将Add Python to PATH行勾选)...
  9. 本科生学数据分析转行,能学会吗?
  10. ps读写ddr3里面的数据 zynq_ZYNQ_PL与PS的DDR交互