Arduino提高篇07—超声波测距
超声波是振动频率高于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—超声波测距相关推荐
- Arduino提高篇24—摇杆调节时钟时间
对于电子时钟而言,虽然我们可以在程序中对RTC芯片写入初始时间数据,但按键调时功能也是必不可少的,它可以让我们更加灵活的进行时间调节校准.本篇我们使用摇杆按键来调节时间数据,采用多级菜单的思路进行设计 ...
- Arduino 提高篇 1 —— 电子时钟
一.实验器材 Arduino Uno R3开发板及扩展板 公对母.母对母杜邦线若干 面包板 0.96英寸 OLED显示屏 DS1302模块 二.实验步骤 Arduino DS1302 3.3V VCC ...
- Arduino与Processing交互-超声波测距传感器的读取与显示
公众号:STCode 1-超声波测距传感器简介 超声波测距传感器是利用频率高于20kHz的声波在空气中传播,遇到障碍物反射回来,通过计算发射和接收时间差,可以计算出发射点与障碍物间的距离. 超声波测距 ...
- Arduino提高篇26—贪吃蛇游戏
之前文章Processing笔记05-贪吃蛇小游戏分享过如何使用Processing来实现贪吃蛇游戏,很多小伙伴问可不可以来个Arduino版本的,那么本篇就通过Arduino,配合摇杆按键和OLED ...
- Arduino提高篇04—U8g2库驱动OLED
OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机.STM32. ...
- Arduino提高篇11—烟雾传感器MQ-2
MQ系列传感器是使用非常广泛的低成本传感器,广泛应用于家庭或工厂的气体泄漏监测装置.本篇介绍MQ家族中的MQ-2烟雾传感器的使用,其他MQ传感器使用都是相类似的. 1. MQ系列传感器工作原理 MQ系 ...
- Arduino提高篇25—手势识别
随着科技的发展,人机交互也发生了翻天覆地的变化,从最开始的手动控制,到后来的遥控,再到语音识别以及图像识别.一切都是为了解放人类,毕竟能吵吵就不会动手对不对,现在都懒得吵吵了,图像识别分析就好.本篇我 ...
- 基于arduino的蓝牙小车 超声波测距 OLED 屏幕显示数据 超声波避障 蓝牙控制 pwm调速
const int TrigPin = 2; //超声波引脚定义 const int EchoPin = 3; //超声波引脚定义 float cm; //测距参数 //l298n驱动上对应的接口 i ...
- Arduino提高篇13—摇杆控制OLED移动显示
很多经典的小游戏,例如贪吃蛇.俄罗斯方块等都是通过按键控制显示于屏幕,当摇杆遇上显示屏,我们可以尝试很多有意思的实验.本篇通过摇杆控制OLED上圆的移动. 1. 实验材料 Uno R3开发板 配套US ...
最新文章
- CentOS 6和CentOS 7管理系统服务的区别
- python :如何将list存入txt后,再读出list
- CVPR 2016 SINT:《Siamese Instance Search for Tracking》论文笔记
- Scala @BeanProperty注解生成getter/setter
- linux下Vim和Terminal配色
- mods文件夹怎么创建_TCL电视怎么安装蜜蜂视频通用教程
- Eigen(6)快操作
- 程序员面试金典 - 面试题 17.24. 最大子矩阵(转成一维最大子序和 DP)
- Mybatis-Plus 多表联查分页
- Visual Studio 2019 v16.9 Preview 3 发布
- ios中蓝牙自动连接出现硬件提示框的问题
- 程序员必修课--sql思维举重训练
- win7计算机时间显示错误,win7系统时间调不对的解决方法
- 史上最全的微信小程序代码大全源码下载
- JAVA 实现银行卡归属地查询
- k2p B1版本官改关闭路由器ipv6分配
- 自动识别快递公司,教你快递查询单号查询物流
- 台达变频器s1参数设置_台达变频器的参数设定步骤
- php获取buttonid,asp获取当前id
- 废土行动最新服务器机柜销售,《废土行动》避难所 你想要知道的信息我们一次都告诉你...
热门文章
- 有哪些操作简单能将PDF转成图片的工具?
- mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园
- Windows11 文件管理器 很慢很卡怎么办
- 【Verilog基础】CMOS逻辑门实现基础功能(反相器/与非门/或非门/与门/或门)
- Python对接api接口爬取音乐
- 2012年最新的12款超棒jQuery插件
- 经济基础知识(初级)【3】
- 想精通 Python 数据挖掘?清华博士带你入门!
- podcast什么意思php,播客是什么软件
- 软件开发人员绩效评价标准