【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块之参数性能与高分辨率测量距离

本文主要是介绍【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块之参数性能与高分辨率测量距离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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-015unsigned int TrigPin = 3;        // connect Pin 3(Arduino digital io) to Trig at US-015unsigned long Time_Echo_us = 0;unsigned long Len_mm  = 0;void setup(){  //InitializeSerial.begin(9600);      //Serial: output result to Serial monitorpinMode(EchoPin, INPUT);  //Set EchoPin as input, to receive measure result from US-015pinMode(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 distancedelayMicroseconds(20);      //set this high pulse width as 20us (>10us)digitalWrite(TrigPin, LOW);    //end this high pulseTime_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 monitorSerial.print(Len_mm, DEC);        //output result to Serial monitorSerial.println("mm");            //output result to Serial monitor}delay(1000);                  //take a measurement every second (1000ms)}

实验串口返回情况

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这篇关于【雕爷学编程】Arduino动手做(114)---US-015高分辨超声波模块之参数性能与高分辨率测量距离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435962

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)