菜鸟日志5------超声波传感器HC-SR04模块的测距实验

实物照片 

首先介绍什么是超声波:人耳可以听到的声音频率范围大致为 20Hz ~ 20,000Hz;那么频率超过20,000Hz的声波就称为超声波。

由实物图我们可以看到,左右两侧各有一个类似于喇叭的圆柱体,它们是超声波传感器,是HC-SR04模块的核心,其中一个是发射器,将输入的电信号转换成超声波脉冲发射出去,另一个则充当接收器,接受返回的超声波并产生一个相应的脉冲信号。

我们可以借助下面的代码简单地了解下 HC-SR04 模块的工作原理:

接线方式:HC-SR04的VCC引脚接到Arduino的5V引脚,GND接GND,Trig引脚接11号引脚,Echo接12号

int trigPin = 11;    //Trig
int echoPin = 12;    //Echo
long duration, cm, inches;
 
void setup() {
  //Serial Port begin
  Serial.begin (9600);
  //Define inputs and outputs
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
void loop()
{
 
 
  // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  // Read the signal from the sensor: a HIGH pulse whose
  // duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  duration = pulseIn(echoPin, HIGH);
 
  // convert the time into a distance
  cm = (duration/2) / 29.1;
  inches = (duration/2) / 74; 
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(1000);
}

下图是测试过程中串口监视器的显示情况

下面以文字描述它的工作原理(按五个部分来分):

1、触发条件:持续时间>=10us的脉冲;

2、发射超声波:发射器发出40kHz的八个脉冲的超声波(主要是为了区别于环境超声噪音);

3、 接收回声:超声波遇到障碍物反射回来,形成一段低电平的数字信号(所以需要提前将接收引脚设置为高电平);若超出38毫秒则自动返回低电平,表示超声波在这38毫秒内无遇到阻碍(因此HC-SR04模块有一个探测极限值为4米);

4、数据处理:通过返回的低电平信号的宽度(持续时间),可以利用简单的路程-速度-时间关系来计算出超声波测距模块与障碍物之间的距离;

5、数据呈现:将计算的结果输出到串口监视器上;

3208eb5beb

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值