W80x 超声波测微距

发布于 2023-07-25 17:16:56

超声波传感器介绍

超声波传感器是一种常用的测距传感器,它利用超声波的传播特性进行距离测量。它通常由超声波发射器和接收器组成。
超声波传感器的工作原理是:首先,超声波发射器发送一个超声波脉冲信号,该脉冲信号在空气中传播。当这个脉冲波遇到物体时,会被物体表面反射回传感器,并被接收器接收到。接收器会将接收到的回波转化为电信号,并通过处理电路进行处理。
通过测量发射超声波和接收回波之间的时间差,可以计算出超声波传感器到物体的距离。根据声速(通常在空气中为约343米/秒)和时间差,可以使用简单的速度-时间-距离公式(d = v * t)计算出实际距离。
常见的超声波传感器包括HC-SR04、LV-MaxSonar、Ultrasonic Ranging Module等,它们具有不同的特性和性能参数。在选择和使用超声波传感器时,需要根据具体需求和应用场景进行选择,并注意参考传感器的说明文档和资料进行正确的接线和设置。

必需品

  1. 1 x 面包板
  2. 1 x W801板
  3. 1 × HC-SR04超声波模块
  4. 4 × 跳线

接线图

根据电路图连接面包板上的元件,如下图所示。

超声波.jpg

草图

在计算机上打开Arduino IDE软件。使用Arduino语言对电路进行编码和控制。点击“新建”打开新建草图文件。这里不讨论具体的配置。

open.jpg

代码

const int Triger = PA2;
const int Echo = PA1;
unsigned long timeOfFlight(); //function declaration

void setup()
{
  Serial.begin(115200);
  pinMode(Triger, OUTPUT);
  pinMode(Echo, INPUT);

}

void loop()
{
   digitalWrite(Triger, LOW);
   delay(2);
   digitalWrite(Triger, HIGH);
   delay(10);
   digitalWrite(Triger, LOW);
   float distance = (timeOfFlight()*0.0347)/2; //The temperature is 25℃ for the speed of sound.
   Serial.print("Distance:");
   Serial.print(distance);
   Serial.print("cm\n");
   delay(100);  //Delay 100ms.

}
 unsigned long timeOfFlight()
{

  unsigned long startTime, endTime;
  unsigned long duration;
  while (digitalRead(Echo) == LOW); //Wait for the Echo pin to turn high to start timing.
  startTime = micros(); //us.
  while (digitalRead(Echo) == HIGH); //Wait for the Echo pin to turn low to end timing.
  endTime = micros();
  duration = endTime - startTime;
  return duration; // return value.
}

代码导入步骤

首先单击Verify验证代码是否正确

1eb55992e618394f516378dc48b779b3.jpg

接着单击Upload上传代码弹出保存框,在相应的位置编辑文件名并保存即可

27f363e694f6a241818561e7e1236ab9.jpg

16892212723385.jpg

也可以如下步骤

烧录步骤1_副本.jpg

最后等待上传需要十几秒的时间,显示以下即表示成功

6f1f1a696c4d4368c9238972d20e5c5b.jpg

代码解释

 endTime = micros();

micros()函数返回开发板开始运行当前程序时的微秒数。该数字在大约70分钟后溢出,即回到零。
此函数返回自程序启动后的微秒数(无符号长整型)。

结果

现在,通过单击顶部绿色条右侧的图标或按Ctrl+Shift+M,在Arduino IDE中打开串口监视器观测打印的通过超声波测出的物体距离。
f1b6ce4e7efae324e5ed81b8cb5c263c.jpg

HC-SR04.jpg

新手一个,如有更精确的方法,希望各位大佬不吝赐教!
1 条评论

发布
问题