一、实物图

二、原理图

编号 名称 功能
1 VCC 电源正
2 TRIG 触发控制信号输入
3 ECHO 回响信号输出
4 GND 电源地

三、简介

由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物体测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人研制上也得到了广泛的应用。

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

基本工作原理:

超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回,超声波接收器收到反射波就立即停止计时。测试距离=(计时时间*声速)/2

四、电器特性

五、时序解析

(1)采用IO口TRIG触发测距,给最少10us的高电平触发信号。

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

(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

(4)测试距离=(高电平时间*声速)/2;

代码如下:

/****

*******获取距离函数

Hcsr04_temp:当前的环境温度

返回值:测得的距离(距离单位cm)

*****/

uint Hcsr04_GetDistance(uint Hcsr04_temp)

{

uint Hcsr04_distance;           //用于记录测得的距离

float Hcsr04_speed;             //保存超声波的速度值

TH2 = 0;             //使用定时器2作为计时器

TL2 = 0;

HCSR04_Trig = 0;     //给超声波模块一个高电平的开始脉冲

Hcsr04_Delay(20);

HCSR04_Trig = 1;

Hcsr04_Delay(20);

HCSR04_Trig = 0;

while(!HCSR04_Echo);    //等待超声波模块的返回脉冲

TR2 = 1;                //启动定时器,开始计时

while(HCSR04_Echo);     //等待超声波模块的返回脉冲结束

TR2 = 0;                //停止定时器,停止计时

Hcsr04_speed = 0.607*Hcsr04_temp+331.4;             //根据公式 v=0.607T+331.4 计算出当前温度值对应的超声波速度,这时的单位是“米/秒”

Hcsr04_speed = Hcsr04_speed/10000;                  //将超声波的速度从单位“m/s”转为“cm/us”,方便后面的计算

Hcsr04_distance=((TH2*256+TL2) * (12/FOSC) * Hcsr04_speed) / 2;           // 距离cm = (时间us * 速度cm/us) / 2

if(Hcsr04_distance > 500)  //把检测结果限制500厘米内

Hcsr04_distance = 500;

return Hcsr04_distance;

}

六、流程设计

首先初始化引脚,然后复位定时器计数值,接着给超声波一个高电平的开始信号,等待超声波模块的返回脉冲,接到返回脉冲,则开始计时,然后等待超声波模块的返回脉冲结束,如果结束,则停止计时。接下来通过温度补偿计算声波速度,通过距离=(时间*速度)/2最终得到距离值。最后判断距离值是否超过量程,如果超过量程则将距离值设置成最大量程值。

【mcuclub】超声波测距模块HC-SR04相关推荐

  1. hc sr04流程图_超声波测距模块工作原理_HC-SR04模块详解

    超声波测距模块有好多种类型,目前比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是目前来说测试距离比较远的一款了,另外还有比较 ...

  2. arduino超声波测距接线图详细_Arduino系列之超声波测距模块代码(一)

    这里我将简单介绍超声波测距模块 SR04超声波传感器: 是利用超声波特性检测距离的传感器,其带有两个超声波探头,分别用作于发射和接收超声波.范围在3-450cm. 工作原理: 超声波发射器向某一方向发 ...

  3. STM32单片机基于HAL库开发HC-SR04 超声波测距模块(终极版)

    参考: 某宝HC-SR04 超声波测距模块商品详情页 STM32L051C8T6 HAL库 输入捕获进行超声波测距 案例 STM32CubeMX学习笔记3--TIM2输入捕获(SR-04测距) cub ...

  4. HC-SR04超声波测距模块

    1.产品特点 HC-SR04超声波测距模块可提供2cm-400cm 的非接触式距离感测功能,测距精度可达高到3mm:模块包括超声发射器.接收器与控制电路. 基本工作原理:         (1)采用 ...

  5. stm32蓝牙模块和超声波测距模块

    蓝牙 蓝牙概念 蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接. [1] 蓝牙使当前的一些便携移动设备和计算 ...

  6. Arduino系列之超声波测距模块代码(一)

    这里我将简单介绍超声波测距模块 SR04超声波传感器: 是利用超声波特性检测距离的传感器,其带有两个超声波探头,分别用作于发射和接收超声波.范围在3-450cm. 工作原理: 超声波发射器向某一方向发 ...

  7. 通过串口打印--超声波测距模块测得距离

    通过串口打印--超声波测距模块测得距离 原理 超声波测距模块 串口传输 实战代码 原理 超声波测距模块 在这里首先需要了解超声波测距模块的原理.在我的这篇博客有很多介绍.超声波模块介绍 串口传输 串口 ...

  8. 51单片机 普中V2 超声波测距 报警 显示 基于MCS51单片机的超声波测距模块的开发

    基于MCS51单片机的超声波测距模块的开发 采用C51程序设计语言,完成下列功能要求. l 必选功能: (1) 超声波模块和单片机的接口设计,画出完整的电路原理图.(15分) (2) 开发板上电时,显 ...

  9. 学习HC-SR04超声波测距模块,代码附带卡尔曼滤波

    硬件引脚 VCC-供5V的电压(一定要是5v) GND-接地 Trig-HC-SR04超声波测距模块上的触发引脚,用于向模块发送一个10微秒的高电平触发信号,触发模块开始进行距离测量 Echo-用于接 ...

最新文章

  1. 剑指offer:面试题37. 序列化二叉树
  2. 鸿蒙系统2.0什么时候上线,华为官方:鸿蒙系统2.0上线,手机能否搭载鸿蒙操作系统?...
  3. django中csrftoken跨站请求伪造的几种方式
  4. Visualization Document Feb 12 16:42
  5. 【luogu P3378 堆】 模板
  6. Linux基础之-网络配置,主机名设置,ssh登陆,scp传输
  7. java 中iterator 和 collection接口源码
  8. how is my appointment opened in HCP
  9. 一维数组和二维数组的区别_数组指针和指针数组的区别
  10. 【HDU - 1254 】推箱子 (双bfs)
  11. java算法判断链表有没有闭环_前端算法系列之二:数据结构链表、双向链表、闭环链表、有序链表...
  12. 【Spring 工厂】注入详解 — Set注入(JDK内置类型,用户自定义类型)、构造注入(重载)
  13. php代码里面的居中,css代码如何居中
  14. java关闭服务_实现优雅地关闭Docker中的java服务
  15. 任意文件夹下打开cmd窗口
  16. mos管结电容等效模型_【详解各元器件等效电路】电阻、电容、电感、二极管、MOS管!...
  17. 停车场管理系统 Java语言
  18. Secure DFU环境搭建
  19. 关于ASP木马提升权限
  20. 108个Python精选库,看完收获丰富

热门文章

  1. 新字体引用本地运行可以获得,放到服务器上报404
  2. OllyDBG反汇编入门教程
  3. 我拿到了梦寐以求的字节跳动和腾讯双offer!知乎上转疯了!
  4. 计算机网络vtp,简单理解 VTP 协议与实战单臂路由
  5. python数学建模(四)微分方程模型
  6. Python : UnicodeEncodeError: 'gbk' codec can't encode character '\u200b' in position
  7. tcp_tw_reuse对客户端的作用
  8. 计算机应用标准化考场,标准化考场建设的方案.doc
  9. 从2019看2020前端发展趋势
  10. 可以吗?从 FireWire 设备引导 Linux