Arduino 驱动超声波测距模块

使用Arduino Uno R3驱动超声波模块HC-SR04并通过串口输出测量距离的详细说明、接线图和代码示例。

所需材料

  • Arduino Uno R3
  • 超声波模块HC-SR04
  • 面包板和连接线

接线步骤

  1. 供电和地线连接

    • 将Arduino Uno的5V引脚连接到HC-SR04的VCC引脚。
    • 将Arduino Uno的GND引脚连接到HC-SR04的GND引脚。
  2. 信号线连接

    • 将HC-SR04的Trig引脚连接到Arduino Uno的数字引脚D9。
    • 将HC-SR04的Echo引脚连接到Arduino Uno的数字引脚D10。

连接图示

Arduino Uno R3            HC-SR04
----------------          -------
5V  ------------------->  VCC
GND ------------------->  GND
D9  ------------------->  Trig
D10 ------------------->  Echo

示例代码

const int trigPin = 9;  // Trig引脚连接到D9
const int echoPin = 10; // Echo引脚连接到D10

void setup() {
  Serial.begin(9600); // 启动串口通信
  pinMode(trigPin, OUTPUT); // 设置Trig引脚为输出
  pinMode(echoPin, INPUT);  // 设置Echo引脚为输入
}

void loop() {
  // 发送超声波信号
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // 读取Echo引脚的信号持续时间
  long duration = pulseIn(echoPin, HIGH);

  // 计算距离
  // 距离 = (持续时间 / 2) * 声速(340 m/s) / 10000
  // 持续时间是微秒,声速是340米/秒,转换为厘米并且除以2
  long distance = duration * 0.034 / 2;

  // 输出距离到串口
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(500); // 延迟0.5秒
}

代码详解

  1. 定义引脚

    • trigPin:连接到HC-SR04的 Trig引脚。
    • echoPin:连接到HC-SR04的 Echo引脚。
  2. 初始化

    • setup()函数中,启动串口通信并设置引脚模式。
    • pinMode(trigPin, OUTPUT):设置Trig引脚为输出。
    • pinMode(echoPin, INPUT):设置Echo引脚为输入。
  3. 发送超声波信号

    • 将Trig引脚设置为低电平,等待2微秒。
    • 将Trig引脚设置为高电平,等待10微秒。
    • 将Trig引脚设置为低电平,结束信号发送。
  4. 读取Echo信号持续时间

    • 使用pulseIn(echoPin, HIGH)函数读取Echo引脚的高电平持续时间。
  5. 计算距离

    • 持续时间乘以声速(0.034厘米/微秒),并除以2得到距离。
  6. 输出距离

    • 使用Serial.printSerial.println输出计算的距离到串口。
  7. 延迟

    • delay(500):延迟0.5秒,以便每0.5秒进行一次测量。

总结

以上步骤和代码示例展示了如何使用Arduino Uno R3驱动HC-SR04超声波模块并通过串口输出测量的距离。

posted @ 2024-07-02 19:23  jeikerxiao  阅读(54)  评论(0编辑  收藏  举报