【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块

news2024/11/14 2:50:53

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百一十四:US-015 高分辨超声波测距模块 超声波传感器 US-020升级版

在这里插入图片描述
超声波

是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz-20000Hz。因此,我们把频率高于20000赫兹的声波称为“超声波”。通常用于医学诊断的超声波频率为1兆赫兹-30兆赫兹。

在这里插入图片描述
在这里插入图片描述
拉扎罗·斯帕拉捷(Lazzaro Spallanzani,1729—1799)
在人类对自然的认识还没有达到一定高度之前,人们理所当然地认为所有的动物都是靠眼睛来识别物体的方向和位置的。后来事实证明,这种想法是错误的。首先揭开这个秘密的是拉扎罗·斯帕拉捷(Lazzaro Spallanzani,1729—1799),他是意大利著名的博物学家、生理学家和实验生理学家。他曾经做过四个关于蝙蝠的实验,揭示了蝙蝠靠耳朵而不是眼睛识别物体和捕捉猎物的事实,为超声波的研究提供了理论基础。

斯帕拉捷习惯晚饭后在附近的街道上散步,他常常看到,很多蝙蝠灵活地在空中飞来飞去,能在非常黑暗的条件下灵巧地躲过各种障碍物去捕捉飞虫,这个现象引起了他的好奇,蝙蝠凭什么特殊本领在夜空中自由自在地飞行呢,难道是因为它有一双可以在黑夜中洞悉一切的敏锐眼睛吗?

为了验证自己的猜想,他做了第一个蝙蝠实验。1793年夏季的一个夜晚,斯帕拉捷走出家门,放飞了关在笼子里做实验用的几只蝙蝠。只见蝙蝠们抖动着带有薄膜的肢翼,轻盈地飞向夜空,并发出自由自在的“吱吱”叫声。斯帕拉捷见状,不禁大叫出声,因为在放飞蝙蝠之前,他已经蒙上了蝙蝠的双眼,“蒙上眼的蝙蝠怎么能如此敏捷地飞翔呢?”他感到百思不得其解,下决心一定要解开这个谜。

斯帕拉捷想到: “既然不是靠眼睛来辨别障碍物,那么会不会是鼻子在发挥作用呢?”于是他又做了第二个实验。这一次他把蝙蝠的鼻子堵住,在夜晚放了出去,结果,蝙蝠还是照样飞得轻松自如。“既然眼睛和鼻子都完全没有对蝙蝠的飞翔产生影响,那么蝙蝠又是依靠什么来躲避障碍物和捕捉食物呢?奥秘会不会在翅膀上呢?”于是斯帕拉捷又做了第三次实验。他这次在蝙蝠的翅膀上涂了一层油漆。然而,和前两次一样,这也丝毫没有影响到它们的飞行。“眼睛、鼻子、翅膀都不是蝙蝠辨别物体的因素,那到底会是什么呢?”斯帕拉捷感到非常困惑。最后,斯帕拉捷又把蝙蝠的耳朵塞住,进行了第四次实验。这一次,飞上天的蝙蝠再也没有了之前矫健的身手,而是和一个喝醉酒的人一样,东碰西撞的,很快就跌了下来。斯帕拉捷这才恍然大悟,原来,蝙蝠是靠听觉来确定方向,捕捉目标的。

斯帕拉捷的新发现引起了人们的震动,这完全打破了人们的常规认识。从此,许多科学家进一步研究了这个课题。最后,人们终于弄清楚: 蝙蝠是利用超声波(频率高于20000Hz的声波)在夜间导航的(图3.21)。它的喉头发出一种超过人耳听阈的高频声波,这种声波沿着直线传播,一旦碰到物体就迅速返回来,它们用耳朵接收了这种返回来的超声波,使它们能够做出准确的判断,引导它们飞行。超声波的科学原理现已广泛地运用到航海探测、导航和医学中。

在这里插入图片描述
超声波测距原理
超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t(秒),就可以计算出发射点距障碍物的距离(s),即:s=340t/2)

在这里插入图片描述
US-015超声波测距模块

US-015是目前市场上分辨率最高,重复测量一致性最好的超声波测距模块;US-015的分辨率高于1mm,可达0.5mm,测距精度高;重复测量一致性好,测距稳定可靠。US-015超声波测距模块可实现2cm~4m的非接触测距功能,供电电压为5V,工作电流为2.2mA,支持GPIO通信模式,工作稳定可靠。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百一十四:US-015 高分辨超声波测距模块 超声波传感器 US-020升级版

项目:测试距离(单位mm)

原理:声波在空气中传播速度为340m/s,根据计时器记录时间t,即可算出发射点距离障碍物的距离S,即S=340m/s*t/2,这就是所谓的时间差测距法。

*/



unsigned int EchoPin = 2;        // connect Pin 2(Arduino digital io) to Echo at US-015

unsigned int TrigPin = 3;        // connect Pin 3(Arduino digital io) to Trig at US-015

unsigned long Time_Echo_us = 0;

unsigned long Len_mm  = 0;



