|
声纳的主要用途是能够“看到”水下的物体。它使用声波来检测物体。由于声波在水中的传播比在空气中传播得更远,因此声纳比其他类型的传感器(如雷达)更受欢迎。虽然声纳首选用于水下,但它仍然可以在空气中使用;不过,在测量距离时我们可能会遇到一些很小的干扰。
声纳有两种类型:被动声纳和主动声纳。主动声纳有一个发射器和一个探测器:根据信号返回声纳所需的时间,它可以探测物体的范围或距离及其方向。它还检测信号的强度,以确定接收器接收的时间。被动声纳用于接收来自船只和鲸鱼和潜艇等其他海洋生物的信号。被动声纳没有发射器;他们只是接收向他们发出的声波。
所需的材料 ● Arduino Uno开发板 ● MaxBotix超声波测距仪 ● Arduino IDE ● USB B型连接Arduino ● 万用表
我们将使用Arduino Uno作为微处理器,以便能够读取声纳检测到的距离。我们使用的声纳是Maxbotix超声波测距仪,但是任何接近这个的输出为脉冲宽度或模拟的模型都可以在这个项目中使用。三条松散的电线将焊接到超声波测距仪上。我们需要焊料和烙铁来焊接传感器。一切都焊接到位后,下面的代码通过IDE上传到Arduino,它也将与USB B型连接。
声纳传感器
由于Arduino和代码将处理声纳的电压输出,我们不希望电路之间存在任何错误连接或短路,因此我们必须确保当引脚焊接时没有焊料残留物会造成短路。 将导线焊接在声纳传感器的3个引脚,如下所示。
从底部焊接导线到地、Vin(+5 V)和第二个引脚,即脉冲宽度输出。焊接这三个引脚后,用棉签和一些酒精清洁孔周围,以清除焊料中可能残留的任何残留物。要检查是否有短路,请使用万用表检查这三个引脚之间的电阻。在GND和+5 V之间应该有OL或无穷大的电阻。如果这三个引脚中的任何一个之间存在短路,那么您需要对焊线进行去焊并清除任何焊料残留物。一旦电线焊接在声纳传感器上并且您检查了没有短路,那么您可以连接到Arduino。
您可以使用面包板连接传感器和Arduino,也可以直接将传感器连接到Arduino。传感器在Arduino上接地,并从Arduino的+ 5V输出接收电源。传感器的脉冲宽度输出连接到Arduino上可以接受脉冲宽度的任何输入。在本例中,我使用的是数字引脚3。 - #include "Maxbotix.h"
- Maxbotix rangeSensorPW(3, Maxbotix::PW, Maxbotix::LV); // #3 Defines which Digital Input in being Read
- //Maxbotix:PW defines that the Arduino is reading PW signals
- void setup()
- {
- Serial.begin(9600);
- }
- void loop()
- {
- unsigned long start;
-
- Serial.println("Reading 1st Sensor"); //Serial Monitor will print this line
-
- start = millis(); // Number of Milli seconds until the Sonar Receives the signal it sent out
- Serial.print("PW 1: ");
- Serial.print(rangeSensorPW.getRange()*.393701); // Multiply by this to convert Cm to Inches
- Serial.print(" inches - ");
- Serial.print(millis() - start);
- Serial.println("ms");
-
- Serial.println();
- delay(1500); // Wait for 1.5 Seconds
-
- }
复制代码
当如上图所示连接Arduino开发板并上传代码后,您可以打开串口监视器,距离将以英寸形式在上面显示出来,并且每1.5秒刷新一次。 当您运行串口监视器时,根据声纳传感器指向的位置,它将为您显示距离的英寸值。 如果您将手或其他大型物体放在声纳指向的位置,它也会读取并显示其距离。 对于该声纳传感器,测量最大范围是20英尺。
下图展示了代码运行后串口监视器输出的内容。
|