超声波是振动频率高于20KHz的机械波,它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等特点,在工业、国防、生物医学等方面有广泛应用,本篇介绍利用超声波进行测距。

1. 测距原理

超声波传感器的发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。根据计时器记录的时间t,声波在空气中的传播速度为340m/s,就可以计算出发射点距障碍物的距离s,即:s=340m/s × t / 2 。这就是所谓的时间差测距法。

2. 超声波传感器介绍

超声波传感器是将超声波信号转换成其他能量信号「通常是电信号」的传感器。HC-SR04是比较常用的超声波传感器模块,广泛应用于机器人测距、小车避障等场合。

主要参数

  • 电压:DC5V
  • 电流:15mA
  • 频率:40KHz
  • 感应角度:<15度
  • 探测距离:2cm—400cm
  • 精度:3mm

使用说明

  • 采用Trig引脚触发测距,给至少10us的高电平信号。
  • 模块自动发送8个40KHz的方波,自动检测是否有信号返回。
  • 有信号返回后,通过Echo引脚输出高电平,通过高电平持续时间获取到时间量。

3. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • HC-SR04超声波传感器模块

4. 实验步骤

1. 根据原理图搭建电路图。

超声波传感器模块的VCC、GND分别连接到开发板的5V、GND。传感器的Trig引脚、Echo引脚分别连接到开发板的数字引脚2、3。

实验原理图如下图所示:

实物连接图如下图所示:

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

#define TrigPin 2
#define EchoPin 3float Value_cm;void setup() {Serial.begin(9600);pinMode(TrigPin, OUTPUT);pinMode(EchoPin, INPUT);
}void loop() {digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPindelayMicroseconds(2);digitalWrite(TrigPin, HIGH);delayMicroseconds(10);digitalWrite(TrigPin, LOW);Value_cm = float( pulseIn(EchoPin, HIGH) * 17 ) / 1000; //读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。//接收到的高电平的时间(us)*340m/s/2=接收到高电平的时间(us)*17000cm/1000000us = 接收到高电平的时间*17/1000(cm) Serial.print(Value_cm);Serial.println("cm");delay(1000);
}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

5. 实验现象

打开串口监视器,波特率设置成与程序中相一致的9600。改变超声波传感器与遮挡物的距离,监视器中将显示对应的距离。


关注微信公众号:TonyCode
Arduino学习交流群:868283450

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

Arduino提高篇07—超声波测距相关推荐

  1. Arduino提高篇24—摇杆调节时钟时间

    对于电子时钟而言,虽然我们可以在程序中对RTC芯片写入初始时间数据,但按键调时功能也是必不可少的,它可以让我们更加灵活的进行时间调节校准.本篇我们使用摇杆按键来调节时间数据,采用多级菜单的思路进行设计 ...

  2. Arduino 提高篇 1 —— 电子时钟

    一.实验器材 Arduino Uno R3开发板及扩展板 公对母.母对母杜邦线若干 面包板 0.96英寸 OLED显示屏 DS1302模块 二.实验步骤 Arduino DS1302 3.3V VCC ...

  3. Arduino与Processing交互-超声波测距传感器的读取与显示

    公众号:STCode 1-超声波测距传感器简介 超声波测距传感器是利用频率高于20kHz的声波在空气中传播,遇到障碍物反射回来,通过计算发射和接收时间差,可以计算出发射点与障碍物间的距离. 超声波测距 ...

  4. Arduino提高篇26—贪吃蛇游戏

    之前文章Processing笔记05-贪吃蛇小游戏分享过如何使用Processing来实现贪吃蛇游戏,很多小伙伴问可不可以来个Arduino版本的,那么本篇就通过Arduino,配合摇杆按键和OLED ...

  5. Arduino提高篇04—U8g2库驱动OLED

    OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机.STM32. ...

  6. Arduino提高篇11—烟雾传感器MQ-2

    MQ系列传感器是使用非常广泛的低成本传感器,广泛应用于家庭或工厂的气体泄漏监测装置.本篇介绍MQ家族中的MQ-2烟雾传感器的使用,其他MQ传感器使用都是相类似的. 1. MQ系列传感器工作原理 MQ系 ...

  7. Arduino提高篇25—手势识别

    随着科技的发展,人机交互也发生了翻天覆地的变化,从最开始的手动控制,到后来的遥控,再到语音识别以及图像识别.一切都是为了解放人类,毕竟能吵吵就不会动手对不对,现在都懒得吵吵了,图像识别分析就好.本篇我 ...

  8. 基于arduino的蓝牙小车 超声波测距 OLED 屏幕显示数据 超声波避障 蓝牙控制 pwm调速

    const int TrigPin = 2; //超声波引脚定义 const int EchoPin = 3; //超声波引脚定义 float cm; //测距参数 //l298n驱动上对应的接口 i ...

  9. Arduino提高篇13—摇杆控制OLED移动显示

    很多经典的小游戏,例如贪吃蛇.俄罗斯方块等都是通过按键控制显示于屏幕,当摇杆遇上显示屏,我们可以尝试很多有意思的实验.本篇通过摇杆控制OLED上圆的移动. 1. 实验材料 Uno R3开发板 配套US ...

最新文章

  1. CentOS 6和CentOS 7管理系统服务的区别
  2. python :如何将list存入txt后,再读出list
  3. CVPR 2016 SINT:《Siamese Instance Search for Tracking》论文笔记
  4. Scala @BeanProperty注解生成getter/setter
  5. linux下Vim和Terminal配色
  6. mods文件夹怎么创建_TCL电视怎么安装蜜蜂视频通用教程
  7. Eigen(6)快操作
  8. 程序员面试金典 - 面试题 17.24. 最大子矩阵(转成一维最大子序和 DP)
  9. Mybatis-Plus 多表联查分页
  10. Visual Studio 2019 v16.9 Preview 3 发布
  11. ios中蓝牙自动连接出现硬件提示框的问题
  12. 程序员必修课--sql思维举重训练
  13. win7计算机时间显示错误,win7系统时间调不对的解决方法
  14. 史上最全的微信小程序代码大全源码下载
  15. JAVA 实现银行卡归属地查询
  16. k2p B1版本官改关闭路由器ipv6分配
  17. 自动识别快递公司,教你快递查询单号查询物流
  18. 台达变频器s1参数设置_台达变频器的参数设定步骤
  19. php获取buttonid,asp获取当前id
  20. 废土行动最新服务器机柜销售,《废土行动》避难所 你想要知道的信息我们一次都告诉你...

热门文章

  1. 有哪些操作简单能将PDF转成图片的工具?
  2. mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园
  3. Windows11 文件管理器 很慢很卡怎么办
  4. 【Verilog基础】CMOS逻辑门实现基础功能(反相器/与非门/或非门/与门/或门)
  5. Python对接api接口爬取音乐
  6. 2012年最新的12款超棒jQuery插件
  7. 经济基础知识(初级)【3】
  8. 想精通 Python 数据挖掘?清华博士带你入门!
  9. podcast什么意思php,播客是什么软件
  10. 软件开发人员绩效评价标准