Arduino Uno 实验8——HC-SR04 超声波测距模块

HC-SR04 超声波测距模块简介

  由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
  HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路
Arduino Uno 实验8——HC-SR04 超声波测距模块_第1张图片

电气参数

Arduino Uno 实验8——HC-SR04 超声波测距模块_第2张图片

基本工作原理

  超声波测距模块——触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出——回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。
Arduino Uno 实验8——HC-SR04 超声波测距模块_第3张图片

时序图

Arduino Uno 实验8——HC-SR04 超声波测距模块_第4张图片

  (1)采用IO口TRIG触发测距,给最少10us的高电平信号。
  (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
  (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

  以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式: uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。
注意:
  1、此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。
  2、测距时,被测物体的面积不少于0.5平方米且平面尽量要求平整,否则影响测量的结果。

除以58的由来:

  由超声波测距的工作原理和时序图,我们可以得到时间的数值,在得到这个数值之后,还需要除以58,这是由于:
Arduino Uno 实验8——HC-SR04 超声波测距模块_第5张图片

超声波测距模块的使用

实验一:超声波测距

项目要求:

  通过超声波测距模块测得距离障碍物的距离,并通过串口监视器进行输出。

电路搭建

Arduino Uno 实验8——HC-SR04 超声波测距模块_第6张图片

参考程序

const int TrigPin = 3;  //超声波的触发引脚连接引脚3
const int EchoPin = 2;   //超声波的接受引脚连接引脚2
int distance;  //定义全局变量,保存距离

void setup() {
     
  Serial.begin(9600);
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop() {
     
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);   //本段语句的目的先拉低Trig,然后发送10us的高电平信号去触发超声波传感器
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);  
  digitalWrite(TrigPin, LOW);
  distance = pulseIn(EchoPin, HIGH) / 58.0;  //本语句的含义是计算距离并换算成厘米
  Serial.print(distance);
  Serial.println("cm");
  delay(100);
}

pulseIn函数介绍

Arduino Uno 实验8——HC-SR04 超声波测距模块_第7张图片

原理图

Arduino Uno 实验8——HC-SR04 超声波测距模块_第8张图片

你可能感兴趣的:(Arduino,arduino)