超声波传感器

超声波传感器能够发射超声波并接收反射回的超声波信号。利用发射与接收的时间差以及传播速度(即声速,声音在空气中传播的速度约为340m/s)即可计算传感器到障碍物体的距离。单片机向超声波传感器发送脉冲,超声波传感器被此脉冲触发后会产生一个40 kHz的脉冲电信号,通过激励换能器处理以后,转换成机械振动,频率约在20 kHz以上,由此形成了超声波。

该信号经锥形“辐射口”处将超声波信号发射出去。接收器接收到反射回来的超声波信号后,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机。

利用HC-SR04超声波传感器测量到目标物体的距离,并利用串口通信窗口显示。

具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。

引脚说明

接线方式如下:

模块引脚 Stduino 开发板管脚
VCC 5V
GND GND
Trig D8
Echo D9

必需的组件

你将需要以下组件:

  • 超声波传感器HC-SR04
  • 1×Stduino UNO/Nano

连接

按照电路图连接面包主板的组件,如下图所示。

Stduino代码

#include <Arduino.h>
int trig = 8;//Trig端
int echo = 9;//Echo端

void setup() 
{
    // put your setup code here, to run once:
    pinMode(echo,INPUT);
    pinMode(trig,OUTPUT);
    Serial.begin(9600);
}
void loop()
{
    // put your main code here, to run repeatedly:
    unsigned long time = 0;
    while(1){
        digitalWrite(trig,HIGH);
        delayMicroseconds(15);//需要大于10
        digitalWrite(trig,LOW);

        time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。
        float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来
        Serial.println(S);
        S = 0;
        time = 0;
        delay(500);
    }
}

结果

程序编写完成后,上传到Stduino UNO/Nano,打开串口监视器,就可以看到超声波传感器正检测物体的距离。

文档更新时间: 2021-02-14 14:28   作者:admin