Arduino - 超声波传感器


HC-SR04 超声波传感器使用声纳来确定物体的距离,就像蝙蝠一样。它提供出色的非接触式范围检测,具有高精度和稳定的读数,采用易于使用的封装,测量范围为 2 厘米至 400 厘米或 1 英寸至 13 英尺。

该操作不受阳光或黑色材料的影响,尽管在声学上,布料等软材料可能难以检测到。它配有超声波发射器和接收器模块。

超声波传感器

超声波传感器辐射

技术规格

  • 电源 - +5V DC
  • 静态电流 - <2mA
  • 工作电流-15mA
  • 有效角度 − <15°
  • 测距距离 − 2 厘米 – 400 厘米/1 英寸 – 13 英尺
  • 分辨率 - 0.3 厘米
  • 测量角度 − 30 度

所需组件

您将需要以下组件 -

  • 1 × 面包板
  • 1 × Arduino Uno R3
  • 1 × 超声波传感器 (HC-SR04)

程序

按照电路图进行连接,如下图所示。

超声波电路连接

草图

在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击“新建”打开一个新的草图文件。

草图

Arduino代码

const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor

void setup() {
   Serial.begin(9600); // Starting Serial Terminal
}

void loop() {
   long duration, inches, cm;
   pinMode(pingPin, OUTPUT);
   digitalWrite(pingPin, LOW);
   delayMicroseconds(2);
   digitalWrite(pingPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(pingPin, LOW);
   pinMode(echoPin, INPUT);
   duration = pulseIn(echoPin, HIGH);
   inches = microsecondsToInches(duration);
   cm = microsecondsToCentimeters(duration);
   Serial.print(inches);
   Serial.print("in, ");
   Serial.print(cm);
   Serial.print("cm");
   Serial.println();
   delay(100);
}

long microsecondsToInches(long microseconds) {
   return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) {
   return microseconds / 29 / 2;
}

注意事项代码

超声波传感器有四个端子 - +5V、触发器、回声和 GND,连接如下 -

  • 将 +5V 引脚连接到 Arduino 板上的 +5v。
  • 将触发器连接到 Arduino 板上的数字引脚 7。
  • 将 Echo 连接到 Arduino 板上的数字引脚 6。
  • 将 GND 与 Arduino 上的 GND 连接。

在我们的程序中,我们通过串行端口显示传感器测量的距离(以英寸和厘米为单位)。

结果

您将在 Arduino 串行监视器上看到传感器测量的距离(以英寸和厘米为单位)。