首页 > 其他 > 详细

Arduino学习——超声波测距

时间:2021-03-15 19:21:37      阅读:38      评论:0      收藏:0      [点我收藏+]

一、实验准备:

1、查阅相关资料,了解本次实验所用到的引脚、接口的相关知识。

2、准备Arduino板(本次实验所用到的型号为mega2560)、超声波测距模块、杜邦公母线。

技术分享图片

二、实验操作:

1、将超声波的VccTrig EchoGND引脚用杜邦线分别与接口+5GDN,数字引脚23相连。

2、Arduino连上主机,打开IDE,在工具选项卡中设置对应的开发板(mega2560)和一个端口。

3、验证代码并上传代码至Arduino

三、以下为我本次实验的运行代码

#define TrigPin 2
#define EchoPin 3
float Value_cm;
void setup() {
 Serial.begin(9600);            //初始化
  pinMode(TrigPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

void loop() {
  digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  delayMicroseconds(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);                   //等待一秒钟
}

 四、心得:

在开始超声波测距的时候,我还不清楚怎么找,就在百度博客园中搜了一篇关于超声波测距的博客。但是看了一会后,别人才告诉我,我看的并不是arduino的。然后就打开他给我们的推文,重新开始了超声波测距的测试。还要看清楚是不是相符合的。

开始还不知道代码中宏定义TrigPin EchoPin是什么意思。但是后来想起之前在博客园中找到的超声波测距的博客中(不是Arduino),代码中PinMode(TrigPin,OUTPUT) PinMode(EchoPin,INPUT)正是与超声波的测距原理相对应。TrigPin应该就是要给它一个输出电平,当它输出一个高电平时,就启用了SR04这个模块。也就同时开启了计时器。并且这个模块会自动循环发射840KHz的声波之后,

 

技术分享图片

 

 

当接收器接收到后,就Echopin将收到的回响信号输出。之后通过模块中的计算代码得出距离。

如果有错误的还请大佬们指正。慢慢来,加油!

 

Arduino学习——超声波测距

原文:https://www.cnblogs.com/fys2635858969/p/14539290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!