HC-SR04超声波模块
1.硬件原理图
2.传感器参数表
电气参数 | HC-SR04 超声波模块 |
---|---|
工作电压 | DC 5 V |
工作电流 | 15mA |
工作频率 | 40kHz |
最远射程 | 4m |
最近射程 | 2cm |
测量角度 | 15 度 |
输入触发信号 | 10uS 的 TTL 脉冲 |
输出回响信号 | 输出 TTL 电平信号,与射程成比例 |
规格尺寸 | 452015mm |
3.引脚功能表
HC-SR04实物图
HC-SR04功能引脚表
引脚 | 说明 |
---|---|
VCC | 接5V |
GND | 地线 |
TRIG | 触发控制信号输入 |
ECHO | 回响信号输出 |
4.工作原理
(1)给超声波模块接入电源和地
(2)给脉冲触发引脚(trig)输入一个长为20us的高电平方波
(3)输入方波后,模块会自动发射8个40KHz的声波,与此同时回波引脚echo端的电平会由0变为1;(此时应该启动定时器计时)
(4)当超声波返回被模块接收到时,回波引脚端的电平会由1变为0;(此时应该停止定时器计数),定时器记下的这个时间即为超声波由发射到返回的总时长
(5)根据声音在空气中的速度为344米/秒,即可计算出所测的距离。
超声波时序图
- 以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
- 建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
- 公式: uS/58=厘米 uS/148=英寸; 距离= 高电平时间*声速(340M/S)/2
5.流程图
硬件运行流程图
时间的输入捕获流程图
6.注意事项
(1)公式中为什么要除以58?
我们作一下单位换算,34,300除以1,000,000厘米/微秒。 即为:0.0343厘米/微秒
再换一个角度,1/(0.0343 厘米/微秒) 即:29.15 微秒/厘米。1厘米就29.15微秒。
但是发送后到接收到回波,声音走过的是2倍的距离。所以实际距离就是1厘米,对应58.3微秒。
(2)高电平的测量
- 我们使用通用定时器的输入捕获来测量高电平时间,所以使用的过程中要注意结果是否溢出
(3)消抖
- 由于超声波测量一次的时间很短,测量一次很有可能出错,所以我们可以多测几次求平均值来进行消抖。
(4)使用的注意事项
- 此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。
- 测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果
7.基于stm32-mini的代码模块
Ultrasonic.h模块
#ifndef __ULTRASONIC_H
#define __ULTRASONIC_H
#include "sys.h"#define trig PBout(2) //超声波输出
#define echo PBin(3) //超声波输入void TIM3_Int_Init(u16 arr,u16 psc); //计数器使能
void Ultrasonic_Init(void); //超声波初始化void open_Ultrasonic(void); //打开超声波
void close_Ultrasonic(void); //关闭超声波int accept_Ultrasonic(void); //计算距离
int get_val(void); //消抖#endif
Ultrasonic.c模块
#include "Ultrasonic.h"
#include "delay.h"
#include "usart.h"
#include "sys.h"
int flag=0;void TIM3_IRQHandler(void){if(TIM3->SR&0X0001){flag++;}TIM3->SR&=~(1<<0);
}void TIM3_Int_Init(u16 arr,u16 psc) //计数器使能
{ RCC->APB1ENR|=1<<1; //TIM3时钟使能 TIM3->ARR=arr; //设定计数器自动重装值 TIM3->PSC=psc; //预分频器设置TIM3->DIER |= 1<<0;MY_NVIC_Init(1,3,TIM3_IRQn,2);
}void Ultrasonic_Init(void){ //超声波初始化TIM3_Int_Init(5000,71);RCC->APB2ENR|=1<<3; //时钟使能GPIOB->CRL&=0XFFFFF0FF; //pb2 trig推挽输出GPIOB->CRL|=0X00000300;GPIOB->ODR&=~(1<<2); GPIOB->CRL&=0XFFFF0FFF; //pb3 echo浮空输入GPIOB->CRL|=0X00004000;}void open_Ultrasonic(void){ //发射超声波trig=1; delay_us(20);trig=0; flag=0;
}void close_Ultrasonic(void){ //关闭超声波TIM3->CR1&=0<<0; //关闭定时器1 TIM3->CNT=0;
}int accept_Ultrasonic(void){ //计算距离int val=0;open_Ultrasonic();while(echo==0){ }TIM3->CR1|=0x01; //使能定时器1 TIM3->CNT=0;while(echo==1){ }val=(flag*5000+TIM3->CNT)*0.017;close_Ultrasonic();return val;
}int get_val(void){ //消抖int i;int val,sum=0;for(i=0;i<10;i++){sum += accept_Ultrasonic();}val=sum*0.1;return val;
}
HC-SR04超声波模块相关推荐
- hc sr04流程图_超声波测距模块工作原理_HC-SR04模块详解
超声波测距模块有好多种类型,目前比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是目前来说测试距离比较远的一款了,另外还有比较 ...
- hc sr04流程图_超声波传感器HC-SR04完整应用以及程序讲解
带有Arduino的超声波传感器HC-SR04完整应用指南 本文是有关流行的超声波传感器HC – SR04的应用指南.我们将解释其工作原理,向您展示其某些功能,并分享一个您可以遵循的Arduino项目 ...
- 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)
基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...
- HC-SR04超声波模块的使用(stm32f103c8t6/HAL)(超详细)
系列文章目录(STM32常用外设/HAL库版) 一.HC-SR04超声波模块的使用(本篇) 二.OLED的HAL库代码介绍及使用 三.编码电机以及双电机驱动 本文主要介绍超声波模块HC-SR04的两种 ...
- Linux驱动 | HC-SR04超声波模块驱动
HC-SR04超声波模块 工作原理参考: 超声波模块_star-air的博客-CSDN博客_超声波模块 https://blog.csdn.net/qq_41262681/article/detail ...
- arduino 多个超声波模块HC-SR04 Newping.h库的使用——摆脱万恶的阻塞等待
目录 前言(一点废话) 问题的发现 Newping.h库 简介 安装 例程1:定时器示例TimerExample 例程2:超声波模块的读取NewPingExample 例程3:中断读取超声波NewPi ...
- 收发一体超声波测距离传感器模块_超声波模块HC-SR04简介以及编程
之前做避障车用到了超声波模块,总结了下资料 1.本模块性能稳定,测度距离精确,模块高精度,盲区小. 产品应用领域: 机器人避障 物体测距 液位检测 公共安防 停车场检测 . 2. 主要技术参数: 1: ...
- Arduino实现使用超声波模块测距
硬件材料: Arduino UNO R3.超声波模块.面包板一块.连接线若干 超声波模块如下图,一个超声波模块价格在5元以内. arduino实物连接图如下: 源码: void setup() { ...
- 【雕爷学编程】Arduino动手做(58)---SR04超声波传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 快速上手Arduino -- 打印超声波模块测距信息到OLED屏幕上
文章目录 快速上手Arduino -- 打印超声波模块测距信息到OLED屏幕上 实现效果: 模块说明: 引脚接线方法: 程序源码 附录 快速上手Arduino – 打印超声波模块测距信息到OLED屏幕 ...
最新文章
- 微信朋友圈里的十五种类型,笑死了!
- 使用repeater,遍历数据,不规则排序,不同的样式之间切换
- 虚拟机+可信+云计算
- 《构建之法》(第四、十七章)读书笔记
- SQL基本语法 case when 应用
- poj 3071 Football 概率dp
- C# WPF DataGrid在Grid中自适应窗体大小
- Excel:INDIRECT函数
- 立创EDA超详细的PCB设计流程
- 删除微云同步助手计算机快捷访问,腾讯微云同步助手使用说明:设置同步文件,方便随时查看...
- 数据结构与算法碎碎念之运用递归处理问题
- 三问新能源车险:亲自下场卖保险,意欲何为?
- 拿到别人提供的虚拟机需要做的几件事情
- Kafka 的 Java 消费者如何管理 TCP 连接?
- 昆十四中2021年高考成绩查询,昆明第十四中学2021年排名
- linux vim取消加密,linux 使用vim文件加密/解密的方法
- mysql用了索引为什么还是查询很慢?
- 小白练打字:金山打字通
- 《程序员的七堂课》读书笔记:职业规划
- 计算机基础里适合做微课的知识点,微课在计算机基础教学中的要求和应用