fys2635858969

一、实验准备:

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将收到的回响信号输出。之后通过模块中的计算代码得出距离。

参考博客链接:https://www.cnblogs.com/qsyll0916/p/6964638.html

以及微信公众号TonyCode中Arduino的推文

 

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

 

分类:

技术点:

相关文章: