HC-SR04 超声波原理图讲解与时序分析与arduino使用
我开源在这里了,可以在这里下载全套资料:http://wiki.mosiwi.com/File:Ultrasonic.rar
导语
近期想自己做超声波模块,在网上找了很多资料,大多是笼统的讲解了一下,有的还是存在误导的数据,一怒之下干脆自己动手从新理一遍。
原理图
网上大多数流传的是类似这份电路图,但是市面上流行的是另一个加密的电路图(接收部芯片抹掉丝印),但是他们的工作原理基本是相同的。也就是放大–>选频(40KHz)–>放大–>比较。(具体的选频元件选取与设计参数本人也是半桶水,希望大神留言告知)
时序
比较脚拉低:NET9, 接收触发信号:NET10
上面的时序图拿逻辑分析仪按正常接线是测不出来的,里面有个坑,那就是NET9脚其实是漏极开路,直接接到逻辑分析仪上会干扰超声波模块正常工作,并且抓取不到时序图。在这里我强行外部上拉了一个1K电阻,虽然超声波接收到的数据是错误,但是起码能抓取到它工作原理的时序图。
trig引脚需要一个10us的高电平触发脉冲–>接着把NET9引脚拉低(排除干扰信号)–>模块发射8个40KHz的脉冲–>启动定时器,启动中断–>等待NET10的接收触发中断信号–>关闭定时器,关闭中断,计算计时器时间–>通过echo引脚输出与计时器时间一样的高电平脉冲。
总结分析
比较器
1、UC直流分析:
当超声波模块没有接收到任何信号的时候,B点的电压为2.5V(由于R7和R16分压2.5V)。
2、NET9为漏极开路(忽略R10影响):
A点的电压为2.41V,B-A=0.09V,非常容易触发UD输出高低电平,很容易受干扰信号影响。
3、NET9输出低电平(忽略R10影响):
A点的电压约为0.96V,B-A=1.54V,不容易触发UD输出高低电平,不容易受干扰信号影响。
4、NET9输出低电平,假设B点输出0-5V交流信号(考虑R10影响):
此时A点的电压约为0.96V。
当B点为0V时,C点的电压约为0.075V,电压:A>C,Q1三极管关断,D点电压约为4.62V。在B点电压为0–0.89V之间,Q1三极管一直出于关闭状态。
当B点的电压约为0.90V的时候,C点约为0.962V,电压:C>A,UD输出高电平,Q1三极管导通;当Q1三极管导通,D点的电压瞬间变为0.3V(三极管的导通压降),C点的电压瞬间变为0.89V,此时电压:A>C,UD输出低电平,Q1三极管断开;此时Q1三极管是出于重复的开与关状态;B点在0.90—0.972V这段电压内,Q1三极管一直出于重复开关状态,如时序图的接收触发部分。
当B点的电压在0.973—5V之间,Q1三极管一直出于导通状态。
4、NET9输出高电平(漏极开路):
超声波模块中断关断、定时器不计时、不处理NET10的信号,UD处于高度灵敏状态,输出带有干扰信号的脉冲。
备注:此为个人理解,有不同见解的大神希望能留言告知。
认识超声波
可在空气中传播的超声波频率,大约介于20~200KHz之间,其衰减程度与频率成正比(即频率越高,传播距离越短)
在室温20°C的环境中,声波的传输速度约为344m/s(声音在水中传播的速度比在空气快60倍),因此,假设超声波往返的时间为600μs,可通过公式:
求得:被测物的距离为10.3cm。
影响声音传播速度的因素:
1、空气的密度会影响声音的传播速度,空气的密度越高,声音的传播速度越快,而空气的密度又与温度密切相关,考虑温度变化的声音传播速度的近似公式:
速度=V0+0.6×T
其中, V 0 V_0 V0:声音在0摄氏度时的传播速度331.5米/秒。T:温度
2、物体的形状和材质会影响超声波传感器的效果和准确度,探测表面平整的墙壁和玻璃时,声波将会入射角度反射回来;只要物体表面的坑洞尺寸小于声波波长的 1 4 \frac{1}{4} 41,即可视为平整表面。波长计算公式:
超声波传感器简介
超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有4个引脚:VCC(正极)、Trig(触发)、Echo(回应)、GND(接地),主要参数:
工作电压与电流 :5V、15mA。
感测距离 :2~400cm
感测角度:不大于15°。
被测物的面积不要小于50cm²并且尽量平整。
在超声波模块的触发脚位输入10微妙以上的高电位,即可发射超声波,发射超声波之后,与接收到传回的超声波之前,“响应”脚位呈现高电位。因此,程序可从“响应”脚位的高电位脉冲持续时间,换算出被测物的距离。
代码及解析:
pulseIn():用于检测引脚输出的高低电平的脉冲宽度。
pulseIn(pin, value)
pulseIn(pin, value, timeout)
Pin—需要读取脉冲的引脚
Value—需要读取的脉冲类型,HIGH或LOW
Timeout—超时时间,单位微秒,数据类型为无符号长整型。
使用方法及时序图:
1、使用Arduino数字引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能。
2、触发后,模块会自动发送8个40KHz的超声波脉冲,并自动检测是否有信号返回。这步会由模块内部自动完成。
3、如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用pulseIn()函数获取到测距的结果,并通过公式计算出距被测物的实际距离。
接线图:
Arduino UNO R3 | HC-RS04 |
---|---|
+5V | +5V |
D7 | Trigger |
D6 | Echo |
GND | GND |
代码:
const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensorvoid setup() {Serial.begin(9600); // Starting Serial Terminal
}void loop() {long duration, inches, cm;pinMode(pingPin, OUTPUT);digitalWrite(pingPin, LOW);delayMicroseconds(2);digitalWrite(pingPin, HIGH);delayMicroseconds(10);digitalWrite(pingPin, LOW);pinMode(echoPin, INPUT);duration = pulseIn(echoPin, HIGH);inches = microsecondsToInches(duration);cm = microsecondsToCentimeters(duration);Serial.print(inches);Serial.print("in, ");Serial.print(cm);Serial.print("cm");Serial.println();delay(100);
}long microsecondsToInches(long microseconds) {return microseconds / 74 / 2;
}long microsecondsToCentimeters(long microseconds) {return microseconds / 29 / 2;
}
HC-SR04 超声波原理图讲解与时序分析与arduino使用相关推荐
- hc sr04流程图_超声波传感器HC-SR04完整应用以及程序讲解
带有Arduino的超声波传感器HC-SR04完整应用指南 本文是有关流行的超声波传感器HC – SR04的应用指南.我们将解释其工作原理,向您展示其某些功能,并分享一个您可以遵循的Arduino项目 ...
- 51单片机超声波测距带语音播报(源程序+原理图+原理图讲解)
本设计 51单片机超声波测距带语音播报(源程序+原理图+原理图讲解) 原理图:Altium Designer 程序编译器:keil 4 编程语言:C语言 编号S0004 功能说明: 1.本设计采用ST ...
- 怎么查php电路板电路图,怎么看电路板原理图?电路板原理图讲解_电工基础知识_电工技术-电工最常见电路...
怎么看电路板原理图?电路板原理图讲解 1.电路板原理-简介 电路板(Printed Circuit Board,简称PCB),又称线路板.PCB板.铝基板.高频板.超薄线路板.超薄电路板.印刷(铜刻蚀 ...
- 13.STM32超声波模块讲解与实战
目录 1.超声波模块讲解 2.超声波时序图 3.超声波测距步骤 4.项目实战 1.超声波模块讲解 超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收.电路板上有4个引脚:VCC G ...
- hc sr04流程图_HC-SR04超声模块示例代码/原理图/说明书等全套资料
本设计分享的是HC-SR04超声模块实例代码/原理图/说明书等全套资料.HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm:该HC-SR04超声模块包括 ...
- hc sr04流程图_超声波测距模块工作原理_HC-SR04模块详解
超声波测距模块有好多种类型,目前比较常用的有URM37超声波传感器默认是232接口,可以调为TTL接口,URM05大功率超声波传感器测试距离能到10米,算是目前来说测试距离比较远的一款了,另外还有比较 ...
- 【平衡小车制作】(一)硬件原理图讲解(超详解)
大家好,我是小政.之后的一系列文章我将介绍我玩平衡小车的过程以及遇到的一些问题,将这些内容记录下来分享给大家,也让大家少走一些弯路.接下来我将从硬件框架选择.软件编程.PID算法.PID调参.蓝牙 ...
- 【雕爷学编程】Arduino动手做(58)---SR04超声波传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 七、ILI2511原理图讲解
目录 7.1 芯片简介 7.2 Sensor 相关电路 7.2.1 升压电路 7.2.2 防水电路 7.2.3 TX与RX 7.3 通讯电路 7.3.1 I2C接口电路 7.3.2 UART接口电路 ...
- 国信长天单片机竞赛训练之原理图讲解及常用外设原理(遗失的章节-零)
目录 基本外设 1.1锁存器,led灯,蜂鸣器,继电器及注意事项 1.2 数码管(板载共集成8位共阳级数码管),数码管分段选和位选 1.3 矩阵键盘和独立键盘 1.4 数码管消影: 1.5 按键的长按 ...
最新文章
- 侏罗纪怪兽世界怎么登陆服务器未响应,全金属怪物进不去怎么解决
- c++中求字符串数组的min/max
- 自定义select 三角样式
- 使用parted给大于2T的磁盘分区
- java logger 静态,java11教程--公共静态接口System.Logger
- StackOverflow 上面最流行的 7 个 Java 问题!| 值得一看
- 线性单链表存储结构c语言代码,单链表定义-(线性表的链表存储结构)
- mysql 变量生命周期_Go: 延长变量的生命周期
- MRFC-使用VXML、CCXML
- 南京师范大学汤国安教授《地理信息与人类生活》系列精品课程(5集全)
- html 左侧居中对齐,HTML的居中对齐
- 卢卡斯(Lucas)定理
- kprobe与perf probe使用简单记录
- STM32F103C8T6多通道adc采集(3通道)
- Android图片加载优化方案
- 大数据金融,这个“跨界整合”会带来什么
- [144]如何用VBS编写一个简单的恶搞脚本
- 限制guest账号访问硬盘权限
- linux zip命令打包压缩文件目录
- 浏览器主页被劫持 解决方法
热门文章
- EINT、DINT、ERTM、DRTM和INTM、DBGM解析
- kubuntu与ubuntu切换
- C# MVC 过滤器
- order by 升序和降序排列显示
- 程序员养生-人体白发的机制及治疗、调养恢复
- win10重置网络命令_WIN10重置网络的操作方法
- [I T]深圳唯冠与苹果达成和解协议后被指拖欠律师费遭起诉
- 计算机桌面文件删除不掉是怎么了,小马教你桌面上文件夹删不掉
【设置方法】
的办法_...
- 基于DPABI和SPM12的任务态fMRI分析笔记2——统计检验
- 在上海、苏州、深圳、长沙从“蜗居”到“安家”,8090后要付出多少?