当前位置: 首页 > news >正文

嵌入式开发学习日志35——stm32之超声波测距

        单片机搭载超声波传感器模块进行距离测量,是单片机十分经典的应用,下面就来看看具体原理。

        超声波发射器首先会向外发射超声波,同时定时器开始计时,当超声波在空气中传播,接触到障碍物时,就会被反射回来,超声波接收器接收到反射波之后,定时器停止计时。

        由此,根据超声波在空气中的传播速度340m/s,可以测算出与障碍物之间的距离为340*t/2。

        那么内部具体是怎么运行的呢?

        超声波传感器总共有四个引脚:VCC、Gnd、Trig、Echo。首先,由单片机向trig引脚发射一个10us或以上的高电平信号,trig引脚接收到之后,让模块对外发射8个40khz的超声波,此时,Echo引脚就会自动变为高电平,当模块接收到反射回来的超声波时,Echo引脚会再次变为低电平。

        公式中需要的时间就是Echo引脚由高电平变为低电平前持续的时间。

        当然,超声波模块并不会只发射一次超声波后就停止,这是一个持续的过程,两次超声波的发射时间间隔大概在60ms左右,以保证信号足够稳定。

        知道原理后,又该如何用代码实现超声波测距呢?

        其实要注意到,单独的单片机定时器模块产生中断,并不能直接帮助我们确定传播时间,因为定时器模块加入的是我们自己设置的时间参数,真正的传播时间并不清楚,只能获得定时器产生中断的次数,因此这里还要结合外部中断,更准确地计算出传播时间。

        由于先前已经详细介绍过了EXTI以及定时器模块的代码编写,这里就不多赘述,直接来看中断函数的部分。

        这里的number就是用于计量定时器模块产生的中断次数,并不复杂。

        这里的flag变量适用于记录中断信号是上升沿还是下降沿,由于每次测量都需要重置定时器产生中断的次数,因此这里的传播时间和中断次数都要先赋值为0。

        当计量到下降沿时,说明echo引脚变为低电平,超声波模块接收到了反射回来的超声波,那么定时器关闭,停止计数,将记录的中断次数与每次中断设定的时间相乘后,就能得到传播时间。

http://www.dtcms.com/a/446533.html

相关文章:

  • 山东建设厅官方网站一级建造师搜索引擎平台
  • MATLAB计算有效干旱指数(Effective drought index, EDI)
  • 网站推广如何收费现在建一个网站一年费用只要几百元
  • 如何自己做游戏网站如何建设万网网站
  • 江苏省建设厅八大员考试报名网站石家庄有哪些公司可以做网站
  • 搭建Jenkins gitlab 环境
  • 企业做的网站费入什么科目江西网站备案
  • pink老师html5+css3day05
  • 哪里找人做网站织梦淘客网站
  • 网站开发原型法装个宽带多少钱
  • BTS7960 四轮运动控制 可行 前后左右
  • Linux学习笔记--i2c_Adapter驱动框架
  • 新乡做网站建设工程网站有哪些
  • liferay 做网站仿wordpress站
  • MySQL 中一条 SQL 语句的执行流程
  • 2025年--Lc162--H169.多数元素(数组和字符串)--Java版
  • wordpress搭建个人网站蚌埠市建设工程质监站网站
  • 中国建设銀行网站投诉电话wordpress 钩子列表
  • 腾讯云微服务平台TSF
  • 第125期:借助 n8n 构建 AI 智能体:10个自动化实践方案
  • 网站开发 案例wordpress怎么安装在宝塔软件
  • 网站权重对应的等级商丘至开网络科技有限公司
  • C++ 优先队列(priority_queue)深度解析
  • php 8.4.4 更新日志
  • 自己搭建网站做网上商城做系统网站赚钱
  • 【征文计划】基于Rokid CXR-M SDK 打造AI 实时会议助手:从连接到自定义界面的完整实践
  • 多模态推理的“思维之跃”:紫东太初4.0如何重塑AI认知边界
  • 实现 RTOS 操作系统 【零】内核编程实践
  • 做产品推广哪个网站好欧米茄表官网
  • 带后台的免费网站模板网站建设培训班上的讲话