Arduino--超声波

一、简介

如图所示超声波传感器实物图和测距原理,HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm,包括发射器、接收器与控制电路,它是一种压电式传感器,利用电致伸缩现象而制成。
在这里插入图片描述

电气参数:

电气参数HCSR04超声波模块
VCCDC 5V
工作电流15mA
工作频率40KHz
最远射程4m
最近射程2cm
测量角度15°
输入触发信号10us的TTL脉冲
输出回响信号输出TTL电平信号,与射程成比例

工作原理
物理原理就是发出超声波,遇到物体后反射到接收端子,接收端子接收信号后测量出距离值
在这里插入图片描述
对应到超声波模块的工作原理如下,可以先看下超声波的时序图
在这里插入图片描述
图中我们可以大致看出,要使用HCSR04这个超声波模组,我们必须先给超声波发送一个触发信号,引导超声波内部循环发出8个40Khz的脉冲然后输出回响信号引脚上拉为高电平,然后我们利用超声波回响信号引脚的高电平所得计数时间经过相关运算就可以得到对应的距离,具体公式如下:
测试距离 = (高电平时间声速(340M/S)/2)= ((float)t/58.0)
这个公式的具体换算过程,大家可以用以前学过的知识进行还算下,最后得到的距离单位是厘米。
下面放一张超声波的引脚功能示意图,能更好的理解HCSR04的具体使用和接线在代码中
在这里插入图片描述

二、接线

本文是以Arduino UNO为示例进行演示,对应接线如下:

HCSR04超声波传感器Arduino UNO
工作电压5V
GNDGND
Echo8
Trig9

三、程序

const int EchoPin = 8; //超声波信号输入
const int TrigPin = 9; //超声波控制信号输出

int currDist = 0; // 距离
void setup() {
       pinMode(EchoPin, INPUT); //声明各引脚模式
       pinMode(TrigPin, OUTPUT);
       Serial.begin(9600);
}


void loop() {
      currDist = MeasuringDistance(); //读取前端距离
      Serial.println(currDist);
}


//测量距离 单位厘米
long MeasuringDistance(){
       long duration;
       
      digitalWrite(TrigPin, LOW); 
      delayMicroseconds(2); 
      digitalWrite(TrigPin, HIGH); //输出高电平,延时10ms
      delayMicroseconds(10);
      digitalWrite(TrigPin, LOW);
      
      duration = pulseIn(EchoPin, HIGH); //接受返回信号
      return duration /58; //计算距离
}

附完整资源链接

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用\[1\]、\[2\]和\[3\]的代码,这是使用Arduino和超声波模块进行测距的代码。代码中使用了TrigPin和EchoPin来连接超声波模块和Arduino。在setup函数中,设置了TrigPin为输出模式,EchoPin为输入模式,并初始化了串口通讯。在loop函数中,通过发送脉冲给TrigPin触发超声波模块,然后通过pulseIn函数读取回声引脚EchoPin的脉冲宽度,并将其转换为距离值。最后,通过串口打印出距离值和单位,并延时1秒后重复执行。这段代码可以实现通过超声波模块测量距离的功能。 #### 引用[.reference_title] - *1* [八、Arduino 超声波模块的使用](https://blog.csdn.net/qq_45807930/article/details/120627734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Arduino基础入门之十四 超声波测距](https://blog.csdn.net/u013978070/article/details/121064309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Arduino-----超声波传感器的使用学习](https://blog.csdn.net/Lin162610/article/details/130784282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

541板哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值