使用Arduino连接HC-SR04超声波距离传感器的方法
距离传感器是机器人项目最有用的传感器之一。 HC-SR04是一种便宜的超声波距离传感器,可以帮助您的机器人在房间周围导航。通过一些努力和一个额外的组件,它也可以用作测量设备。在这篇文章中,您将学习到通过Arduino使用这个美妙的小设备所需要知道的一切。
HC-SR04超声波距离传感器
HC-SR04超声波距离传感器是一种便宜的设备,对于机器人和测试设备项目非常有用。这个微小的传感器能够测量自身和最近的固体物体之间的距离,如果您试图避免进入墙壁,这是非常好的信息!
HC-SR04可以直接连接到Arduino或其他微控制器,它的工作电压为5伏。它也可以与Raspberry Pi一起使用,但是由于HC-SR04需要5V电压,因此需要一对电阻来连接Pi的3.3V GPIO端口。
这种超声波距离传感器能够测量2厘米到400厘米之间的距离(对于那些不会说“公制”的人来说,大约在1英寸到13英尺之间)。这是一个低电流设备,所以它适用于电池供电设备。作为奖励,它甚至看起来很酷,就像一对Wall-E机器人的眼睛为您的最新机器人发明!
那么请继续阅读,并告诉您如何连接和使用HC-SR04超声波距离传感器。我们也会通过一些测试来看看它是多么准确,我们将看看我们如何能够提高精度。当然,我会有一些示例代码和项目供您试用。让我们开始吧!
HC-SR04的工作原理
超声波距离传感器使用超声波脉冲(超出人类听觉范围的声音)来检测它们与附近固体物体之间的距离。传感器由两个主要部分组成:
● 超声波发射机 - 发射超声波脉冲,它工作在40KHz。
● 超声波接收机 - 接收发射的脉冲。如果接收到它们,则会产生一个输出脉冲,其宽度可用于确定脉冲行进的距离。
HC-SR04有以下四个连接:
● VCC - 5V正电源。
● Trig - “触发器”引脚,驱动该引脚发送超声波脉冲。
● Echo - 当接收到反射信号时产生脉冲的引脚。脉冲的长度与发送信号被检测到的时间成正比。
● GND - 接地引脚。

该设备的工作过程如下:
1. 一个持续时间至少10微秒的5伏脉冲施加到Trigger引脚。
2. HC-SR04通过以40KHz发送8个脉冲来响应。这个8脉冲模式使得设备的“超声波签名”是独一无二的,使接收机能够区分发射模式和超声背景噪声。
3. 八个超声波脉冲通过远离发射机的空气传播。同时,Echo引脚变为高电平,开始形成回波信号的开始。
4. 如果脉冲信号不反射回来,则回声信号将在38毫秒(38毫秒)后超时并返回低电平。这会产生一个38毫秒的脉冲,表明传感器范围内没有任何障碍物。
5. 如果脉冲被反射回来,当收到信号时,Echo引脚变为低电平。这产生了一个脉冲,其宽度在150μs到25mS之间变化,这取决于信号被接收所花费的时间。
6. 接收到的脉冲宽度用于计算到反射物体的距离。请记住,脉冲表示信号被发送出去并反射回来的时间,所以你需要将结果除以2来得到距离。


下图显示了HC-SR04超声波距离传感器的尺寸以及有效操作角度。正如你所看到的,当待检测物体直接位于其前面时,传感器是最准确的,但是你可以在45度“视角”内得到物体的响应。文件建议将窗口限制在30度(两边15度)以获得准确的读数。

更多内容请参考以下链接:https://www.yiboard.com/thread-787-1-1.html
使用Arduino连接HC-SR04超声波距离传感器的方法的更多相关文章
- Arduino连接pH计
关于arduino连接ph,核心的东西就是对ph传感器返回的信号值进行一系列的操作,注意因为返回的信号很弱,而且外部环境对其影响也很大,所以需要在电路设计上加入一些功能,比如信号放大.滤波等,电路设计 ...
- arduino连接1602LCD方法
arduino连接1602LCD方法 参考代码:
- arduino连接12864LCD方法
arduino连接12864LCD方法,参考相关代码. https://blog.csdn.net/txwtech/article/details/95038386
- SSH连接不上Linux的解决方法
SSH连接不上Linux的解决方法: 连续弄了几次,今天早上终于把SSH连接虚拟机连接不通的问题解决了. 先简单说下概要: 主机装的是XP系统,虚拟机用的是red hat Linux. 我用的是nat ...
- 超强Altium Designer焊盘为梅花状连接,过孔为直接连接的方法
AltiumDesigner6焊盘为梅花(或十字)状连接,过孔为直接连接的方法: 一.完成后效果 二.PCB规则设置(PCBRULES) 三.添加IsVia+ 四.添加InNamedPolygon() ...
- ZooInspector 连接不到 Zookeeper 的解决方法
Zookeeper正常启动后,在使用 ZooInspector 连接 Zookeeper 时出现了连接不上的问题. [root@localhost bin]# zkServer.sh start Zo ...
- C++连接mysql数据库的两种方法
本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...
- 远程首次连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析(转)
PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的 MYSQL开启了DNS的反向解析,在MY.INI(WINDOW ...
- python学习--python 连接SQLServer数据库(两种方法)
1. python 学习.安装教程参照: http://www.runoob.com/python/python-tutorial.html 2. 集成开发环境 JetBrains PyCharm C ...
随机推荐
- C# 将DataTable数据写入到txt文件中
见代码: /// <summary> /// 将DataTable里面的内容写入txt文件 /// </summary> /// <param name="dt ...
- 【计算机视觉基础】IPM
IPM code #if 0 void xyp2ipmp(cv::Mat& xyp, cv::Mat& ipmp, cv::Mat& xylim, Size& sz){ ...
- OpenLDAP + phpLDAPadmin
一.基础设置 1.1 环境说明 Centos 7.5 openldap 1.2 关闭防火墙和selinux setenforce sed -i 's/SELINUX=enforcing/SELINUX ...
- [EXP]CVE-2019-9621 Zimbra<8.8.11 GetShell Exploit(配合Cscan可批量)
发现时间 2019年03月18日 威胁目标 采用Zimbra邮件系统的企业 主要风险 远程代码执行 攻击入口 localconfig.xml 配置文件 使用漏洞 CVE-2019-9621 受影响应 ...
- 字符串A转换到字符串B,只能一次一次转换,每次转换只能把字符串A中的一个字符全部转换成另一个字符,是否能够转换成功
public class DemoTest { public static void main(String[] args) { System.)); } /** * 有一个字符串A 有一个字符串B ...
- 资源对象的池化, java极简实现,close资源时,自动回收
https://www.cnblogs.com/piepie/p/10498953.html 在java程序中对于资源,例如数据库连接,这类不能并行共享的资源对象,一般采用资源池的方式进行管理. 资源 ...
- JS Web API 拖拽对话框案例
<style> .login-header { width: 100%; text-align: right; height: 30px; font-size: 24px; line-he ...
- RHEL6.5 移植使用CentOS 的YUM 步骤
问题:使用 Red Hat Enterprise Linux Server(RHEL) yum安装软件时显示 This system is not registered with RHN. RHN s ...
- java之spring mvc之ajax
1.可以使用servletAPI来实现 ajax Controller 类 @Controller public class AjaxController { @RequestMapping(&quo ...
- ashx 接受 post json 请求
HttpContext.Current.Response.ContentType = "application/json"; HttpContext.Curr ...