零成本学arduino教程—— hc - sr04 超声波距离传感器

hc - sr04 超声波距离传感器

HC-SR04 超声波距离传感器

零成本学arduino教程—— hc - sr04 超声波距离传感器_第1张图片
超声波传感器是一种传感器,使用高频声音来测量距离。它发出40,000赫兹的超声波(高于人类能听到的)。如果它从它前面的东西反弹,声音将反射回传感器,它可以检测"回声"反射。通过测量发射和回波之间的时间,传感器可以确定与物体的距离。

超声波传感器有4个引脚。两个提供电源。一个是Trig引脚,它从阿杜伊诺取出脉冲,向传感器指示发出超声波脉冲。回声引脚为 Arduino 提供了输入,指示传感器读取的距离。

您可以引用上面的电路图将传感器连接到 Arduino。所附示样代码将通过串行监视器打印出某样东西离传感器前部有多远(工具>串行监视器)。

零成本学arduino教程—— hc - sr04 超声波距离传感器_第2张图片

引脚名称

名字 描述
VCC 电压电源 (5V)
Trig 开始测量的脉冲
Echo 测量高脉冲长度以获得距离
GND

操作

要开始新的距离测量,TRIG 引脚设置为 10uS 或更高。然后等待,直到ECHO针走高,并计算它保持高(脉冲长度)的时间。ECHO 高脉冲的长度与距离成正比。使用以下表将微秒内的 ECHO 脉冲长度转换为厘米/英寸:

单位 距离
厘米 脉冲数 / 58
英寸 脉冲数 / 148
  // Read the result:
  int duration = pulseIn(PIN_ECHO, HIGH);
  Serial.print("Distance in CM: ");
  Serial.println(duration / 58);
  Serial.print("Distance in inches: ");
  Serial.println(duration / 148);

测量距离函数

float readDistanceCM() {
  digitalWrite(TRIG_PIN, LOW);//清除trigPin条件
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);//设置trigPin HIGH (ACTIVE)为10微秒
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
  int duration = pulseIn(ECHO_PIN, HIGH);//读取ECHO_PIN,返回以微秒为单位的声波传播时间
  return duration * 0.034 / 2;//声波速度除以2(来回)
}

点击此处仿真开始在线仿真
零成本学arduino教程—— hc - sr04 超声波距离传感器_第3张图片

源代码

/*
  HC-SR04 Ultrasonic Sensor Example.

  Turn the LED on when an object is within 100cm range.

  Copyright (C) 2021, Uri Shaked
*/

#define ECHO_PIN 2
#define TRIG_PIN 3

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

float readDistanceCM() {
  digitalWrite(TRIG_PIN, LOW);//清除trigPin条件
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);//设置trigPin HIGH (ACTIVE)为10微秒
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
  int duration = pulseIn(ECHO_PIN, HIGH);//读取ECHO_PIN,返回以微秒为单位的声波传播时间
  return duration * 0.034 / 2;//声波速度除以2(来回)
}

void loop() {
  float distance = readDistanceCM();

  bool isNearby = distance < 100;
  digitalWrite(LED_BUILTIN, isNearby);

  Serial.print("Measured distance: ");
  Serial.println(readDistanceCM());

  delay(100);
}

每日一句:零成本学arduino教程—— hc - sr04 超声波距离传感器_第4张图片
是你多么温馨的目光,教我坚毅望着前路,叮嘱我跌倒不应放弃。 – beyond

你可能感兴趣的:(arduino,单片机,arduino,传感器)