void setup(){  //Initialize

  Serial.begin(9600);      //Serial: output result to Serial monitor

  pinMode(EchoPin, INPUT);  //Set EchoPin as input, to receive measure result from US-015

  pinMode(TrigPin, OUTPUT);  //Set TrigPin as output, used to send high pusle to trig measurement (>10us)

}



void loop(){

  digitalWrite(TrigPin, HIGH);  //begin to send a high pulse, then US-015 begin to measure the distance

  delayMicroseconds(20);      //set this high pulse width as 20us (>10us)

  digitalWrite(TrigPin, LOW);    //end this high pulse

  Time_Echo_us = pulseIn(EchoPin, HIGH);          //calculate the pulse width at EchoPin,

  if((Time_Echo_us < 60000) && (Time_Echo_us > 1))    //a valid pulse width should be between (1, 60000).

 {

    Len_mm = (Time_Echo_us*34/100)/2;    //calculate the distance by pulse width, Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)

    Serial.print("Present Distance is: ");  //output result to Serial monitor

    Serial.print(Len_mm, DEC);        //output result to Serial monitor

    Serial.println("mm");            //output result to Serial monitor

  }

  delay(1000);                  //take a measurement every second (1000ms)

}

实验串口返回情况

在这里插入图片描述

Arduino实验开源代码之二

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百一十四:US-015 高分辨超声波测距模块 超声波传感器 US-020升级版

项目:超声波测距(单位cm)

*/



const int TrigPin = 3; //发出超声波

const int EchoPin = 2; //收到反射回来的超声波

float cm; //因为测得的距离是浮点型的



void setup(){

  Serial.begin(9600); //设置波特率

  pinMode(TrigPin, OUTPUT);

  pinMode(EchoPin, INPUT);

}



