~Arduino开发板使用超声波传感器HC-SR04的完整指南

一、HC-SR04超声波传感器简介

        HC-SR04超声波传感器使用声纳来确定物体的距离,工作原理类似与蝙蝠。它提供出色的非接触范围检测,高精度和稳定的读数,以及易于使用的封装。测量范围从2厘米到400厘米或1英寸到13英尺。它的工作过程不受太阳光或黑色材料的影响(虽然布料之类的声学软材料很难检测)。它配有超声波发射器和接收器模块。

二、主要特征

  1. 电源:+ 5V DC
  2. 静态电流:<2mA
  3. 工作电流:15mA
  4. 有效角度:<15°
  5. 测距:2厘米 - 400厘米/ 1英寸 - 13英尺
  6. 分辨率:0.3厘米
  7. 测量角度:30度
  8. 触发输入脉冲宽度:10uS
  9. 尺寸:45mm x 20mm x 15mm

三、工作过程

  1. 发射器发送信号:一段高频声音
  2. 当信号遇到一个物体时,它会被反射
  3. 然后发射器接收该信号

四、示例

以下是一个Arduino开发板使用超声波传感器HC-SR04的完整示例

1、所需硬件

  • 超声波传感器HC-SR04
  • Arduino UNO开发板
  • 面包板
  • 跳线

2、原理图

原理图

3、实际接线图

        这里利用提供的硬件将按照原理图进行接线,如图:
12

4、代码

//为超声波传感器的Trig和echo引脚创建变量。
//trig引脚连接到数字引脚11,echo引脚连接到数字引脚12。
int trigPin = 11; 
int echoPin = 12;
/*
 变量duration保存了信号发射和接收之间的时间。
 变量cm将以厘米为单位保存距离,
 变量inch将以英寸为单位保存距离。
*/
long duration, cm, inches;
//setup()以波特率9600初始化串口,并将trig引脚设置为输出,将echo引脚设置为输入。
void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
//loop()通过发送一个10微秒的HIGH脉冲来触发传感器。此前,讲给出一个短的低电平脉冲,确保得到一个干净的高脉冲。
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(20000);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(40000);
  digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH);
  /*计算公式:
  距离=(传播时间/ 2)x声速
  声速为:343m / s = 0.0343cm / uS = 1 /  29.1cm / uS
  */
  cm = (duration/2) / 29.1;
  inches = (duration/2) / 74;
  //打印结果,结果显示在串口监视器
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
}

5、结果

        在Arduino 1.8.4版本下,代码经过编译和上传后得到的结果如下:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

五、链接

代码仓库:https://gitee.com/wcyuan/ArduinoKaiFaBanShiYongChaoShengBoChuanGanQiHC-SR04/

猜你喜欢

转载自blog.csdn.net/dg940350951/article/details/92803621