Arduino--超声波模块

淘宝购买地址:https://detail.tmall.com/item.htm?id=629617028735&spm=a1z09.2.0.0.6de32e8dvyfVWU&_u=j1lng7f9b2e    

 

 

说明:

一共有四个脚,分别为VC,Trig,Echo,GND,两边的两个为接电源的正负极,中间的两个一个发送一个接收,可以连接在任意信号端口是包括1到13口及A0~A5

 

 

实例

Trig引脚连接A0,echo连接A1

 

米思琪

 

 

 

 单位:厘米

 

 

Arduino

float checkdistance() {  //定义函数--获得距离
  digitalWrite(A0,LOW);
  delayMicroseconds(2); 
  digitalWrite(A0, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(A0, LOW); 
  float distance=pulseIn(A1, HIGH)/58.00;   //获取测得的距离
  //pluseIn函数用于检测引脚输出的高低电平的脉冲宽度
  /*
  关于距离中除以58的说明:
58也很好理解,声音在干燥、摄氏 20度的空气中的传播速度大约为343米/秒,合34,300厘米/秒。或者,我们作一下单位换算,34,300除以1,000,000厘米/微秒。即为:0.0343厘米/微秒,再换一个角度,1/(0.0343 厘米/微秒)即:29.15 微秒/厘米。这就意味着,每291.5微秒表示10CM的距离。1厘米就是29.15微秒。但是发送后到接收到回波,声音走过的是2倍的距离呀。
所以实际距离就是1厘米,对应58.3微秒。实际上整个测距过程是测的发出声波到收到回波的时间,你的程序里的第一个distance实际上是时间us。所以换成距离cm,要除以58。当然除以58.3可能更精确。所以程序中用 pulseIn(EcoPin, HIGH) / 58.00获取测得的距离

  */
   
  return distance;

 

 

 

 

 

 

 

posted @ 2021-01-19 10:47  天子骄龙  阅读(577)  评论(0编辑  收藏  举报