void loop(){

  digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin

  delayMicroseconds(2);    // delayMicroseconds在更小的时间内延时准确

  digitalWrite(TrigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(TrigPin, LOW); //通过这里控制超声波的发射

  cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm

  cm = (int(cm * 100.0)) / 100.0; //保留两位小数

  Serial.print("Distance:");

  Serial.print(cm);

  Serial.print("cm");

  Serial.println();

  delay(1000);

}

实验串口返回情况

在这里插入图片描述
Arduino实验场景图

在这里插入图片描述

实验开源图形编程(Mind+、编玩边学)

在这里插入图片描述
实验串口返回情况

在这里插入图片描述
实验开源图形编程(Mind+、编玩边学)

在这里插入图片描述
实验开源仿真编程(Linkboy V4.62)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【免费】【sci】考虑不同充电需求的电动汽车有序充电调度方法(含matlab代码)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现sci文献《A coordinated charging scheduling method for electric vehicles considering different charging demands》&#xff0c;主要实现电动汽车协调充电调度方法&#xff0c;该方法主要有以…

如何使用PyTorch 在 OpenAI Gym 上的 CartPole-v0 任务上训练深度 Q 学习(DQN)智能体

强化学习&#xff08;DQN&#xff09;教程 本教程说明如何使用 PyTorch 在 OpenAI Gym 上的 CartPole-v0 任务上训练深度 Q 学习&#xff08;DQN&#xff09;智能体。 任务 智能体必须在两个动作之间做出决定-向左或向右移动推车-以便使与之相连的杆子保持直立。 您可以在 G…

存储笔记7 NAS

NAS  Describe NAS, its benefits and components  Discuss different NAS implementations  Describe NAS file-sharing protocols  Discuss NAS management options File Sharing Environment 文件系统&#xff1a;存储组织数据文件的结构化方式文件共享 网络存储…

python3GUI--图片浏览器By:PyQt5(附源码)

文章目录 一&#xff0e;前言二&#xff0e;展示1.主界面2.添加图片3.多级目录4.查看文件信息5.调整UI布局 三&#xff0e;源代码1.image_god_main_v.py2.image_god_GUI.py 四&#xff0e;总结 一&#xff0e;前言 本次使用PyQt5开发一款图片浏览器&#xff0c;本篇主要练习QD…

AIGC新时代,注意政策走向,产业方向,拥抱可信AI。需要了解基本理论,基础模型,前沿进展,产品应用,以及小小的项目复现

AIGC&#xff08;AI-Generated Content&#xff0c;AI生成内容&#xff09;是指基于生成对抗网络&#xff08;GAN&#xff09;、大型预训练模型等人工智能技术的方法&#xff0c;通过对已有数据进行学习和模式识别&#xff0c;以适当的泛化能力生成相关内容的技术。类似的概念还…

免费、不用部署SD:AI二维码制作教程

大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 最近&#xff0c;风格化的AI二维码&#xff0c;应该没少见吧。生成的原理大家大概也知道&#xff0c;主要通过stable diffusion和一些插件来完成&#xff0c;但对…

【Linux】HTTPS协议

目录 &#x1f37a;前言&#x1f37b;HTTPS协议原理&#x1f380;1、概念&#x1f381;2、加密和解密&#x1f382;3、常见加密方式&#x1f341;3.1、对称加密&#x1f342;3.2、非对称加密 &#x1f383;4、数据摘要和数据指纹&#x1f364;5、HTTPS工作原理&#x1f338;5.1…

学生速看!免费领取一台阿里云服务器全流程

阿里云学生服务器优惠活动&#xff1a;高效计划&#xff0c;可以免费领取一台阿里云服务器&#xff0c;如果你是一名高校学生&#xff0c;想搭建一个linux学习环境、git代码托管服务器&#xff0c;或者创建个人博客网站记录自己的学习成长历程&#xff0c;拥有一台云服务器是很…

零基础速成simulink代码生成——简单滤波器实现2

simulink setting 找到model settings solver求解器配置 Code Generation 代码生成配置 生成代码报告 添加stateflow注释 可以将变量保存在定义的文件(选) 实践 简单一阶滤波器

鼠标键盘实验

文章目录 USB参考资料USB设备STM32F407USB 硬件连接软件移植官方HIDSTM32F4USB通信库 USB参考资料 ①《STM32F4xx中文参考手册》-第30章 全速USB on-the-go(OTG_FS) ②光盘&#xff1a;STM32参考资料:STM32 USB 学习资料-CD00289278.pdf(UM1021) ③光盘&#xff1a;STM32参考资…

Android 14 新特性:语法性别 Grammatical Gender

背景 如同汉语里的他、她、它&#xff0c;英语里的 He、She、it&#xff0c;很多语言都存在依据性别、对象不同而造成的语法差异&#xff0c;甚至不仅限于名词&#xff0c;还涉及到形容词、动词等&#xff0c;复杂得多。 而这部分语言所涉及到的人群多达 30 亿之众&#xff0…

【树形DP+可重集排列】至至子的公司排队

好屌的题 F-至至子的公司排队_牛客小白月赛55 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 其实题目问的就是&#xff0c;森林的拓扑序有几种 那么我们先去考虑一棵树的拓扑序有几种 这个可以用树形DP来解决 设dp[u]为&#xff0c;以u为根的子树的拓扑序的种类数&…

【Java】项目中大批量数据查询导致OOM

文章目录 背景内存溢出的具体原因错误模拟问题复现解决办法流式查询和分页查询的使用场景查询数据的建议 背景 项目中有时候一次性将大批量数据都查出来到内存中导致内存占用过多很可能会导致内存溢出 内存溢出的具体原因 在JVM内存结构中分为以下几个模块 程序计数器虚拟机…

SSL协议,一文带你了解

SSL简介 SSL&#xff08;Secure Sockets Layer&#xff09;是一种安全协议&#xff0c;用于保护互联网上的数据传输安全。SSL协议最初由网景公司开发&#xff0c;现在已经被TLS&#xff08;Transport Layer Security&#xff09;协议所取代。SSL协议和TLS协议都是为了保护数据传…

一文带你弄懂【时间复杂度】

文章目录 算法时间复杂度时间复杂度计算常见的时间复杂度时间复杂度的差异 总结 算法 算法&#xff08;Algorithm&#xff09;是求解一个问题需要遵循的&#xff0c;被清楚指定的简单指令的集合。 一个算法的评价主要从时间复杂度和空间复杂度来考虑。而时间复杂度是一个函数…

Netty核心技术四--Netty概述

1. 原生NIO存在的问题 NIO 的类库和 API 繁杂&#xff0c;使用麻烦&#xff1a;需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。需要具备其他的额外技能&#xff1a;要熟悉 Java 多线程编程&#xff0c;因为NIO编程涉及到Reactor模式&#xff0c;…

从tomcat说起全面理解Java web开发原理

从tomcat说起全面理解Java web开发原理 简介&#xff1a;Java开发分为Java ME&#xff0c;Java SE&#xff0c;Java EE。回顾过去这些的开发工作基本上都是围绕着Java EE的&#xff0c;在开发经历中分别经历了Java EE开发框架从jsp servlet一路经历了ssh&#xff0c; ss…

存储笔记8 ipsan

Module Objectives IP SAN的组件 IP SAN的好处 描述SAN中的IP融合及其影响 描述的基本架构 –iSCSI –FCIP –FCoE 讨论IP SAN技术的市场驱动因素 列出IP SAN技术 列出iSCSI的组件和连接选项 描述iSCSI体系结构和拓扑结构 解释iSNS操作 描述FCIP的体系结构 IP SAN互联…

Springboot整合第三方登录

文章目录 Springboot整合第三方登录为什么采用第三方登录整合第三方登录创建应用导入依赖创建controller类 Springboot整合第三方登录 为什么采用第三方登录 ​ 采用第三方登录可以避免重新注册账号的繁琐&#xff0c;也不需要再为密码和昵称发愁&#xff0c;而第三方登录有一…

Linux命令——top相关之Load Average平均负载

Linux 平均负载 Load Average 详解_系统1f分钟负载_欧晨eli的博客-CSDN博客 一、什么是Load Average&#xff1f; 系统负载&#xff08;System Load&#xff09;是系统CPU繁忙程度的度量&#xff0c;即有多少进程在等待被CPU调度&#xff08;进程等待队列的长度&#xff09;。…